1/* Minification failed. Returning unminified contents. 2(2161,65-66): run-time error JS1100: Expected ',': = 3(2161,69-70): run-time error JS1004: Expected ';': ) 4(2164,15-16): run-time error JS1014: Invalid character: ` 5(2164,16-17): run-time error JS1195: Expected expression: < 6(2164,190-191): run-time error JS1002: Syntax error: } 7(2164,203-204): run-time error JS1014: Invalid character: ` 8(2169,9-26): run-time error JS1197: Too many errors. The file might not be a JavaScript file: allowOutsideClick 9 */ 10/* NUGET: BEGIN LICENSE TEXT 11 * 12 * Microsoft grants you the right to use these script files for the sole 13 * purpose of either: (i) interacting through your browser with the Microsoft 14 * website or online service, subject to the applicable licensing or use 15 * terms; or (ii) using the files as included with a Microsoft product subject 16 * to that product's license terms. Microsoft reserves all other rights to the 17 * files not expressly granted by Microsoft, whether by implication, estoppel 18 * or otherwise. Insofar as a script file is dual licensed under GPL, 19 * Microsoft neither took the code under GPL nor distributes it thereunder but 20 * under the terms set out in this paragraph. All notices and licenses 21 * below are for informational purposes only. 22 * 23 * JQUERY CORE 1.10.2; Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; http://jquery.org/license 24 * Includes Sizzle.js; Copyright 2013 jQuery Foundation, Inc. and other contributors; http://opensource.org/licenses/MIT 25 * 26 * NUGET: END LICENSE TEXT */ 27/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license 28//@ sourceMappingURL=jquery-1.10.2.min.map 29*/�
vendor: 29,930 bytes, lines 29-30
29 30(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone
vendor: 3,746 bytes, lines 30-31
30=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t 31}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;
vendor: 28,442 bytes, line 31
31a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));
vendor: 4,896 bytes, lines 31-32
31return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); 32u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;
vendor: 25,968 bytes, line 32
32if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
32 33; 34/* 35 * Interface elements for jQuery - http://interface.eyecon.ro 36 * 37 * Copyright (c) 2006 Stefan Petre 38 * Dual licensed under the MIT (MIT-LICENSE.txt) 39 * and GPL (GPL-LICENSE.txt) licenses. 40 */ 41 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('6.15={3o:d(e){7 x=0;7 y=0;7 1Q=1A;7 A=e.L;8(6(e).H(\'Q\')==\'U\'){1E=A.1a;2y=A.O;A.1a=\'1F\';A.Q=\'1Y\';A.O=\'2e\';1Q=26}7 4=e;2P(4){x+=4.3B+(4.1I&&!6.3p.41?F(4.1I.2X)||0:0);y+=4.3x+(4.1I&&!6.3p.41?F(4.1I.2Z)||0:0);4=4.4e}4=e;2P(4&&4.4a&&4.4a.39()!=\'V\'){x-=4.1D||0;y-=4.1s||0;4=4.2x}8(1Q){A.Q=\'U\';A.O=2y;A.1a=1E}q{x:x,y:y}},4E:d(4){7 x=0,y=0;2P(4){x+=4.3B||0;y+=4.3x||0;4=4.4e}q{x:x,y:y}},35:d(e){7 w=6.H(e,\'1T\');7 h=6.H(e,\'36\');7 1e=0;7 1o=0;7 A=e.L;8(6(e).H(\'Q\')!=\'U\'){1e=e.1z;1o=e.2s}u{1E=A.1a;2y=A.O;A.1a=\'1F\';A.Q=\'1Y\';A.O=\'2e\';1e=e.1z;1o=e.2s;A.Q=\'U\';A.O=2y;A.1a=1E}q{w:w,h:h,1e:1e,1o:1o}},4P:d(4){q{1e:4.1z||0,1o:4.2s||0}},58:d(e){7 h,w,22;8(e){w=e.2a;h=e.29}u{22=D.Y;w=2z.3c||2N.3c||(22&&22.2a)||D.V.2a;h=2z.31||2N.31||(22&&22.29)||D.V.29}q{w:w,h:h}},3P:d(e){7 t,l,w,h,1J,1R;8(e&&e.2E.39()!=\'V\'){t=e.1s;l=e.1D;w=e.3j;h=e.3e;1J=0;1R=0}u{8(D.Y&&D.Y.1s){t=D.Y.1s;l=D.Y.1D;w=D.Y.3j;h=D.Y.3e}u 8(D.V){t=D.V.1s;l=D.V.1D;w=D.V.3j;h=D.V.3e}1J=2N.3c||D.Y.2a||D.V.2a||0;1R=2N.31||D.Y.29||D.V.29||0}q{t:t,l:l,w:w,h:h,1J:1J,1R:1R}},3L:d(e,1U){7 4=6(e);7 t=4.H(\'2j\')||\'\';7 r=4.H(\'2k\')||\'\';7 b=4.H(\'2n\')||\'\';7 l=4.H(\'2l\')||\'\';8(1U)q{t:F(t)||0,r:F(r)||0,b:F(b)||0,l:F(l)};u q{t:t,r:r,b:b,l:l}},56:d(e,1U){7 4=6(e);7 t=4.H(\'3w\')||\'\';7 r=4.H(\'3u\')||\'\';7 b=4.H(\'3s\')||\'\';7 l=4.H(\'3t\')||\'\';8(1U)q{t:F(t)||0,r:F(r)||0,b:F(b)||0,l:F(l)};u q{t:t,r:r,b:b,l:l}},4Z:d(e,1U){7 4=6(e);7 t=4.H(\'2Z\')||\'\';7 r=4.H(\'3G\')||\'\';7 b=4.H(\'3y\')||\'\';7 l=4.H(\'2X\')||\'\';8(1U)q{t:F(t)||0,r:F(r)||0,b:F(b)||0,l:F(l)||0};u q{t:t,r:r,b:b,l:l}},3T:d(2i){7 x=2i.53||(2i.52+(D.Y.1D||D.V.1D))||0;7 y=2i.51||(2i.54+(D.Y.1s||D.V.1s))||0;q{x:x,y:y}},3h:d(12,3g){3g(12);12=12.3F;2P(12){6.15.3h(12,3g);12=12.5a}},59:d(12){6.15.3h(12,d(4){S(7 1j 1q 4){8(2R 4[1j]===\'d\'){4[1j]=20}}})},57:d(4,27){7 1b=$.15.3P();7 3l=$.15.35(4);8(!27||27==\'4Y\')$(4).H({X:1b.t+((1i.3S(1b.h,1b.1R)-1b.t-3l.1o)/2)+\'K\'});8(!27||27==\'4Q\')$(4).H({N:1b.l+((1i.3S(1b.w,1b.1J)-1b.l-3l.1e)/2)+\'K\'})},4O:d(4,3U){7 3V=$(\'3q[@2u*="2w"]\',4||D),2w;3V.1V(d(){2w=k.2u;k.2u=3U;k.L.4M="4N:4R.4S.4W(2u=\'"+2w+"\')"})}};[].4i||(4V.4U.4i=d(v,n){n=(n==20)?0:n;7 m=k.1m;S(7 i=n;i<m;i++)8(k[i]==v)q i;q-1});6.3A=d(e){8(/^4T$|^4L$|^5b$|^5c$|^5t$|^5s$|^5r$|^5q$|^5u$|^V$|^5v$|^5z$|^5y$|^5x$|^5w$|^5p$|^5o$/i.2q(e.2E))q 1A;u q 26};6.E.5h=d(e,1p){7 c=e.3F;7 1d=c.L;1d.O=1p.O;1d.2j=1p.18.t;1d.2l=1p.18.l;1d.2n=1p.18.b;1d.2k=1p.18.r;1d.X=1p.X+\'K\';1d.N=1p.N+\'K\';e.2x.4f(c,e);e.2x.5g(e)};6.E.5f=d(e){8(!6.3A(e))q 1A;7 t=6(e);7 A=e.L;7 1Q=1A;7 J={};J.O=t.H(\'O\');8(t.H(\'Q\')==\'U\'){1E=t.H(\'1a\');A.1a=\'1F\';A.Q=\'\';1Q=26}J.32=6.15.35(e);J.18=6.15.3L(e);7 2Y=e.1I?e.1I.4g:t.H(\'5d\');J.X=F(t.H(\'X\'))||0;J.N=F(t.H(\'N\'))||0;7 3J=\'5e\'+F(1i.5i()*4p);7 1x=D.5j(/^3q$|^5n$|^5m$|^5l$|^5k$|^5A$|^2V$|^4u$|^4y$|^4z$|^4x$|^4v$|^4s$|^4H$/i.2q(e.2E)?\'4J\':e.2E);6.1j(1x,\'4F\',3J);1x.3X=\'4B\';7 R=1x.L;7 X=0;7 N=0;8(J.O==\'33\'||J.O==\'2e\'){X=J.X;N=J.N}R.Q=\'U\';R.X=X+\'K\';R.N=N+\'K\';R.O=J.O!=\'33\'&&J.O!=\'2e\'?\'33\':J.O;R.2K=\'1F\';R.36=J.32.1o+\'K\';R.1T=J.32.1e+\'K\';R.2j=J.18.t;R.2k=J.18.r;R.2n=J.18.b;R.2l=J.18.l;8(6.3p.4G){R.4g=2Y}u{R.4D=2Y}e.2x.4f(1x,e);A.2j=\'1M\';A.2k=\'1M\';A.2n=\'1M\';A.2l=\'1M\';A.O=\'2e\';A.4C=\'U\';A.X=\'1M\';A.N=\'1M\';8(1Q){A.Q=\'U\';A.1a=1E}1x.4A(e);R.Q=\'1Y\';q{J:J,4I:6(1x)}};6.E.2f={4K:[0,B,B],4r:[3E,B,B],4w:[4l,4l,4t],4X:[0,0,0],60:[0,0,B],6P:[3H,42,42],6O:[0,B,B],6N:[0,0,1L],6L:[0,1L,1L],6M:[3b,3b,3b],6Q:[0,6R,0],6W:[6V,6U,4k],6S:[1L,0,1L],6T:[6K,4k,47],6J:[B,3I,0],6B:[6A,50,6z],6x:[1L,0,0],6Y:[6C,6D,6I],6H:[6G,0,2U],6E:[B,
410,B],6F:[B,6X,0],7a:[0,1v,0],7j:[75,0,7i],7f:[3E,3v,3I],7e:[7h,7l,3v],7g:[3r,B,B],7c:[4c,7d,4c],72:[2U,2U,2U],71:[B,70,74],76:[B,B,3r],7b:[0,B,0],79:[B,0,B],77:[1v,0,0],78:[0,0,1v],6Z:[1v,1v,0],73:[B,3H,0],7k:[B,2I,6y],6v:[1v,0,1v],5V:[B,0,0],5U:[2I,2I,2I],5T:[B,B,B],5R:[B,B,0]};6.E.1w=d(16,3z){8(6.E.2f[16])q{r:6.E.2f[16][0],g:6.E.2f[16][1],b:6.E.2f[16][2]};u 8(M=/^1N\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)$/.2A(16))q{r:F(M[1]),g:F(M[2]),b:F(M[3])};u 8(M=/1N\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)$/.2A(16))q{r:Z(M[1])*2.55,g:Z(M[2])*2.55,b:Z(M[3])*2.55};u 8(M=/^#([a-1H-1B-9])([a-1H-1B-9])([a-1H-1B-9])$/.2A(16))q{r:F("1C"+M[1]+M[1]),g:F("1C"+M[2]+M[2]),b:F("1C"+M[3]+M[3])};u 8(M=/^#([a-1H-1B-9]{2})([a-1H-1B-9]{2})([a-1H-1B-9]{2})$/.2A(16))q{r:F("1C"+M[1]),g:F("1C"+M[2]),b:F("1C"+M[3])};u q 3z==26?1A:{r:B,g:B,b:B}};6.E.4n={3y:1,2X:1,3G:1,2Z:1,5S:1,5B:1,36:1,N:1,5W:1,5X:1,2n:1,2l:1,2k:1,2j:1,62:1,2T:1,61:1,6w:1,1f:1,5Y:1,5Z:1,3s:1,3t:1,3u:1,3w:1,38:1,5Q:1,X:1,1T:1,2O:1};6.E.49={5P:1,5G:1,5H:1,5F:1,5E:1,16:1,5C:1};6.E.25=[\'5D\',\'5I\',\'5J\',\'5O\'];6.E.3k={\'3d\':[\'24\',\'3W\'],\'2B\':[\'24\',\'3f\'],\'2D\':[\'2D\',\'\'],\'2C\':[\'2C\',\'\']};6.3Q.4b({5N:d(1h,1G,P,2v){q k.2d(d(){7 2t=6.1G(1G,P,2v);7 e=28 6.4m(k,2t,1h)})},37:d(1G,2v){q k.2d(d(){7 2t=6.1G(1G,2v);7 e=28 6.37(k,2t)})},5M:d(14){q k.1V(d(){8(k.1n)6.3m(k,14)})},5K:d(14){q k.1V(d(){8(k.1n)6.3m(k,14);8(k.2d&&k.2d[\'E\'])k.2d.E=[]})}});6.4b({37:d(C,o){7 z=k,4o;z.14=d(){8(6.43(o.2M))o.2M.3Z(C)};z.2h=3O(d(){z.14()},o.1k);C.1n=z},P:{4q:d(p,n,4j,4d,1k){q((-1i.5L(p*1i.63)/2)+0.5)*4d+4j}},4m:d(C,o,1h){7 z=k,4o;7 y=C.L;7 44=6.H(C,"2K");7 1O=6.H(C,"Q");7 G={};z.2L=(28 46()).48();o.P=o.P&&6.P[o.P]?o.P:\'4q\';z.2Q=d(I,W){8(6.E.4n[I]){8(W==\'2H\'||W==\'2G\'||W==\'3N\'){8(!C.1r)C.1r={};7 r=Z(6.1y(C,I));C.1r[I]=r&&r>-4p?r:(Z(6.H(C,I))||0);W=W==\'3N\'?(1O==\'U\'?\'2H\':\'2G\'):W;o[W]=26;G[I]=W==\'2H\'?[0,C.1r[I]]:[C.1r[I],0];8(I!=\'1f\')y[I]=G[I][0]+(I!=\'2O\'&&I!=\'34\'?\'K\':\'\');u 6.1j(y,"1f",G[I][0])}u{G[I]=[Z(6.1y(C,I)),Z(W)||0]}}u 8(6.E.49[I])G[I]=[6.E.1w(6.1y(C,I)),6.E.1w(W)];u 8(/^2D$|2C$|24$|2B$|3d$/i.2q(I)){7 m=W.1t(/\\s+/g,\' \').1t(/1N\\s*\\(\\s*/g,\'1N(\').1t(/\\s*,\\s*/g,\',\').1t(/\\s*\\)/g,\')\').64(/([^\\s]+)/g);6n(I){2b\'2D\':2b\'2C\':2b\'3d\':2b\'2B\':m[3]=m[3]||m[1]||m[0];m[2]=m[2]||m[0];m[1]=m[1]||m[0];S(7 i=0;i<6.E.25.1m;i++){7 1l=6.E.3k[I][0]+6.E.25[i]+6.E.3k[I][1];G[1l]=I==\'2B\'?[6.E.1w(6.1y(C,1l)),6.E.1w(m[i])]:[Z(6.1y(C,1l)),Z(m[i])]}3R;2b\'24\':S(7 i=0;i<m.1m;i++){7 3n=Z(m[i]);7 2r=!6m(3n)?\'3W\':(!/6l|U|1F|6j|6k|6o|6p|6u|6t|6s|6q/i.2q(m[i])?\'3f\':1A);8(2r){S(7 j=0;j<6.E.25.1m;j++){1l=\'24\'+6.E.25[j]+2r;G[1l]=2r==\'3f\'?[6.E.1w(6.1y(C,1l)),6.E.1w(m[i])]:[Z(6.1y(C,1l)),3n]}}u{y[\'6r\']=m[i]}}3R}}u{y[I]=W}q 1A};S(p 1q 1h){8(p==\'L\'){7 1c=6.30(1h[p]);S(1P 1q 1c){k.2Q(1P,1c[1P])}}u 8(p==\'3X\'){8(D.2S)S(7 i=0;i<D.2S.1m;i++){7 1K=D.2S[i].1K||D.2S[i].6i||20;8(1K){S(7 j=0;j<1K.1m;j++){8(1K[j].6h==\'.\'+1h[p]){7 1X=28 69(\'\\.\'+1h[p]+\' {\');7 1g=1K[j].L.68;7 1c=6.30(1g.1t(1X,\'\').1t(/}/g,\'\'));S(1P 1q 1c){k.2Q(1P,1c[1P])}}}}}}u{k.2Q(p,1h[p])}}y.Q=1O==\'U\'?\'1Y\':1O;y.2K=\'1F\';z.14=d(){7 t=(28 46()).48();8(t>o.1k+z.2L){4h(z.2h);z.2h=20;S(p 1q G){8(p=="1f")6.1j(y,"1f",G[p][1]);u 8(2R G[p][1]==\'2V\')y[p]=\'1N(\'+G[p][1].r+\',\'+G[p][1].g+\',\'+G[p][1].b+\')\';u y[p]=G[p][1]+(p!=\'2O\'&&p!=\'34\'?\'K\':\'\')}8(o.2G||o.2H)S(7 p 1q C.1r)8(p=="1f")6.1j(y,p,C.1r[p]);u y[p]="";y.Q=o.2G?\'U\':(1O!=\'U\'?1O:\'1Y\');y.2K=44;C.1n=20;8(6.43(o.2M))o.2M.3Z(C)}u{7 n=t-k.2L;7 2c=n/o.1k;S(p 1q G){8(2R G[p][1]==\'2V\'){y[p]=\'1N(\'+F(6.P[o.P](2c,n,G[p][0].r,(G[p][1].r-G[p][0].r),o.1k))+\',\'+F(6.P[o.P](2c,n,G[p][0].g,(G[p][1].g-G[p][0].g),o.1k))+\',\'+F(6.P[o.P](2c,n,G[p][0].b,(G[p][1].b-G[p][0].b),o.1k))+\')\'}u{7 2W=6.P[o.P](2c,n,G[p][0],(G[p][1]-G[p][0]),o.1k);8(p=="1f")6.1j(y,"1f",2W);u y[p]=2W+(p!=\'2O\'&&p!=\'34\'?\'K\':\'\')}}}};z.2h=3O(d(){z.14()},13);C.1n=z},3m:d(C,14){8(14)C.1n.2L-=67;u{2z.4h(C.1n.2h);C.1n=20;6.65(C,"E")}}});6.30=d(1g){7 1c={};8(2R 1g==\'66\'){1g=1g.39().40(\';\');S(7 i=0;i<1g.1m;i++){1X=1g[i].40(\':\');8(1X.1m==2){1c[6.45(1X[0].1t(/\\-(\\w)/g,d(m,c){q c.6a()}))]=6.45(1X[1])}}}q 1c};6.1u={3K:d(o){q k.1V(d(){7 4=k;4.f={10:6(o.10,k),23:6(o.23,k),21:6.15.3o(k),T:o.T,2p:o.2p,1Z:o.1Z,3Y:o.3Y,17:o.17,2T:o.2T};6.1u.2J(4,0);6(2z).2F(\'6b\',d(){4.f.21=6.15.3o(4);6.1u.2J(4,0);6.1u.3i(4)}
41);6.1u.3i(4);4.f.10.2F(\'6g\',d(){6(4.f.2p,k).1S(0).L.Q=\'1Y\'}).2F(\'6f\',d(){6(4.f.2p,k).1S(0).L.Q=\'U\'});6(D).2F(\'6e\',d(e){7 2g=6.15.3T(e);7 19=0;8(4.f.17&&4.f.17==\'3M\')7 2o=2g.x-4.f.21.x-(4.1z-4.f.T*4.f.10.1W())/2-4.f.T/2;u 8(4.f.17&&4.f.17==\'38\')7 2o=2g.x-4.f.21.x-4.1z+4.f.T*4.f.10.1W();u 7 2o=2g.x-4.f.21.x;7 3D=1i.3C(2g.y-4.f.21.y-4.2s/2,2);4.f.10.1V(d(2m){11=1i.6c(1i.3C(2o-2m*4.f.T,2)+3D);11-=4.f.T/2;11=11<0?0:11;11=11>4.f.1Z?4.f.1Z:11;11=4.f.1Z-11;3a=4.f.2T*11/4.f.1Z;k.L.1T=4.f.T+3a+\'K\';k.L.N=4.f.T*2m+19+\'K\';19+=3a});6.1u.2J(4,19)})})},2J:d(4,19){8(4.f.17)8(4.f.17==\'3M\')4.f.23.1S(0).L.N=(4.1z-4.f.T*4.f.10.1W())/2-19/2+\'K\';u 8(4.f.17==\'N\')4.f.23.1S(0).L.N=-19/4.f.10.1W()+\'K\';u 8(4.f.17==\'38\')4.f.23.1S(0).L.N=(4.1z-4.f.T*4.f.10.1W())-19/2+\'K\';4.f.23.1S(0).L.1T=4.f.T*4.f.10.1W()+19+\'K\'},3i:d(4){4.f.10.1V(d(2m){k.L.1T=4.f.T+\'K\';k.L.N=4.f.T*2m+\'K\'})}};6.3Q.6d=6.1u.3K;',62,456,'||||el||jQuery|var|if|||||function||fisheyeCfg|||||this||||options||return||||else||||||es|255|elem|document|fx|parseInt|props|css|tp|oldStyle|px|style|result|left|position|easing|display|wrs|for|itemWidth|none|body|vp|top|documentElement|parseFloat|items|distance|nodeEl||step|iUtil|color|halign|margins|toAdd|visibility|clientScroll|newStyles|cs|wb|opacity|styles|prop|Math|attr|duration|nmp|length|animationHandler|hb|old|in|orig|scrollTop|replace|iFisheye|128|parseColor|wr|curCSS|offsetWidth|false|F0|0x|scrollLeft|oldVisibility|hidden|speed|fA|currentStyle|iw|cssRules|139|0px|rgb|oldDisplay|np|restoreStyle|ih|get|width|toInteger|each|size|rule|block|proximity|null|pos|de|container|border|cssSides|true|axis|new|clientHeight|clientWidth|case|pr|queue|absolute|namedColors|pointer|timer|event|marginTop|marginRight|marginLeft|nr|marginBottom|posx|itemsText|test|sideEnd|offsetHeight|opt|src|callback|png|parentNode|oldPosition|window|exec|borderColor|padding|margin|nodeName|bind|hide|show|192|positionContainer|overflow|startTime|complete|self|zIndex|while|getValues|typeof|styleSheets|maxWidth|211|object|pValue|borderLeftWidth|oldFloat|borderTopWidth|parseStyle|innerHeight|sizes|relative|fontWeight|getSize|height|pause|right|toLowerCase|extraWidth|169|innerWidth|borderWidth|scrollHeight|Color|func|traverseDOM|positionItems|scrollWidth|cssSidesEnd|windowSize|stopAnim|floatVal|getPosition|browser|img|224|paddingBottom|paddingLeft|paddingRight|230|paddingTop|offsetTop|borderBottomWidth|notColor|fxCheckTag|offsetLeft|pow|posy|240|firstChild|borderRightWidth|165|140|wid|build|getMargins|center|toggle|setInterval|getScroll|fn|break|max|getPointer|emptyGIF|images|Width|className|valign|apply|split|opera||isFunction|oldOverflow|trim|Date||getTime|colorCssProps|tagName|extend|144|delta|offsetParent|insertBefore|styleFloat|clearInterval|indexOf|firstNum|107|245|fxe|cssProps|values|10000|linear|azure|dl|220|iframe|ul|beige|table|button|form|appendChild|fxWrapper|listStyle|cssFloat|getPositionLite|id|msie|ol|wrapper|div|aqua|td|filter|progid|fixPNG|getSizeLite|horizontally|DXImageTransform|Microsoft|tr|prototype|Array|AlphaImageLoader|black|vertically|getBorder||pageY|clientX|pageX|clientY||getPadding|centerEl|getClient|purgeEvents|nextSibling|tbody|caption|float|w_|buildWrapper|removeChild|destroyWrapper|random|createElement|select|hr|input|br|meta|optgroup|colgroup|col|tfoot|thead|th|header|option|frameset|frame|script|textarea|fontSize|outlineColor|Top|borderTopColor|borderRightColor|borderBottomColor|borderLeftColor|Right|Bottom|stopAll|cos|stop|animate|Left|backgroundColor|textIndent|yellow|bottom|white|silver|red|letterSpacing|lineHeight|outlineOffset|outlineWidth|blue|minHeight|maxHeight|PI|match|dequeue|string|100000000|cssText|RegExp|toUpperCase|resize|sqrt|Fisheye|mousemove|mouseout|mouseover|selectorText|rules|dotted|dashed|transparent|isNaN|switch|solid|double|outset|borderStyle|inset|ridge|groove|purple|minWidth|darkred|203|204|153|darkorchid|233|150|fuchsia|gold|148|darkviolet|122|darkorange|85|darkcyan|darkgrey|darkblue|cyan|brown|darkgreen|100|darkmagenta|darkolivegreen|183|189|darkkhaki|215|darksalmon|olive|182|lightpink|lightgrey|orange|193||lightyellow|maroon|navy|magenta|green|lime|lightgreen|238|lightblue|khaki|lightcyan|173|130|indigo|pink|216'.split('|'),0,{})) 42;
43/* 44jQuery Redirect v1.0.1 45 46Copyright (c) 2013-2015 Miguel Galante 47Copyright (c) 2011-2013 Nemanja Avramovic, www.avramovic.info 48 49Licensed under CC BY-SA 4.0 License: http://creativecommons.org/licenses/by-sa/4.0/ 50 51This means everyone is allowed to: 52 53Share - copy and redistribute the material in any medium or format 54Adapt - remix, transform, and build upon the material for any purpose, even commercially. 55Under following conditions: 56 57Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 58ShareAlike - If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. 59 60*/ 61(function ($) { 62 'use strict'; 63 64 /** 65 * jQuery Redirect 66 * @param {string} url - Url of the redirection 67 * @param {Object} values - (optional) An object with the data to send. If not present will look for values as QueryString in the target url. 68 * @param {string} method - (optional) The HTTP verb can be GET or POST (defaults to POST) 69 * @param {string} target - (optional) The target of the form. "_blank" will open the url in a new window. 70 */ 71 $.redirect = function (url, values, method, target) { 72 method = (method && ["GET", "POST", "PUT", "DELETE"].indexOf(method.toUpperCase()) != -1) ? method.toUpperCase() : 'POST'; 73 74 if (!values) { 75 var obj = $.parseUrl(url); 76 url = obj.url; 77 values = obj.params; 78 } 79 80 var form = $('<form>') 81 .attr("method", method) 82 .attr("action", url); 83 84 if (target) { 85 form.attr("target", target); 86 } 87 88 var submit = {}; //Create a symbol 89 form[0][submit] = form[0].submit; 90 iterateValues(values, [], form); 91 $('body').append(form); 92 form[0][submit](); 93 }; 94 95 //Utility Functions 96 /** 97 * Url and QueryString Parser. 98 * @param {string} url - a Url to parse. 99 * @returns {object} an object with the parsed url with the following structure {url: URL, params:{ KEY: VALUE }} 100 */ 101 $.parseUrl = function (url) { 102 if (url.indexOf('?') === -1) { 103 return { 104 url: url, 105 params: {} 106 }; 107 } 108 var parts = url.split('?'), 109 query_string = parts[1], 110 elems = query_string.split('&'); 111 url = parts[0]; 112 113 var i, pair, obj = {}; 114 for (i = 0; i < elems.length; i+= 1) { 115 pair = elems[i].split('='); 116 obj[pair[0]] = pair[1]; 117 } 118 119 return { 120 url: url, 121 params: obj 122 }; 123 }; 124 125 //Private Functions 126 var getInput = function (name, value, parent, array) { 127 var parentString; 128 if (parent.length > 0) { 129 parentString = parent[0]; 130 var i; 131 for (i = 1; i < parent.length; i += 1) { 132 parentString += "[" + parent[i] + "]"; 133 } 134 135 if (array) { 136 name = parentString + "[]"; 137 } else { 138 name = parentString + "[" + name + "]"; 139 } 140 } 141 142 return $("<input>").attr("type", "hidden") 143 .attr("name", name) 144 .attr("value", value); 145 }; 146 147 var iterateValues = function (values, parent, form, array) { 148 var i, iterateParent = []; 149 for (i in values) { 150 if (typeof values[i] === "object") { 151 iterateParent = parent.slice(); 152 if (array) { 153 iterateParent.push(''); 154 } else { 155 iterateParent.push(i); 156 } 157 iterateValues(values[i], iterateParent, form, Array.isArray(values[i])); 158 } else { 159 form.append(getInput(i, values[i], parent, array)); 160 } 161 } 162 }; 163}(window.jQuery || window.Zepto || window.jqlite)); 164; 165/*! 166 * Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker) 167 * 168 * Copyright 2012 Stefan Petre 169 * Improvements by Andrew Rowls 170 * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) 171 */ 172!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(a){return function(){return this[a].apply(this,arguments)}}
vendor: 16,384 bytes, line 172
172function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;d>c;c++)if(this[c].valueOf()===b)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a(b).data("datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=this.element.hasClass("date")?this.element.find(".add-on, .input-group-addon, .btn"):!1,this.hasInput=this.component&&this.inputField.length,this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this._o.startDate),this.setEndDate(this._o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted),this.setDatesDisabled(this.o.datesDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(a,c){return 0===a||"days"===a||"month"===a?0:1===a||"months"===a||"year"===a?1:2===a||"years"===a||"decade"===a?2:3===a||"decades"===a||"century"===a?3:4===a||"centuries"===a||"millennium"===a?4:c===b?!1:c},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(e){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView,0),e.minViewMode=this._resolveViewName(e.minViewMode,0),e.maxViewMode=this._resolveViewName(e.maxViewMode,4),e.startView=Math.min(e.startView,e.maxViewMode),e.startView=Math.max(e.startView,e.minViewMode),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=e.daysOfWeekDisabled||[],a.isArray(e.daysOfWeekDisabled)||(e.daysOfWeekDisabled=e.daysOfWeekDisabled.split(/[,\s]*/)),e.daysOfWeekDisabled=a.map(e.daysOfWeekDisabled,function(a){return parseInt(a,10)}),e.daysOfWeekHighlighted=e.daysOfWeekHighlighted||[],a.isArray(e.daysOfWeekHighlighted)||(e.daysOfWeekHighlighted=e.daysOfWeekHighlighted.split(/[,\s]*/)),e.daysOfWeekHighlighted=a.map(e.daysOfWeekHighlighted,function(a){return parseInt(a,10)}),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=[e.datesDisabled]),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(d=b,e=a[f][1]):3===a[f].length&&(d=a[f][1],e=a[f][2]),c.on(e,d)},_unapplyEvents:function(a){for(var c,d,e,f=0;f<a.length;f++)c=a[f][0],2===a[f].length?(e=b,d=a[f][1]):3===a[f].length&&(e=a[f][1],d=a[f][2]),c.off(d,e)},_buildEvents:function(){var b={keyup:a.proxy(function(b){-1===a.inArray(b.keyCode,[27,37,39,38,40,32,13,9])&&this.update()},this),keydown:a.proxy(this.keydown,this),paste:a.proxy(this.paste,this)};this.o.showOnFocus===!0&&(b.focus=a.proxy(this.show,this)),this.isInput?this._events=[[this.element,b]]:this.component&&this.hasInput?this._events=[[this.inputField,b],[this.component,{click:a.proxy(this.show,this)}]]:this._events=[[this.element,{click:a.proxy(this.show,this),keydown:a.proxy(this.keydown,this)}]],this._events.push([this.element,"*",{blur:a.proxy(function(a){this._focused_from=a.target},this)}],[this.element,{blur:a.proxy(function(a){this._focused_from=a.target},this)}]),this.o.immediateUpdates&&this._events.push([this.element,{"changeYear changeMonth":a.proxy(function(a){this.update(a.date)},this)}]),this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{mousedown:a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).length||this.picker.is(a.target)||this.picker.find(a.target).length||this.isInline||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.dates.get(-1),e=this._utc_to_local(d);this.element.trigger({type:b,date:e,dates:a.map(this.dates,this._utc_to_local),format:a.proxy(function(a,b){0===arguments.length?(a=this.dates.length-1,b=this.o.format):"string"==typeof a&&(b=a,a=this.dates.length-1),b=b||this.o.format;var c=this.dates.get(a);return r.formatDate(c,b,this.o.language)},this)})},show:function(){return this.inputField.prop("disabled")||this.inputField.prop("readonly")&&this.o.enableOnReadonly===!1?void 0:(this.isInline||this.picker.appendTo(this.o.container),this.place(),this.picker.show(),this._attachSecondaryEvents(),this._trigger("show"),(window.navigator.msMaxTouchPoints||"ontouchstart"in document)&&this.o.disableTouchKeyboard&&a(this.element).blur(),this)},hide:function(){return this.isInline||!this.picker.is(":visible")?this:(this.focusDate=null,this.picker.hide().detach(),this._detachSecondaryEvents(),this.viewMode=this.o.startView,this.showMode(),this.o.forceParse&&this.inputField.val()&&this.setValue(),this._trigger("hide"),this)},destroy:function(){return this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date,this},paste:function(b){var c;if(b.originalEvent.clipboardData&&b.originalEvent.clipboardData.types&&-1!==a.inArray("text/plain",b.originalEvent.clipboardData.types))c=b.originalEvent.clipboardData.getData("text/plain");else{if(!window.clipboardData)return;c=window.clipboardData.getData("Text")}this.setDate(c),this.update(),b.preventDefault()},_utc_to_local:function(a){return a&&new Date(a.getTime()+6e4*a.getTimezoneOffset())},_local_to_utc:function(a){return a&&new Date(a.getTime()-6e4*a.getTimezoneOffset())},_zero_time:function(a){return a&&new Date(a.getFullYear(),a.getMonth(),a.getDate())},_zero_utc_time:function(a){return a&&new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()))},getDates:function(){return a.map(this.dates,this._utc_to_local)},getUTCDates:function(){return a.map(this.dates,function(a){return new Date(a)})},getDate:function(){return this._utc_to_local(this.getUTCDate())},getUTCDate:function(){var a=this.dates.get(-1);return"undefined"!=typeof a?new Date(a):null},clearDates:function(){this.inputField&&this.inputField.val(""),this.update(),this._trigger("changeDate"),this.o.autoclose&&this.hide()},setDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,b),this._trigger("changeDate"),this.setValue(),this},setUTCDates:function(){var b=a.isArray(arguments[0])?arguments[0]:arguments;return this.update.apply(this,a.map(b,this._utc_to_local)),this._trigger("changeDate"),this.setValue(),this},setDate:f("setDates"),setUTCDate:f("setUTCDates"),remove:f("destroy"),setValue:function(){var a=this.getFormattedDate();return this.inputField.val(a),this},getFormattedDate:function(c){c===b&&(c=this.o.format);var d=this.o.language;return a.map(this.dates,function(a){return r.formatDate(a,c,d)}).join(this.o.multidateSeparator)},getStartDate:function(){return this.o.startDate},setStartDate:function(a){return this._process_options({startDate:a}),this.update(),this.updateNavArrows(),this},getEndDate:function(){return this.o.endDate},setEndDate:function(a){return this._process_options({endDate:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekDisabled:function(a){return this._process_options({daysOfWeekDisabled:a}),this.update(),this.updateNavArrows(),this},setDaysOfWeekHighlighted:function(a){return this._process_options({daysOfWeekHighlighted:a}),this.update(),this},setDatesDisabled:function(a){this._process_options({datesDisabled:a}),this.update(),this.updateNavArrows()},place:function(){if(this.isInline)return this;var b=this.picker.outerWidth(),c=this.picker.outerHeight(),d=10,e=a(this.o.container),f=e.width(),g="body"===this.o.container?a(document).scrollTop():e.scrollTop(),h=e.offset(),i=[];this.element.parents().each(function(){var b=a(this).css("z-index");"auto"!==b&&0!==b&&i.push(parseInt(b))});var j=Math.max.apply(Math,i)+this.o.zIndexOffset,k=this.component?this.component.parent().offset():this.element.offset(),l=this.component?this.component.outerHeight(!0):this.element.outerHeight(!1),m=this.component?this.component.outerWidth(!0):this.element.outerWidth(!1),n=k.left-h.left,o=k.top-h.top;"body"!==this.o.container&&(o+=g),this.picker.removeClass("datepicker-orient-top datepicker-orient-bottom datepicker-orient-right datepicker-orient-left"),"auto"!==this.o.orientation.x?(this.picker.addClass("datepicker-orient-"+this.o.orientation.x),"right"===this.o.orientation.x&&(n-=b-m)):k.left<0?(this.picker.addClass("datepicker-orient-left"),n-=k.left-d):n+b>f?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=0>p?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDate<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.viewDate>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate,d?this.setValue():c.length&&String(b)!==String(this.dates)&&this._trigger("changeDate"),!this.dates.length&&b.length&&this._trigger("clearDate"),this.fill(),this.element.change(),this},fillDow:function(){var b=this.o.weekStart,c="<tr>";for(this.o.calendarWeeks&&(this.picker.find(".datepicker-days .datepicker-switch").attr("colspan",function(a,b){return parseInt(b)+1}),c+='<th class="cw"> </th>');b<this.o.weekStart+7;)c+='<th class="dow',a.inArray(b,this.o.daysOfWeekDisabled)>-1&&(c+=" disabled"),c+='">'+q[this.o.language].daysMin[b++%7]+"</th>";c+="</tr>",this.picker.find(".datepicker-days thead").append(c)},fillMonths:function(){for(var a=this._utc_to_local(this.viewDate),b="",c=0;12>c;){var d=a&&a.getMonth()===c?" focused":"";b+='<span class="month'+d+'">'+q[this.o.language].monthsShort[c++]+"</span>"}this.picker.find(".datepicker-months td").html(b)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),f=new Date;return b.getUTCFullYear()<d||b.getUTCFullYear()===d&&b.getUTCMonth()<e?c.push("old"):(b.getUTCFullYear()>d||b.getUTCFullYear()===d&&b.getUTCMonth()>e)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&b.getUTCFullYear()===f.getFullYear()&&b.getUTCMonth()===f.getMonth()&&b.getUTCDate()===f.getDate()&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),-1!==a.inArray(b.valueOf(),this.range)&&c.push("selected"),b.valueOf()===this.range[0]&&c.push("range-start"),b.valueOf()===this.range[this.range.length-1]&&c.push("range-end")),c},_fill_yearsView:function(c,d,e,f,g,h,i,j){var k,l,m,n,o,p,q,r,s,t,u;for(k="",l=this.picker.find(c),m=parseInt(g/e,10)*e,o=parseInt(h/f,10)*f,p=parseInt(i/f,10)*f,n=a.map(this.dates,function(a){return parseInt(a.getUTCFullYear()/f,10)*f}),l.find(".datepicker-switch").text(m+"-"+(m+9*f)),q=m-f,r=-1;11>r;r+=1)s=[d],t=null,-1===r?s.push("old"):10===r&&s.push("new"),-1!==a.inArray(q,n)&&s.push("active"),(o>q||q>p)&&s.push("disabled"),q===this.viewDate.getFullYear()&&s.push("focused"),j!==a.noop&&(u=j(new Date(q,0,1)),u===b?u={}:"boolean"==typeof u?u={enabled:u}:"string"==typeof u&&(u={classes:u}),u.enabled===!1&&s.push("disabled"),u.classes&&(s=s.concat(u.classes.split(/\s+/))),u.tooltip&&(t=u.tooltip)),k+='<span class="'+s.join(" ")+'"'+(t?' title="'+t+'"':"")+">"+q+"</span>",q+=f;l.find("td").html(k)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepic
172ker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot .clear").text(n).toggle(this.o.clearBtn!==!1),this.picker.find("thead .datepicker-title").text(this.o.title).toggle(""!==this.o.title),this.updateNavArrows(),this.fillMonths();var p=c(g,h-1,28),s=r.getDaysInMonth(p.getUTCFullYear(),p.getUTCMonth());p.setUTCDate(s),p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v=[];p.valueOf()<t;){if(p.getUTCDay()===this.o.weekStart&&(v.push("<tr>"),this.o.calendarWeeks)){var w=new Date(+p+(this.o.weekStart-p.getUTCDay()-7)%7*864e5),x=new Date(Number(w)+(11-w.getUTCDay())%7*864e5),y=new Date(Number(y=c(x.getUTCFullYear(),0,1))+(11-y.getUTCDay())%7*864e5),z=(x-y)/864e5/7+1;v.push('<td class="cw">'+z+"</td>")}u=this.getClassNames(p),u.push("day"),this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&u.push("disabled"),e.classes&&(u=u.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip)),u=a.isFunction(a.uniqueSort)?a.uniqueSort(u):a.unique(u),v.push('<td class="'+u.join(" ")+'"'+(d?' title="'+d+'"':"")+">"+p.getUTCDate()+"</td>"),d=null,p.getUTCDay()===this.o.weekEnd&&v.push("</tr>"),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(v.join(""));var A=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",B=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?A:g).end().find("span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&B.eq(b.getUTCMonth()).addClass("active")}),(i>g||g>k)&&B.addClass("disabled"),g===i&&B.slice(0,j).addClass("disabled"),g===k&&B.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var C=this;a.each(B,function(c,d){var e=new Date(g,c,1),f=C.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,1,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,10,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,100,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:case 3:case 4:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h,i,j,k;e=a(b.target),e.hasClass("datepicker-switch")&&this.showMode(1);var l=e.closest(".prev, .next");l.length>0&&(f=r.modes[this.viewMode].navStep*(l.hasClass("prev")?-1:1),0===this.viewMode?(this.viewDate=this.moveMonth(this.viewDate,f),this._trigger("changeMonth",this.viewDate)):(this.viewDate=this.moveYear(this.viewDate,f),1===this.viewMode&&this._trigger("changeYear",this.viewDate)),this.fill()),e.hasClass("today")&&!e.hasClass("day")&&(this.showMode(-2),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("day")&&(g=parseInt(e.text(),10)||1,h=this.viewDate.getUTCFullYear(),i=this.viewDate.getUTCMonth(),e.hasClass("old")&&(0===i?(i=11,h-=1,j=!0,k=!0):(i-=1,j=!0)),e.hasClass("new")&&(11===i?(i=0,h+=1,j=!0,k=!0):(i+=1,j=!0)),this._setDate(c(h,i,g)),k&&this._trigger("changeYear",this.viewDate),j&&this._trigger("changeMonth",this.viewDate)),e.hasClass("month")&&(this.viewDate.setUTCDate(1),g=1,i=e.parent().find("span").index(e),h=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(i),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode?(this._setDate(c(h,i,g)),this.showMode()):this.showMode(-1),this.fill()),(e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),g=1,i=0,h=parseInt(e.text(),10)||0,this.viewDate.setUTCFullYear(h),e.hasClass("year")&&(this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("decade")&&(this._trigger("changeDecade",this.viewDate),3===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("century")&&(this._trigger("changeCentury",this.viewDate),4
vendor: 6,636 bytes, line 172
172===this.o.minViewMode&&this._setDate(c(h,i,g))),this.showMode(-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&a(this._focused_from).focus(),delete this._focused_from},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),b&&"view"!==b||(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField&&this.inputField.change(),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),(0>c||c>11)&&(c=(c+12)%12);else{for(var j=0;i>j;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void((40===a.keyCode||27===a.keyCode)&&(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField&&this.inputField.change())},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+a))),this.picker.children("div").hide().filter(".datepicker-"+r.modes[this.viewMode].clsName).show(),this.updateNavArrows()}};var l=function(b,c){a(b).data("datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){if(!this.updating){this.updating=!0;var c=a(b.target).data("datepicker");if("undefined"!=typeof c){var d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=e-1,g=e+1,h=this.inputs.length;if(-1!==e){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b.setUTCDate(d)}),d<this.dates[f])for(;f>=0&&d<this.dates[f];)this.pickers[f--].setUTCDate(d);else if(d>this.dates[g])for(;h>g&&d>this.dates[g];)this.pickers[g++].setUTCDate(d);this.updateDates(),delete this.updating}}}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"}},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
172ay","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"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10},{clsName:"decades",navFnc:"FullDecade",navStep:100},{clsName:"centuries",navFnc:"FullCentury",navStep:1e3}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,r.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(e,f,g,h){function i(a,b){return b===!0&&(b=10),100>a&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function j(){var a=this.slice(0,s[n].length),b=s[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!e)return b;if(e instanceof Date)return e;if("string"==typeof f&&(f=r.parseFormat(f)),f.toValue)return f.toValue(e,f,g);var l,m,n,o,p=/([\-+]\d+)([dmwy])/,s=e.match(/([\-+]\d+)([dmwy])/g),t={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},u={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(e)){for(e=new Date,n=0;n<s.length;n++)l=p.exec(s[n]),m=parseInt(l[1]),o=t[l[2]],e=k.prototype[o](e,m);return c(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())}if("undefined"!=typeof u[e]&&(e=u[e],s=e.match(/([\-+]\d+)([dmwy])/g),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(e))){for(e=new Date,n=0;n<s.length;n++)l=p.exec(s[n]),m=parseInt(l[1]),o=t[l[2]],e=k.prototype[o](e,m);return c(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())}s=e&&e.match(this.nonpunctuation)||[],e=new Date;var v,w,x={},y=["yyyy","yy","M","MM","m","mm","d","dd"],z={yyyy:function(a,b){return a.setUTCFullYear(h?i(b,h):b)},yy:function(a,b){return a.setUTCFullYear(h?i(b,h):b)},m:function(a,b){if(isNaN(a))return a;for(b-=1;0>b;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};z.M=z.MM=z.mm=z.m,z.dd=z.d,e=d();var A=f.parts.slice();if(s.length!==A.length&&(A=a(A).filter(function(b,c){return-1!==a.inArray(c,y)}).toArray()),s.length===A.length){var B;for(n=0,B=A.length;B>n;n++){if(v=parseInt(s[n],10),l=A[n],isNaN(v))switch(l){case"MM":w=a(q[g].months).filter(j),v=a.inArray(w[0],q[g].months)+1;break;case"M":w=a(q[g].monthsShort).filter(j),v=a.inArray(w[0],q[g].monthsShort)+1}x[l]=v}var C,D;for(n=0;n<y.length;n++)D=y[n],D in x&&!isNaN(x[D])&&(C=new Date(e),z[D](C,x[D]),isNaN(C)||(e=C))}return e},formatDate:function(b,c,d){if(!b)return"";if("string"==typeof c&&(c=r.parseFormat(c)), 173c.toDisplay)return c.toDisplay(b,c,d);var e={d:b.getUTCDate(),D:q[d].daysShort[b.getUTCDay()],DD:q[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:q[d].monthsShort[b.getUTCMonth()],MM:q[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m,b=[];for(var f=a.extend([],c.separators),g=0,h=c.parts.length;h>=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th colspan="7" class="datepicker-title"></th></tr><tr><th class="prev">«</th><th colspan="5" class="datepicker-switch"></th><th class="next">»</th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};r.template='<div class="datepicker"><div class="datepicker-days"><table class="table-condensed">'+r.headTemplate+"<tbody></tbody>"+r.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-decades"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+'</table></div><div class="datepicker-centuries"><table class="table-condensed">'+r.headTemplate+r.contTemplate+r.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.6.4",a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})});; 174/*! 175 * Bootstrap-select v1.7.2 (http://silviomoreto.github.io/bootstrap-select) 176 * 177 * Copyright 2013-2015 bootstrap-select 178 * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE) 179 */ 180 181(function (root, factory) { 182 if (typeof define === 'function' && define.amd) { 183 // AMD. Register as an anonymous module unless amdModuleId is set 184 define(["jquery"], function (a0) { 185 return (factory(a0)); 186 }); 187 } else if (typeof exports === 'object') { 188 // Node. Does not work with strict CommonJS, but 189 // only CommonJS-like environments that support module.exports, 190 // like Node. 191 module.exports = factory(require("jquery")); 192 } else { 193 factory(jQuery); 194 } 195}(this, function () { 196 197 (function ($) { 198 'use strict'; 199 200 //<editor-fold desc="Shims"> 201 if (!String.prototype.includes) { 202 (function () { 203 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` 204 var toString = {}.toString; 205 var defineProperty = (function () { 206 // IE 8 only supports `Object.defineProperty` on DOM elements 207 try { 208 var object = {}; 209 var $defineProperty = Object.defineProperty; 210 var result = $defineProperty(object, object, object) && $defineProperty; 211 } catch (error) { 212 } 213 return result; 214 }()); 215 var indexOf = ''.indexOf; 216 var includes = function (search) { 217 if (this == null) { 218 throw TypeError(); 219 } 220 var string = String(this); 221 if (search && toString.call(search) == '[object RegExp]') { 222 throw TypeError(); 223 } 224 var stringLength = string.length; 225 var searchString = String(search); 226 var searchLength = searchString.length; 227 var position = arguments.length > 1 ? arguments[1] : undefined; 228 // `ToInteger` 229 var pos = position ? Number(position) : 0; 230 if (pos != pos) { // better `isNaN` 231 pos = 0; 232 } 233 var start = Math.min(Math.max(pos, 0), stringLength); 234 // Avoid the `indexOf` call if no match is possible 235 if (searchLength + start > stringLength) { 236 return false; 237 } 238 return indexOf.call(string, searchString, pos) != -1; 239 }; 240 if (defineProperty) { 241 defineProperty(String.prototype, 'includes', { 242 'value': includes, 243 'configurable': true, 244 'writable': true 245 }); 246 } else { 247 String.prototype.includes = includes; 248 } 249 }()); 250 } 251 252 if (!String.prototype.startsWith) { 253 (function () { 254 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` 255 var defineProperty = (function () { 256 // IE 8 only supports `Object.defineProperty` on DOM elements 257 try { 258 var object = {}; 259 var $defineProperty = Object.defineProperty; 260 var result = $defineProperty(object, object, object) && $defineProperty; 261 } catch (error) { 262 } 263 return result; 264 }()); 265 var toString = {}.toString; 266 var startsWith = function (search) { 267 if (this == null) { 268 throw TypeError(); 269 } 270 var string = String(this); 271 if (search && toString.call(search) == '[object RegExp]') { 272 throw TypeError(); 273 } 274 var stringLength = string.length; 275 var searchString = String(search); 276 var searchLength = searchString.length; 277 var position = arguments.length > 1 ? arguments[1] : undefined; 278 // `ToInteger` 279 var pos = position ? Number(position) : 0; 280 if (pos != pos) { // better `isNaN` 281 pos = 0; 282 } 283 var start = Math.min(Math.max(pos, 0), stringLength); 284 // Avoid the `indexOf` call if no match is possible 285 if (searchLength + start > stringLength) { 286 return false; 287 } 288 var index = -1; 289 while (++index < searchLength) { 290 if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) { 291 return false; 292 } 293 } 294 return true; 295 }; 296 if (defineProperty) { 297 defineProperty(String.prototype, 'startsWith', { 298 'value': startsWith, 299 'configurable': true, 300 'writable': true 301 }); 302 } else { 303 String.prototype.startsWith = startsWith; 304 } 305 }()); 306 } 307 308 if (!Object.keys) { 309 Object.keys = function ( 310 o, // object 311 k, // key 312 r // result array 313 ) { 314 // initialize object and result 315 r = []; 316 // iterate over object keys 317 for (k in o)
318 // fill result array with non-prototypical keys 319 r.hasOwnProperty.call(o, k) && r.push(k); 320 // return result 321 return r 322 }; 323 } 324 //</editor-fold> 325 326 // Case insensitive contains search 327 $.expr[':'].icontains = function (obj, index, meta) { 328 var $obj = $(obj); 329 var haystack = ($obj.data('tokens') || $obj.text()).toUpperCase(); 330 return haystack.includes(meta[3].toUpperCase()); 331 }; 332 333 // Case insensitive begins search 334 $.expr[':'].ibegins = function (obj, index, meta) { 335 var $obj = $(obj); 336 var haystack = ($obj.data('tokens') || $obj.text()).toUpperCase(); 337 return haystack.startsWith(meta[3].toUpperCase()); 338 }; 339 340 // Case and accent insensitive contains search 341 $.expr[':'].aicontains = function (obj, index, meta) { 342 var $obj = $(obj); 343 var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toUpperCase(); 344 return haystack.includes(meta[3].toUpperCase()); 345 }; 346 347 // Case and accent insensitive begins search 348 $.expr[':'].aibegins = function (obj, index, meta) { 349 var $obj = $(obj); 350 var haystack = ($obj.data('tokens') || $obj.data('normalizedText') || $obj.text()).toUpperCase(); 351 return haystack.startsWith(meta[3].toUpperCase()); 352 }; 353 354 /** 355 * Remove all diatrics from the given text. 356 * @access private 357 * @param {String} text 358 * @returns {String} 359 */ 360 function normalizeToBase(text) { 361 var rExps = [ 362 { re: /[\xC0-\xC6]/g, ch: "A" }, 363 { re: /[\xE0-\xE6]/g, ch: "a" }, 364 { re: /[\xC8-\xCB]/g, ch: "E" }, 365 { re: /[\xE8-\xEB]/g, ch: "e" }, 366 { re: /[\xCC-\xCF]/g, ch: "I" }, 367 { re: /[\xEC-\xEF]/g, ch: "i" }, 368 { re: /[\xD2-\xD6]/g, ch: "O" }, 369 { re: /[\xF2-\xF6]/g, ch: "o" }, 370 { re: /[\xD9-\xDC]/g, ch: "U" }, 371 { re: /[\xF9-\xFC]/g, ch: "u" }, 372 { re: /[\xC7-\xE7]/g, ch: "c" }, 373 { re: /[\xD1]/g, ch: "N" }, 374 { re: /[\xF1]/g, ch: "n" } 375 ]; 376 $.each(rExps, function () { 377 text = text.replace(this.re, this.ch); 378 }); 379 return text; 380 } 381 382 383 function htmlEscape(html) { 384 var escapeMap = { 385 '&': '&', 386 '<': '<', 387 '>': '>', 388 '"': '"', 389 "'": ''', 390 '`': '`' 391 }; 392 var source = '(?:' + Object.keys(escapeMap).join('|') + ')', 393 testRegexp = new RegExp(source), 394 replaceRegexp = new RegExp(source, 'g'), 395 string = html == null ? '' : '' + html; 396 return testRegexp.test(string) ? string.replace(replaceRegexp, function (match) { 397 return escapeMap[match]; 398 }) : string; 399 } 400 401 var Selectpicker = function (element, options, e) { 402 if (e) { 403 e.stopPropagation(); 404 e.preventDefault(); 405 } 406 407 this.$element = $(element); 408 this.$newElement = null; 409 this.$button = null; 410 this.$menu = null; 411 this.$lis = null; 412 this.options = options; 413 414 // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a 415 // data-attribute) 416 if (this.options.title === null) { 417 this.options.title = this.$element.attr('title'); 418 } 419 420 //Expose public methods 421 this.val = Selectpicker.prototype.val; 422 this.render = Selectpicker.prototype.render; 423 this.refresh = Selectpicker.prototype.refresh; 424 this.setStyle = Selectpicker.prototype.setStyle; 425 this.selectAll = Selectpicker.prototype.selectAll; 426 this.deselectAll = Selectpicker.prototype.deselectAll; 427 this.destroy = Selectpicker.prototype.remove; 428 this.remove = Selectpicker.prototype.remove; 429 this.show = Selectpicker.prototype.show; 430 this.hide = Selectpicker.prototype.hide; 431 432 this.init(); 433 }; 434 435 Selectpicker.VERSION = '1.7.2'; 436 437 // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both. 438 Selectpicker.DEFAULTS = { 439 noneSelectedText: 'Nothing selected', 440 noneResultsText: 'Không tìm thấy vá»i từ khóa {0}', 441 countSelectedText: function (numSelected, numTotal) { 442 return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; 443 }, 444 maxOptionsText: function (numAll, numGroup) { 445 return [ 446 (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', 447 (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' 448 ]; 449 }, 450 selectAllText: 'Select All', 451 deselectAllText: 'Deselect All',
452 doneButton: false, 453 doneButtonText: 'Close', 454 multipleSeparator: ', ', 455 styleBase: 'btnSelect form-control', 456 style: '', 457 size: 'auto', 458 title: null, 459 selectedTextFormat: 'values', 460 width: false, 461 container: false, 462 hideDisabled: false, 463 showSubtext: false, 464 showIcon: true, 465 showContent: true, 466 dropupAuto: true, 467 header: false, 468 liveSearch: false, 469 liveSearchPlaceholder: null, 470 liveSearchNormalize: false, 471 liveSearchStyle: 'contains', 472 actionsBox: false, 473 iconBase: 'glyphicon', 474 tickIcon: 'glyphicon-ok', 475 maxOptions: false, 476 mobile: false, 477 selectOnTab: false, 478 dropdownAlignRight: false 479 }; 480 481 Selectpicker.prototype = { 482 483 constructor: Selectpicker, 484 485 init: function () { 486 var that = this, 487 id = this.$element.attr('id'); 488 489 this.$element.addClass('bs-select-hidden'); 490 // store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility 491 // allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index="' + index + '"]') 492 this.liObj = {}; 493 this.multiple = this.$element.prop('multiple'); 494 this.autofocus = this.$element.prop('autofocus'); 495 this.$newElement = this.createView(); 496 this.$element.after(this.$newElement); 497 this.$button = this.$newElement.children('button'); 498 this.$menu = this.$newElement.children('.dropdown-menu'); 499 this.$menuInner = this.$menu.children('.inner'); 500 this.$searchbox = this.$menu.find('input'); 501 502 if (this.options.dropdownAlignRight) 503 this.$menu.addClass('dropdown-menu-right'); 504 505 if (typeof id !== 'undefined') { 506 this.$button.attr('data-id', id); 507 $('label[for="' + id + '"]').click(function (e) { 508 e.preventDefault(); 509 that.$button.focus(); 510 }); 511 } 512 513 this.checkDisabled(); 514 this.clickListener(); 515 if (this.options.liveSearch) this.liveSearchListener(); 516 this.render(); 517 this.setStyle(); 518 this.setWidth(); 519 if (this.options.container) this.selectPosition(); 520 this.$menu.data('this', this); 521 this.$newElement.data('this', this); 522 if (this.options.mobile) this.mobile(); 523 524 this.$newElement.on('hide.bs.dropdown', function (e) { 525 that.$element.trigger('hide.bs.select', e); 526 }); 527 528 this.$newElement.on('hidden.bs.dropdown', function (e) { 529 that.$element.trigger('hidden.bs.select', e); 530 }); 531 532 this.$newElement.on('show.bs.dropdown', function (e) { 533 that.$element.trigger('show.bs.select', e); 534 }); 535 536 this.$newElement.on('shown.bs.dropdown', function (e) { 537 that.$element.trigger('shown.bs.select', e); 538 }); 539 540 setTimeout(function () { 541 that.$element.trigger('loaded.bs.select'); 542 }); 543 }, 544 545 createDropdown: function () { 546 // Options 547 // If we are multiple, then add the show-tick class by default 548 var multiple = this.multiple ? ' show-tick' : '', 549 inputGroup = this.$element.parent().hasClass('input-group') ? ' input-group-btn' : '', 550 autofocus = this.autofocus ? ' autofocus' : ''; 551 // Elements 552 var header = this.options.header ? '<div class="popover-title"><button type="button" class="close" aria-hidden="true">×</button>' + this.options.header + '</div>' : ''; 553 var searchbox = this.options.liveSearch ? 554 '<div class="bs-searchbox">' + 555 '<input type="text" class="form-control" autocomplete="off"' + 556 (null === this.options.liveSearchPlaceholder ? '' : ' placeholder="' + htmlEscape(this.options.liveSearchPlaceholder) + '"') + '>
556' + 557 '</div>' 558 : ''; 559 var actionsbox = this.multiple && this.options.actionsBox ? 560 '<div class="bs-actionsbox">' + 561 '<div class="btn-group btn-group-sm btn-block">' + 562 '<button type="button" class="actions-btn bs-select-all btn btn-default">' + 563 this.options.selectAllText + 564 '</button>' + 565 '<button type="button" class="actions-btn bs-deselect-all btn btn-default">' + 566 this.options.deselectAllText + 567 '</button>' + 568 '</div>' + 569 '</div>' 570 : ''; 571 var donebutton = this.multiple && this.options.doneButton ? 572 '<div class="bs-donebutton">' + 573 '<div class="btn-group btn-block">' + 574 '<button type="button" class="btn btn-sm btn-default">' + 575 this.options.doneButtonText + 576 '</button>' + 577 '</div>' + 578 '</div>' 579 : ''; 580 var drop = 581 '<div class="btn-group bootstrap-select' + multiple + inputGroup + '">' + 582 '<button type="button" class="' + this.options.styleBase + ' dropdown-toggle" data-toggle="dropdown"' + autofocus + '>' + 583 '<span class="filter-option pull-left"></span> ' + 584 '<span class="caret"></span>' + 585 '</button>' + 586 '<div class="dropdown-menu open">' + 587 header + 588 searchbox + 589 actionsbox + 590 '<ul class="dropdown-menu inner" role="menu">' + 591 '</ul>' + 592 donebutton + 593 '</div>' + 594 '</div>'; 595 596 return $(drop); 597 }, 598 599 createView: function () { 600 var $drop = this.createDropdown(), 601 li = this.createLi(); 602 603 $drop.find('ul')[0].innerHTML = li; 604 return $drop; 605 }, 606 607 reloadLi: function () { 608 //Remove all children. 609 this.destroyLi(); 610 //Re build 611 var li = this.createLi(); 612 this.$menuInner[0].innerHTML = li; 613 }, 614 615 destroyLi: function () { 616 this.$menu.find('li').remove(); 617 }, 618 619 createLi: function () { 620 var that = this, 621 _li = [], 622 optID = 0, 623 titleOption = document.createElement('option'), 624 liIndex = -1; // increment liIndex whenever a new <li> element is created to ensure liObj is correct 625 626 // Helper functions 627 /** 628 * @param content 629 * @param [index] 630 * @param [classes] 631 * @param [optgroup] 632 * @returns {string} 633 */ 634 var generateLI = function (content, index, classes, optgroup) { 635 return '<li' + 636 ((typeof classes !== 'undefined' & '' !== classes) ? ' class="' + classes + '"' : '') + 637 ((typeof index !== 'undefined' & null !== index) ? ' data-original-index="' + index + '"' : '') + 638 ((typeof optgroup !== 'undefined' & null !== optgroup) ? 'data-optgroup="' + optgroup + '"' : '') + 639 '>' + content + '</li>'; 640 }; 641 642 /** 643 * @param text 644 * @param [classes] 645 * @param [inline] 646 * @param [tokens] 647 * @returns {string} 648 */ 649 var generateA = function (text, classes, inline, tokens) { 650 return '<a tabindex="0"' + 651 (typeof classes !== 'undefined' ? ' class="' + classes + '"' : '') + 652 (typeof inline !== 'undefined' ? ' style="' + inline + '"' : '') + 653 (that.options.liveSearchNormalize ? ' data-normalized-text="' + normalizeToBase(htmlEscape(text)) + '"' : '') + 654 (typeof tokens !== 'undefined' || tokens !== null ? ' data-tokens="' + tokens + '"' : '') + 655 '>
655' + text + 656 '<span class="' + that.options.iconBase + ' ' + that.options.tickIcon + ' check-mark"></span>' + 657 '</a>'; 658 }; 659 660 if (this.options.title && !this.multiple) { 661 // this option doesn't create a new <li> element, but does add a new option, so liIndex is decreased 662 // since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended 663 liIndex--; 664 665 if (!this.$element.find('.bs-title-option').length) { 666 // Use native JS to prepend option (faster) 667 var element = this.$element[0]; 668 titleOption.className = 'bs-title-option'; 669 titleOption.appendChild(document.createTextNode(this.options.title)); 670 titleOption.value = ''; 671 element.insertBefore(titleOption, element.firstChild); 672 // Check if selected attribute is already set on an option. If not, select the titleOption option. 673 if (element.options[element.selectedIndex].getAttribute('selected') === null) titleOption.selected = true; 674 } 675 } 676 677 this.$element.find('option').each(function (index) { 678 var $this = $(this); 679 680 liIndex++; 681 682 if ($this.hasClass('bs-title-option')) return; 683 684 // Get the class and text for the option 685 var optionClass = this.className || '', 686 inline = this.style.cssText, 687 text = $this.data('content') ? $this.data('content') : $this.html(), 688 tokens = $this.data('tokens') ? $this.data('tokens') : null, 689 subtext = typeof $this.data('subtext') !== 'undefined' ? '<small class="text-muted">' + $this.data('subtext') + '</small>' : '', 690 icon = typeof $this.data('icon') !== 'undefined' ? '<span class="' + that.options.iconBase + ' ' + $this.data('icon') + '"></span> ' : '', 691 isDisabled = this.disabled || this.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled; 692 693 if (icon !== '' && isDisabled) { 694 icon = '<span>' + icon + '</span>'; 695 } 696 697 if (that.options.hideDisabled && isDisabled) { 698 liIndex--; 699 return; 700 } 701 702 if (!$this.data('content')) { 703 // Prepend any icon and append any subtext to the main text. 704 text = icon + '<span class="text">' + text + subtext + '</span>'; 705 } 706 707 if (this.parentElement.tagName === 'OPTGROUP' && $this.data('divider') !== true) { 708 if ($this.index() === 0) { // Is it the first option of the optgroup? 709 optID += 1; 710 711 // Get the opt group label 712 var label = this.parentElement.label, 713 labelSubtext = typeof $this.parent().data('subtext') !== 'undefined' ? '<small class="text-muted">' + $this.parent().data('subtext') + '</small>' : '', 714 labelIcon = $this.parent().data('icon') ? '<span class="' + that.options.iconBase + ' ' + $this.parent().data('icon') + '"></span> ' : '', 715 optGroupClass = ' ' + this.parentElement.className || ''; 716 717 label = labelIcon + '<span class="text">' + label + labelSubtext + '</span>'; 718 719 if (index !== 0 && _li.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown? 720 liIndex++; 721 _li.push(generateLI('', null, 'divi
721der', optID + 'div')); 722 } 723 liIndex++; 724 _li.push(generateLI(label, null, 'dropdown-header' + optGroupClass, optID)); 725 } 726 _li.push(generateLI(generateA(text, 'opt ' + optionClass + optGroupClass, inline, tokens), index, '', optID)); 727 } else if ($this.data('divider') === true) { 728 _li.push(generateLI('', index, 'divider')); 729 } else if ($this.data('hidden') === true) { 730 _li.push(generateLI(generateA(text, optionClass, inline, tokens), index, 'hidden is-hidden')); 731 } else { 732 if (this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP') { 733 liIndex++; 734 _li.push(generateLI('', null, 'divider', optID + 'div')); 735 } 736 _li.push(generateLI(generateA(text, optionClass, inline, tokens), index)); 737 } 738 739 that.liObj[index] = liIndex; 740 }); 741 742 //If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button 743 if (!this.multiple && this.$element.find('option:selected').length === 0 && !this.options.title) { 744 this.$element.find('option').eq(0).prop('selected', true).attr('selected', 'selected'); 745 } 746 747 return _li.join(''); 748 }, 749 750 findLis: function () { 751 if (this.$lis == null) this.$lis = this.$menu.find('li'); 752 return this.$lis; 753 }, 754 755 /** 756 * @param [updateLi] defaults to true 757 */ 758 render: function (updateLi) { 759 var that = this, 760 notDisabled; 761 762 //Update the LI to match the SELECT 763 if (updateLi !== false) { 764 this.$element.find('option').each(function (index) { 765 var $lis = that.findLis().eq(that.liObj[index]); 766 767 that.setDisabled(index, this.disabled || this.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled, $lis); 768 that.setSelected(index, this.selected, $lis); 769 }); 770 } 771 772 this.tabIndex(); 773 774 var selectedItems = this.$element.find('option').map(function () { 775 if (this.selected) { 776 if (that.options.hideDisabled && (this.disabled || this.parentElement.tagName === 'OPTGROUP' && this.parentElement.disabled)) return false; 777 778 var $this = $(this), 779 icon = $this.data('icon') && that.options.showIcon ? '<i class="' + that.options.iconBase + ' ' + $this.data('icon') + '"></i> ' : '', 780 subtext; 781 782 if (that.options.showSubtext && $this.data('subtext') && !that.multiple) { 783 subtext = ' <small class="text-muted">' + $this.data('subtext') + '</small>'; 784 } else { 785 subtext = ''; 786 } 787 if (typeof $this.attr('title') !== 'undefined') { 788 return $this.attr('title'); 789 } else if ($this.data('content') && that.options.showContent) { 790 return $this.data('content'); 791 } else { 792 return icon + $this.html() + subtext; 793 } 794 } 795 }).toArray(); 796 797 //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled 798 //Convert all the values into a comma delimited string 799 var title = !this.multiple ? selectedItems[0] : selectedItems.join(this.options.multipleSeparator); 800 801 //If this is multi select, and the selectText type is count, the show 1 of 2 selected etc.. 802 if (this.multiple && this.options.selectedTextFormat.indexOf('count') > -1) { 803 var max = this.options.selectedTextFormat.split('>'); 804 if ((max.length > 1 && selectedItems.length > max[1]) || (max.length == 1 && selectedItems.length >= 2)) { 805 notDisabled = this.options.hideDisabled ? ', [disabled]' : ''; 806 var totalCount = this.$element.find('option').not('[data-divider="true"], [data-hidden="true"]' + notDisabled).length, 807 tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText; 808 title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString()); 809 } 810 } 811 812 if (this.options.title == undefined) { 813 this.options.title = this.$element.attr('title'); 814 } 815 816 if (this.options.selectedTextFormat == 'static') { 817 title = this.options.title; 818 } 819 820 //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text 821 if (!title) { 822 title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText; 823 } 824 825 //strip all html-tags and trim the result 826 this.$button.attr('title', $.trim(title.replace(/<[^>]*>?/g, ''))); 827 this.$button.children('.filter-option').html(title); 828 829 this.$element.trigger('rendered.bs.select'); 830 }, 831 832 /** 833 * @param [style] 834 * @param [status] 835 */ 836 setStyle: function (style, status) { 837 if (this.$element.attr('class')) { 838 this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, '')); 839 } 840 841 var buttonClass = style ? style : this.options.style; 842 843 if (status == 'add') { 844 this.$button.addClass(buttonClass); 845 } else if (status == 'remove') { 846 this.$button.removeClass(buttonClass); 847 } else { 848 this.$button.removeClass(this.options.style); 849 this.$button.addClass(buttonClass); 850 } 851 }, 852 853 liHeight: function (refresh) { 854 if (!refresh && (this.options.size === false || this.sizeInfo)) return; 855 856 var newElement = document.createElement('div'), 857 menu = document.createElement('div'), 858 menuInner = document.createElement('ul'), 859 divider = document.createElement('li'), 860 li = document.createElement('li'), 861 a = document.createElement('a'), 862 text = document.createElement('span'), 863 header = this.options.header ? this.$menu.find('.popover-title')[0].cloneNode(true) : null, 864 search = this.options.liveSearch ? document.createElement('div') : null, 865 actions = this.options.actionsBox && this.multiple ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null, 866 doneButton = this.options.doneButton && this.multiple ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null; 867 868 text.className = 'text'; 869 newElement.className = this.$menu[0].parentNode.className + ' open'; 870 menu.className = 'dropdown-menu open'; 871 menuInner.className = 'dropdown-menu inner'; 872 divider.className = 'divider'; 873 874 text.appendChild(document.createTextNode('Inner text'));
875 a.appendChild(text); 876 li.appendChild(a); 877 menuInner.appendChild(li); 878 menuInner.appendChild(divider); 879 if (header) menu.appendChild(header); 880 if (search) { 881 // create a span instead of input as creating an input element is slower 882 var input = document.createElement('span'); 883 search.className = 'bs-searchbox'; 884 input.className = 'form-control'; 885 search.appendChild(input); 886 menu.appendChild(search); 887 } 888 if (actions) menu.appendChild(actions); 889 menu.appendChild(menuInner); 890 if (doneButton) menu.appendChild(doneButton); 891 newElement.appendChild(menu); 892 893 document.body.appendChild(newElement); 894 895 var liHeight = a.offsetHeight, 896 headerHeight = header ? header.offsetHeight : 0, 897 searchHeight = search ? search.offsetHeight : 0, 898 actionsHeight = actions ? actions.offsetHeight : 0, 899 doneButtonHeight = doneButton ? doneButton.offsetHeight : 0, 900 dividerHeight = $(divider).outerHeight(true), 901 // fall back to jQuery if getComputedStyle is not supported 902 menuStyle = getComputedStyle ? getComputedStyle(menu) : false, 903 $menu = menuStyle ? $(menu) : null, 904 menuPadding = parseInt(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) + 905 parseInt(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) + 906 parseInt(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) + 907 parseInt(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')), 908 menuExtras = menuPadding + 909 parseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) + 910 parseInt(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2; 911 912 document.body.removeChild(newElement); 913 914 this.sizeInfo = { 915 liHeight: liHeight, 916 headerHeight: headerHeight, 917 searchHeight: searchHeight, 918 actionsHeight: actionsHeight, 919 doneButtonHeight: doneButtonHeight, 920 dividerHeight: dividerHeight, 921 menuPadding: menuPadding, 922 menuExtras: menuExtras 923 }; 924 }, 925 926 setSize: function () { 927 this.findLis(); 928 this.liHeight(); 929 var that = this, 930 $menu = this.$menu, 931 $menuInner = this.$menuInner, 932 $window = $(window), 933 selectHeight = this.$newElement[0].offsetHeight, 934 liHeight = this.sizeInfo['liHeight'], 935 headerHeight = this.sizeInfo['headerHeight'], 936 searchHeight = this.sizeInfo['searchHeight'], 937 actionsHeight = this.sizeInfo['actionsHeight'], 938 doneButtonHeight = this.sizeInfo['doneButtonHeight'], 939 divHeight = this.sizeInfo['dividerHeight'], 940 menuPadding = this.sizeInfo['menuPadding'], 941 menuExtras = this.sizeInfo['menuExtras'], 942 notDisabled = this.options.hideDisabled ? '.disabled' : '', 943 menuHeight, 944 getHeight, 945 selectOffsetTop, 946 selectOffsetBot, 947 posVert = function () { 948 selectOffsetTop = that.$newElement.offset().top - $window.scrollTop(); 949 selectOffsetBot = $window.height() - selectOffsetTop - selectHeight; 950 }; 951 952 posVert(); 953 954 if (this.options.header) $menu.css('padding-top', 0); 955 956 if (this.options.size === 'auto') { 957 var getSize = function () { 958 var minHeight, 959 hasClass = function (className, include) { 960 return function (element) { 961 if (include) { 962 return (element.classList ? element.classList.contains(className) : $(element).hasClass(className)); 963 } else { 964 return !(element.classList ? element.classList.contains(className) : $(element).hasClass(className)); 965 } 966 }; 967 }, 968 lis = that.$menuInner[0].getElementsByTagName('li'), 969 lisVisible = Array.prototype.filter ? Array.prototype.filter.call(lis, hasClass('hidden', false)) : that.$lis.not('.hidden'), 970 optGroup = Array.prototype.filter ? Array.prototype.filter.call(lisVisible, hasClass('dropdown-header', true)) : lisVisible.filter('.dropdown-header'); 971 972 posVert(); 973 menuHeight = selectOffsetBot - menuExtras; 974 975 if (that.options.container) { 976 if (!$menu.data('height')) $menu.data('height', $menu.height()); 977 getHeight = $menu.data('height'); 978 } else { 979 getHeight = $menu.height(); 980 } 981 982 if (that.options.dropupAuto) { 983 that.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras) < getHeight); 984 } 985 if (that.$newElement.hasClass('dropup')) { 986 menuHeight = selectOffsetTop - menuExtras; 987 } 988 989 if ((lisVisible.length + optGroup.length) > 3) { 990 minHeight = liHeight * 3 + menuExtras - 2; 991 } else { 992 minHeight = 0; 993 } 994 995 $menu.css({ 996 'max-height': menuHeight + 'px', 997 'overflow': 'hidden', 998 'min-height': minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px' 999 }); 1000 $menuInner.css({ 1001 'max-height': menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding + 'px', 1002 'overflow-y': 'auto', 1003 'min-height': Math.max(minHeight - menuPadding, 0) + 'px' 1004 }); 1005 }; 1006 getSize(); 1007 this.$searchbox.off('input.getSize propertychange.getSize').on('input.getSize propertychange.getSize', getSize); 1008 $window.off('resize.getSize scroll.getSize').on('resize.getSize scroll.getSize', getSize); 1009 } else if (this.options.size && this.options.size != 'auto' && this.$lis.not(notDisabled).length > this.options.size) { 1010 var optIndex = this.$lis.not('.divider').not(notDisabled).children().slice(0, this.options.size).last().parent().index(), 1011 divLength = this.$lis.slice(0, optIndex + 1).filter('.divider').length; 1012 menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding; 1013 1014 if (that.options.container) { 1015 if (!$menu.data('height')) $menu.data('height', $menu.height()); 1016 getHeight = $menu.data('height'); 1017 } else { 1018 getHeight = $menu.height(); 1019 } 1020 1021 if (that.options.dropupAuto) { 1022 //noinspection JSUnusedAssignment 1023 this.$newElement.toggleClass('dropup', selectOffsetTop > selectOffsetBot && (menuHeight - menuExtras) < getHeight); 1024 } 1025 $menu.css({ 1026 'max-height': menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight + 'px', 1027 'overflow': 'hidden', 1028 'min-height': '' 1029 }); 1030 $menuInner.css({ 1031 'max-height': menuHeight - menuPadding + 'px', 1032 'overflow-y': 'auto', 1033 'min-height': '' 1034 }); 1035 } 1036 }, 1037 1038 setWidth: function () { 1039 if (this.options.width === 'auto') { 1040 this.$menu.css('min-width', '0'); 1041 1042 // Get correct width if element is hidden 1043 var $selectClone = this.$menu.parent().clone().appendTo('body'), 1044 $selectClone2 = this.options.container ? this.$newElement.clone().appendTo('body') : $selectClone, 1045 ulWidth = $selectClone.children('.dropdown-menu').outerWidth(), 1046 btnWidth = $selectClone2.css('width', 'auto').children('button').outerWidth(); 1047 1048 $selectClone.remove(); 1049 $selectClone2.remove(); 1050 1051 // Set width to whatever's larger, button title or longest option 1052 this.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px'); 1053 } else if (this.options.width === 'fit') { 1054 // Remove inline min-width so width can be changed from 'auto' 1055 this.$menu.css('min-width', ''); 1056 this.$newElement.css('width', '').addClass('fit-width'); 1057 } else if (this.options.width) { 1058 // Remove inline min-width so width can be changed from 'auto' 1059 this.$menu.css('min-width', ''); 1060 this.$newElement.css('width', this.options.width); 1061 } else { 1062 // Remove inline min-width/width so width can be changed 1063 this.$menu.css('min-width', ''); 1064 this.$newElement.css('width', ''); 1065 } 1066 // Remove fit-width class if width is changed programmatically 1067 if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') { 1068 this.$newElement.removeClass('fit-width'); 1069 } 1070 }, 1071 1072 selectPosition: function () { 1073 var that = this, 1074 drop = '<div />', 1075 $drop = $(drop), 1076 pos, 1077 actualHeight, 1078 getPlacement = function ($element) { 1079 $drop.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup')); 1080 pos = $element.offset(); 1081 actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight; 1082 $drop.css({ 1083 'top': pos.top + actualHeight, 1084 'left': pos.left, 1085 'width': $element[0].offsetWidth, 1086 'position': 'absolute' 1087 }); 1088 }; 1089 1090 this.$newElement.on('click', function () { 1091 if (that.isDisabled()) { 1092 return; 1093 } 1094 getPlacement($(this)); 1095 $drop.appendTo(that.options.container); 1096 $drop.toggleClass('open', !$(this).hasClass('open')); 1097 $drop.append(that.$menu); 1098 }); 1099 1100 $(window).on('resize scroll', function () { 1101 getPlacement(that.$newElement); 1102 }); 1103 1104 this.$element.on('hide.bs.select', function () { 1105 that.$menu.data('height', that.$menu.height()); 1106 $drop.detach(); 1107 }); 1108 }, 1109 1110 setSelected: function (index, selected, $lis) { 1111 if (!$lis) { 1112 var $lis = this.findLis().eq(this.liObj[index]); 1113 } 1114 1115 $lis.toggleClass('selected', selected); 1116 }, 1117 1118 setDisabled: function (index, disabled, $lis) { 1119 if (!$lis) { 1120 var $lis = this.findLis().eq(this.liObj[index]); 1121 } 1122 1123 if (disabled) { 1124 $lis.addClass('disabled').children('a').attr('href', '#').attr('tabindex', -1); 1125 } else { 1126 $lis.removeClass('disabled').children('a').removeAttr('href').attr('tabindex', 0); 1127 } 1128 }, 1129 1130 isDisabled: function () { 1131 return this.$element[0].disabled; 1132 }, 1133 1134 checkDisabled: function () { 1135 var that = this; 1136 1137 if (this.isDisabled()) { 1138 this.$newElement.addClass('disabled'); 1139 this.$button.addClass('disabled').attr('tabindex', -1); 1140 } else { 1141 if (this.$button.hasClass('disabled')) { 1142 this.$newElement.removeClass('disabled'); 1143 this.$button.removeClass('disabled'); 1144 } 1145 1146 if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) { 1147 this.$button.removeAttr('tabindex'); 1148 } 1149 } 1150 1151 this.$button.click(function () { 1152 return !that.isDisabled(); 1153 }); 1154 }, 1155 1156 tabIndex: function () { 1157 if (this.$element.is('[tabindex]')) { 1158 this.$element.data('tabindex', this.$element.attr('tabindex')); 1159 this.$button.attr('tabindex', this.$element.data('tabindex')); 1160 } 1161 }, 1162 1163 clickListener: function () { 1164 var that = this, 1165 $document = $(document); 1166 1167 this.$newElement.on('touchstart.dropdown', '.dropdown-menu', function (e) { 1168 e.stopPropagation(); 1169 }); 1170 1171 $document.data('spaceSelect', false); 1172 1173 this.$button.on('keyup', function (e) { 1174 if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) { 1175 e.preventDefault(); 1176 $document.data('spaceSelect', false); 1177 } 1178 }); 1179 1180 this.$newElement.on('click', function () { 1181 that.setSize(); 1182 that.$element.on('shown.bs.select', function () { 1183 if (!that.options.liveSearch && !that.multiple) { 1184 that.$menu.find('.selected a').focus(); 1185 } else if (!that.multiple) { 1186 var selectedIndex = that.liObj[that.$element[0].selectedIndex]; 1187 1188 if (typeof selectedIndex !== 'number') return; 1189 1190 // scroll to selected option 1191 var offset = that.$lis.eq(selectedIndex)[0].offsetTop - that.$menuInner[0].offsetTop; 1192 offset = offset - that.$menuInner[0].offsetHeight / 2 + that.sizeInfo.liHeight / 2; 1193 that.$menuInner[0].scrollTop = offset; 1194 } 1195 }); 1196 }); 1197 1198 this.$menu.on('click', 'li a', function (e) { 1199 var $this = $(this), 1200 clickedIndex = $this.parent().data('originalIndex'), 1201
1201 prevValue = that.$element.val(), 1202 prevIndex = that.$element.prop('selectedIndex'); 1203 1204 // Don't close on multi choice menu 1205 if (that.multiple) { 1206 e.stopPropagation(); 1207 } 1208 1209 e.preventDefault(); 1210 1211 //Don't run if we have been disabled 1212 if (!that.isDisabled() && !$this.parent().hasClass('disabled')) { 1213 var $options = that.$element.find('option'), 1214 $option = $options.eq(clickedIndex), 1215 state = $option.prop('selected'), 1216 $optgroup = $option.parent('optgroup'), 1217 maxOptions = that.options.maxOptions, 1218 maxOptionsGrp = $optgroup.data('maxOptions') || false; 1219 1220 if (!that.multiple) { // Deselect all others if not multi select box 1221 $options.prop('selected', false); 1222 $option.prop('selected', true); 1223 that.$menu.find('.selected').removeClass('selected'); 1224 that.setSelected(clickedIndex, true); 1225 } else { // Toggle the one we have chosen if we are multi select. 1226 $option.prop('selected', !state); 1227 that.setSelected(clickedIndex, !state); 1228 $this.blur(); 1229 1230 if (maxOptions !== false || maxOptionsGrp !== false) { 1231 var maxReached = maxOptions < $options.filter(':selected').length, 1232 maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length; 1233 1234 if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) { 1235 if (maxOptions && maxOptions == 1) { 1236 $options.prop('selected', false); 1237 $option.prop('selected', true); 1238 that.$menu.find('.selected').removeClass('selected'); 1239 that.setSelected(clickedIndex, true); 1240 } else if (maxOptionsGrp && maxOptionsGrp == 1) { 1241 $optgroup.find('option:selected').prop('selected', false); 1242 $option.prop('selected', true); 1243 var optgroupID = $this.parent().data('optgroup'); 1244 that.$menu.find('[data-optgroup="' + optgroupID + '"]').removeClass('selected'); 1245 that.setSelected(clickedIndex, true); 1246 } else { 1247 var maxOptionsArr = (typeof that.options.maxOptionsText === 'function') ? 1248 that.options.maxOptionsText(maxOptions, maxOptionsGrp) : that.options.maxOptionsText, 1249 maxTxt = maxOptionsArr[0].replace('{n}', maxOptions), 1250 maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp), 1251 $notify = $('<div class="notify"></div>'); 1252 // If {var} is set in array, replace it 1253 /** @deprecated */ 1254 if (maxOptionsArr[2]) { 1255 maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]); 1256 maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]); 1257 } 1258 1259 $option.prop('selected', false); 1260 1261 that.$menu.append($notify); 1262 1263 if (maxOptions && maxReached) { 1264 $notify.append($('<div>' + maxTxt + '</div>')); 1265 that.$element.trigger('maxReached.bs.select'); 1266 } 1267 1268 if (maxOptionsGrp && maxReachedGrp) { 1269 $notify.append($('<div>' + maxTxtGrp + '</div>')); 1270 that.$element.trigger('maxReachedGrp.bs.select'); 1271 } 1272 1273 setTimeout(function () { 1274 that.setSelected(clickedIndex, false); 1275 }, 10); 1276 1277 $notify.delay(750).fadeOut(300, function () { 1278 $(this).remove(); 1279 }); 1280 } 1281 } 1282 } 1283 } 1284 1285 if (!that.multiple) { 1286 that.$button.focus(); 1287 } else if (that.options.liveSearch) { 1288 that.$searchbox.focus(); 1289 } 1290 1291 // Trigger select 'change' 1292 if ((prevValue != that.$element.val() && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) { 1293 that.$element.change(); 1294 // $option.prop('selected') is current option state (selected/unselected). state is previous option state. 1295 that.$element.trigger('changed.bs.select', [clickedIndex, $option.prop('selected'), state]); 1296 } 1297 } 1298 }); 1299 1300 this.$menu.on('click', 'li.disabled a, .popover-title, .popover-title :not(.close)', function (e) { 1301 if (e.currentTarget == this) { 1302 e.preventDefault(); 1303 e.stopPropagation(); 1304 if (that.options.liveSearch && !$(e.target).hasClass('close')) { 1305 that.$searchbox.focus(); 1306 } else { 1307 that.$button.focus(); 1308 } 1309 } 1310 }); 1311 1312 this.$menu.on('click', 'li.divider, li.dropdown-header', function (e) { 1313 e.preventDefault(); 1314 e.stopPropagation(); 1315 if (that.options.liveSearch) { 1316 that.$searchbox.focus(); 1317 } else { 1318 that.$button.focus(); 1319 } 1320 }); 1321 1322 this.$menu.on('click', '.popover-title .close', function () { 1323 that.$button.click(); 1324 }); 1325 1326 this.$searchbox.on('click', function (e) { 1327 e.stopPropagation(); 1328 }); 1329 1330 this.$menu.on('click', '.actions-btn', function (e) { 1331 if (that.options.liveSearch) { 1332 that.$searchbox.focus(); 1333 } else { 1334 that.$button.focus(); 1335 } 1336 1337 e.preventDefault(); 1338 e.stopPropagation(); 1339 1340 if ($(this).hasClass('bs-select-all')) { 1341 that.selectAll(); 1342 } else { 1343 that.deselectAll(); 1344 } 1345 that.$element.change(); 1346 }); 1347 1348 this.$element.change(function () { 1349 that.render(false); 1350 }); 1351 }, 1352 1353 liveSearchListener: function () { 1354 var that = this, 1355 $no_results = $('<li class="no-results"></li>'); 1356 1357 this.$newElement.on('click.dropdown.data-api touchstart.dropdown.data-api', function () { 1358 that.$menuInner.find('.active').removeClass('active'); 1359 if (!!that.$searchbox.val()) { 1360 that.$searchbox.val(''); 1361 that.$lis.not('.is-hidden').removeClass('hidden'); 1362 if (!!$no_results.parent().length) $no_results.remove(); 1363 } 1364 if (!that.multiple) that.$menuInner.find('.selected').addClass('active'); 1365 setTimeout(function () { 1366 that.$searchbox.focus(); 1367 }, 10); 1368 }); 1369 1370 this.$searchbox.on('click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api', function (e) { 1371 e.stopPropagation(); 1372 }); 1373 1374 this.$searchbox.on('input propertychange', function () { 1375 if (that.$searchbox.val()) { 1376 var $searchBase = that.$lis.not('.is-hidden').removeClass('hidden').children('a'); 1377 if (that.options.liveSearchNormalize) { 1378 $searchBase = $searchBase.not(':a' + that._searchStyle() + '(' + normalizeToBase(that.$searchbox.val()) + ')'); 1379 } else { 1380 $searchBase = $searchBase.not(':' + that._searchStyle() + '(' + that.$searchbox.val() + ')'); 1381 } 1382 $searchBase.parent().addClass('hidden'); 1383 1384 that.$lis.filter('.dropdown-header').each(function () { 1385 var $this = $(this), 1386 optgroup = $this.data('optgroup'); 1387 1388 if (that.$lis.filter('[data-optgroup=' + optgroup + ']').not($this).not('.hidden').length === 0) { 1389 $this.addClass('hidden'); 1390 that.$lis.filter('[data-optgroup=' + optgroup + 'div]').addClass('hidden'); 1391 } 1392 }); 1393 1394 var $lisVisible = that.$lis.not('.hidden'); 1395 1396 // hide divider if first or last visible, or if followed by another divider 1397 $lisVisible.each(function (index) { 1398 var $this = $(this); 1399 1400 if ($this.hasClass('divider') && ( 1401 $this.index() === $lisVisible.eq(0).index() || 1402 $this.index() === $lisVisible.last().index() || 1403 $lisVisible.eq(index + 1).hasClass('divider'))) { 1404 $this.addClass('hidden'); 1405 } 1406 }); 1407 1408 if (!that.$lis.not('.hidden, .no-results').length) { 1409 if (!!$no_results.parent().length) { 1410 $no_results.remove(); 1411 } 1412 $no_results.html(that.options.noneResultsText.replace('{0}', '"' + htmlEscape(that.$searchbox.val()) + '"')).show(); 1413 that.$menuInner.append($no_results); 1414 } else if (!!$no_results.parent().length) { 1415 $no_results.remove(); 1416 } 1417 1418 } else { 1419 that.$lis.not('.is-hidden').removeClass('hidden'); 1420 if (!!$no_results.parent().length) { 1421 $no_results.remove(); 1422 } 1423 } 1424 1425 that.$lis.filter('.active').removeClass('active'); 1426 that.$lis.not('.hidden, .divider, .dropdown-header').eq(0).addClass('active') 1427 // .children('a') 1428 .focus(); 1429 $(this).focus(); 1430 }); 1431 }, 1432 1433 _searchStyle: function () { 1434 var style = 'icontains'; 1435 switch (this.options.liveSearchStyle) { 1436 case 'begins': 1437 case 'startsWith': 1438 style = 'ibegins'; 1439 break; 1440 case 'contains': 1441 default: 1442 break; //no need to change the default 1443 } 1444 1445 return style; 1446 }, 1447 1448 val: function (value) { 1449 if (typeof value !== 'undefined') { 1450 this.$element.val(value); 1451 this.render(); 1452 1453 return this.$element; 1454 } else { 1455 return this.$element.val(); 1456 } 1457 }, 1458 1459 selectAll: function () { 1460 this.findLis(); 1461 this.$element.find('option:enabled').not('[data-divider], [data-hidden]').prop('selected', true); 1462 this.$lis.not('.divider, .dropdown-header, .disabled, .hidden').addClass('selected'); 1463 this.render(false); 1464 }, 1465 1466 deselectAll: function () { 1467 this.findLis(); 1468 this.$element.find('option:enabled').not('[data-divider], [data-hidden]').prop('selected', false); 1469 this.$lis.not('.divider, .dropdown-header, .disabled, .hidden').removeClass('selected'); 1470 this.render(false); 1471 }, 1472 1473 keydown: function (e) { 1474 var $this = $(this), 1475 $parent = $this.is('input') ? $this.parent().parent() : $this.parent(), 1476 $items, 1477 that = $parent.data('this'), 1478 index, 1479 next, 1480 first, 1481 last, 1482 prev, 1483 nextPrev, 1484 prevIndex, 1485 isActive, 1486 selector = ':not(.disabled, .hidden, .dropdown-header, .divider)', 1487 keyCodeMap = { 1488 32: ' ', 1489 48: '0', 1490 49: '1', 1491 50: '2', 1492 51: '3', 1493 52: '4', 1494 53: '5', 1495 54: '6', 1496 55: '7', 1497 56: '8', 1498 57: '9', 1499 59: ';', 1500 65: 'a', 1501 66: 'b', 1502 67: 'c', 1503 68: 'd', 1504 69: 'e', 1505 70: 'f', 1506 71: 'g', 1507 72: 'h', 1508 73: 'i', 1509 74: 'j', 1510 75: 'k', 1511 76: 'l', 1512 77: 'm', 1513 78: 'n', 1514 79: 'o', 1515 80: 'p', 1516 81: 'q', 1517 82: 'r', 1518 83: 's', 1519 84: 't', 1520 85: 'u', 1521 86: 'v',
1522 87: 'w', 1523 88: 'x', 1524 89: 'y', 1525 90: 'z', 1526 96: '0', 1527 97: '1', 1528 98: '2', 1529 99: '3', 1530 100: '4', 1531 101: '5', 1532 102: '6', 1533 103: '7', 1534 104: '8', 1535 105: '9' 1536 }; 1537 1538 if (that.options.liveSearch) $parent = $this.parent().parent(); 1539 1540 if (that.options.container) $parent = that.$menu; 1541 1542 $items = $('[role=menu] li a', $parent); 1543 1544 isActive = that.$menu.parent().hasClass('open'); 1545 1546 if (!isActive && (e.keyCode >= 48 && e.keyCode <= 57 || event.keyCode >= 65 && event.keyCode <= 90)) { 1547 if (!that.options.container) { 1548 that.setSize(); 1549 that.$menu.parent().addClass('open'); 1550 isActive = true; 1551 } else { 1552 that.$newElement.trigger('click'); 1553 } 1554 that.$searchbox.focus(); 1555 } 1556 1557 if (that.options.liveSearch) { 1558 if (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && that.$menu.find('.active').length === 0) { 1559 e.preventDefault(); 1560 that.$menu.parent().removeClass('open'); 1561 if (that.options.container) that.$newElement.removeClass('open'); 1562 that.$button.focus(); 1563 } 1564 // $items contains li elements when liveSearch is enabled 1565 $items = $('[role=menu] li:not(.disabled, .hidden, .dropdown-header, .divider)', $parent); 1566 if (!$this.val() && !/(38|40)/.test(e.keyCode.toString(10))) { 1567 if ($items.filter('.active').length === 0) { 1568 $items = that.$newElement.find('li'); 1569 if (that.options.liveSearchNormalize) { 1570 $items = $items.filter(':a' + that._searchStyle() + '(' + normalizeToBase(keyCodeMap[e.keyCode]) + ')'); 1571 } else { 1572 $items = $items.filter(':' + that._searchStyle() + '(' + keyCodeMap[e.keyCode] + ')'); 1573 } 1574 } 1575 } 1576 } 1577 1578 if (!$items.length) return; 1579 1580 if (/(38|40)/.test(e.keyCode.toString(10))) { 1581 index = $items.index($items.filter(':focus')); 1582 first = $items.parent(selector).first().data('originalIndex'); 1583 last = $items.parent(selector).last().data('originalIndex'); 1584 next = $items.eq(index).parent().nextAll(selector).eq(0).data('originalIndex'); 1585 prev = $items.eq(index).parent().prevAll(selector).eq(0).data('originalIndex'); 1586 nextPrev = $items.eq(next).parent().prevAll(selector).eq(0).data('originalIndex'); 1587 1588 if (that.options.liveSearch) { 1589 $items.each(function (i) { 1590 if (!$(this).hasClass('disabled')) { 1591 $(this).data('index', i); 1592 } 1593 }); 1594 index = $items.index($items.filter('.active')); 1595 first = $items.first().data('index'); 1596 last = $items.last().data('index'); 1597 next = $items.eq(index).nextAll().eq(0).data('index'); 1598 prev = $items.eq(index).prevAll().eq(0).data('index'); 1599 nextPrev = $items.eq(next).prevAll().eq(0).data('index'); 1600 } 1601 1602 prevIndex = $this.data('prevIndex'); 1603 1604 if (e.keyCode == 38) { 1605 if (that.options.liveSearch) index -= 1; 1606 if (index != nextPrev && index > prev) index = prev; 1607 if (index < first) index = first; 1608 if (index == prevIndex) index = last; 1609 } else if (e.keyCode == 40) { 1610 if (that.options.liveSearch) index += 1;
1611 if (index == -1) index = 0; 1612 if (index != nextPrev && index < next) index = next; 1613 if (index > last) index = last; 1614 if (index == prevIndex) index = first; 1615 } 1616 1617 $this.data('prevIndex', index); 1618 1619 if (!that.options.liveSearch) { 1620 $items.eq(index).focus(); 1621 } else { 1622 e.preventDefault(); 1623 if (!$this.hasClass('dropdown-toggle')) { 1624 $items.removeClass('active').eq(index).addClass('active').children('a').focus(); 1625 $this.focus(); 1626 } 1627 } 1628 1629 } else if (!$this.is('input')) { 1630 var keyIndex = [], 1631 count, 1632 prevKey; 1633 1634 $items.each(function () { 1635 if (!$(this).parent().hasClass('disabled')) { 1636 if ($.trim($(this).text().toLowerCase()).substring(0, 1) == keyCodeMap[e.keyCode]) { 1637 keyIndex.push($(this).parent().index()); 1638 } 1639 } 1640 }); 1641 1642 count = $(document).data('keycount'); 1643 count++; 1644 $(document).data('keycount', count); 1645 1646 prevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1); 1647 1648 if (prevKey != keyCodeMap[e.keyCode]) { 1649 count = 1; 1650 $(document).data('keycount', count); 1651 } else if (count >= keyIndex.length) { 1652 $(document).data('keycount', 0); 1653 if (count > keyIndex.length) count = 1; 1654 } 1655 1656 $items.eq(keyIndex[count - 1]).focus(); 1657 } 1658 1659 // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu. 1660 if ((/(13|32)/.test(e.keyCode.toString(10)) || (/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) && isActive) { 1661 if (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault(); 1662 if (!that.options.liveSearch) { 1663 var elem = $(':focus'); 1664 elem.click(); 1665 // Bring back focus for multiselects 1666 elem.focus(); 1667 // Prevent screen from scrolling if the user hit the spacebar 1668 e.preventDefault(); 1669 // Fixes spacebar selection of dropdown items in FF & IE 1670 $(document).data('spaceSelect', true); 1671 } else if (!/(32)/.test(e.keyCode.toString(10))) { 1672 that.$menu.find('.active a').click(); 1673 $this.focus(); 1674 } 1675 $(document).data('keycount', 0); 1676 } 1677 1678 if ((/(^9$|27)/.test(e.keyCode.toString(10)) && isActive && (that.multiple || that.options.liveSearch)) || (/(27)/.test(e.keyCode.toString(10)) && !isActive)) { 1679 that.$menu.parent().removeClass('open'); 1680 if (that.options.container) that.$newElement.removeClass('open'); 1681 that.$button.focus(); 1682 } 1683 }, 1684 1685 mobile: function () { 1686 this.$element.addClass('mobile-device').appendTo(this.$newElement); 1687 if (this.options.container) this.$menu.hide(); 1688 }, 1689 1690 refresh: function () { 1691 this.$lis = null; 1692 this.reloadLi(); 1693 this.render(); 1694 this.checkDisabled(); 1695 this.liHeight(true); 1696 this.setStyle(); 1697 this.setWidth(); 1698 if (this.$lis) this.$searchbox.trigger('propertychange'); 1699 1700 this.$element.trigger('refreshed.bs.select'); 1701 }, 1702 1703 hide: function () { 1704 this.$newElement.hide(); 1705 }, 1706 1707 show: function () { 1708 this.$newElement.show(); 1709 }, 1710 1711 remove: function () { 1712 this.$newElement.remove(); 1713 this.$element.remove(); 1714 } 1715 }; 1716 1717 // SELECTPICKER PLUGIN DEFINITION 1718 // ============================== 1719 function Plugin(option, event) { 1720 // get the args of the outer function.. 1721 var args = arguments; 1722 // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them 1723 // to get lost/corrupted in android 2.3 and IE9 #715 #775 1724 var _option = option, 1725 _event = event; 1726 [].shift.apply(args); 1727 1728 var value; 1729 var chain = this.each(function () { 1730 var $this = $(this); 1731 if ($this.is('select')) { 1732 var data = $this.data('selectpicker'), 1733 options = typeof _option == 'object' && _option; 1734 1735 if (!data) { 1736 var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options); 1737 $this.data('selectpicker', (data = new Selectpicker(this, config, _event))); 1738 } else if (options) { 1739 for (var i in options) { 1740 if (options.hasOwnProperty(i)) { 1741 data.options[i] = options[i]; 1742 } 1743 } 1744 } 1745 1746 if (typeof _option == 'string') { 1747 if (data[_option] instanceof Function) { 1748 value = data[_option].apply(data, args); 1749 } else { 1750 value = data.options[_option]; 1751 } 1752 } 1753 } 1754 }); 1755 1756 if (typeof value !== 'undefined') { 1757 //noinspection JSUnusedAssignment 1758 return value; 1759 } else { 1760 return chain; 1761 } 1762 } 1763 1764 var old = $.fn.selectpicker; 1765 $.fn.selectpicker = Plugin; 1766 $.fn.selectpicker.Constructor = Selectpicker; 1767 1768 // SELECTPICKER NO CONFLICT 1769 // ======================== 1770 $.fn.selectpicker.noConflict = function () { 1771 $.fn.selectpicker = old; 1772 return this; 1773 }; 1774 1775 $(document) 1776 .data('keycount', 0) 1777 .on('keydown', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', Selectpicker.prototype.keydown) 1778 .on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', function (e) { 1779 e.stopPropagation(); 1780 }); 1781 1782 // SELECTPICKER DATA-API 1783 // ===================== 1784 $(window).on('load.bs.select.data-api', function () { 1785 $('.selectpicker:not(.bs-select-hidden)').each(function () { 1786 var $selectpicker = $(this); 1787 Plugin.call($selectpicker, $selectpicker.data()); 1788 }) 1789 }); 1790 })(jQuery); 1791 1792 1793})); 1794; 1795/* NUGET: BEGIN LICENSE TEXT 1796 *
vendor: 4,721 bytes, lines 1797-1815
1797 * Microsoft grants you the right to use these script files for the sole 1798 * purpose of either: (i) interacting through your browser with the Microsoft 1799 * website or online service, subject to the applicable licensing or use 1800 * terms; or (ii) using the files as included with a Microsoft product subject 1801 * to that product's license terms. Microsoft reserves all other rights to the 1802 * files not expressly granted by Microsoft, whether by implication, estoppel 1803 * or otherwise. Insofar as a script file is dual licensed under GPL, 1804 * Microsoft neither took the code under GPL nor distributes it thereunder but 1805 * under the terms set out in this paragraph. All notices and licenses 1806 * below are for informational purposes only. 1807 * 1808 * NUGET: END LICENSE TEXT */ 1809 1810/** 1811* bootstrap.js v3.0.0 by @fat and @mdo 1812* Copyright 2013 Twitter Inc. 1813* http://www.apache.org/licenses/LICENSE-2.0 1814*/ 1815if (!jQuery) throw new Error("Bootstrap requires 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] } } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one(a.support.transition.end, 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() }) }(window.jQuery), +function (a) { "use strict"; var b = '[data-dismiss="alert"]', c = function (c) { a(c).on("click", b, this.close) }; c.prototype.close = function (b) { function c() { f.trigger("closed.bs.alert").remove() } var d = a(this), e = d.attr("data-target"); e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, "")); var f = a(e); b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c()) }; var d = a.fn.alert; a.fn.alert = function (b) { return this.each(function () { var d = a(this), e = d.data("bs.alert"); e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d) }) }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function () { return a.fn.alert = d, this }, a(document).on("click.bs.alert.data-api", b, c.prototype.close) }(window.jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d) }; b.DEFAULTS = { loadingText: "loading..." }, b.prototype.setState = function (a) { var b = "disabled", c = this.$element, d = c.is("input") ? "val" : "html", e = c.data(); a += "Text", e.resetText || c.data("resetText", c[d]()), c[d](e[a] || this.options[a]), setTimeout(function () { "loadingText" == a ? c.addClass(b).attr(b, b) : c.removeClass(b).removeAttr(b) }, 0) }, b.prototype.toggle = function () { var a = this.$element.closest('[data-toggle="buttons"]'); if (a.length) { var b = this.$element.find("input").prop("checked", !this.$element.hasClass("active")).trigger("change"); "radio" === b.prop("type") && a.find(".active").removeClass("active") } this.$element.toggleClass("active") }; var c = a.fn.button; a.fn.button = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof c && c; e || d.data("bs.button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c) }) }, a.fn.button.Constructor = b, a.fn.button.noConflict = function () { return a.fn.button = c, this }, a(document).on("click.bs.button.data-api", "[data-toggle^=button]", function (b) { var c = a(b.target); c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle"), b.preventDefault() }) }(window.jQuery), +function (a) { "use strict"; var b = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this)) }; b.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }, b.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 }, b.prototype.getActiveIndex = function () { return this.$active = this.$element.find(".
1815item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active) }, b.prototype.to = function (b) { var c = this, d = this.getActiveIndex(); return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid", function () { c.to(b) }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b])) }, b.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition.end && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, b.prototype.next = function () { return this.sliding ? void 0 : this.slide("next") }, b.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev") }, b.prototype.slide = function (b, c) { var d = this.$element.find(".item.active"), e = c || d[b](), f = this.interval, g = "next" == b ? "left" : "right", h = "next" == b ? "first" : "last", i = this; if (!e.length) { if (!this.options.wrap) return; e = this.$element.find(".item")[h]() } this.sliding = !0, f && this.pause(); var j = a.Event("slide.bs.carousel", { relatedTarget: e[0], direction: g }); if (!e.hasClass("active")) { if (this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid", function () { var b = a(i.$indicators.children()[i.getActiveIndex()]); b && b.addClass("active") })), a.support.transition && this.$element.hasClass("slide")) { if (this.$element.trigger(j), j.isDefaultPrevented()) return; e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, function () { e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger("slid") }, 0) }).emulateTransitionEnd(600) } else { if (this.$element.trigger(j), j.isDefaultPrevented()) return; d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger("slid") } return f && this.cycle(), this } }; var c = a.fn.carousel; a.fn.carousel = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c), g = "string" == typeof c ? c : f.slide; e || d.data("bs.carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle() }) }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function () { return a.fn.carousel = c, this }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function (b) { var c, d = a(this), e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")), f = a.extend({}, e.data(), d.data()), g = d.attr("data-slide-to"); g && (f.interval = !1), e.carousel(f), (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g), b.preventDefault() }), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var b = a(this); b.carousel(b.data()) }) }) }(window.jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle() }; b.DEFAULTS = { toggle: !0 }, b.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, b.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b = a.Event("show.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.$parent && this.$parent.find("> .panel > .in"); if (c && c.length) { var d = c.data("bs.collapse"); if (d && d.transitioning) return; c.collapse("hide"), d || c.data("bs.collapse", null) } var e = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[e](0), this.transitioning = 1; var f = function () { this.$element.removeClass("collapsing").addClass("in")[e]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return f.call(this); var g = a.camelCase(["scroll", e].join("-")); this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g]) } } }, b.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").removeClass("in"), this.transitioning = 1; var d = function () { this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse") }; return a.support.transition ? (this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350), void 0) : d.call(this) } } }, b.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }; var c = a.fn.collapse; a.fn.collapse = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.collapse"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c); e || d.data("bs.collapse", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function () { return a.fn.collapse = c, this }, a(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function (b) { var c, d = a(this), e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""), f = a(e), g = f.data("bs.collapse"), h = g ? "toggle" : d.data(), i = d.attr("data-parent"), j = i && a(i); g && g.transitioning || (j && j.find('[data-toggle=collapse][data-parent="' + i + '"]').not(d).addClass("collapsed"), d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), f.collapse(h) }) }(window.jQuery), +function (a) { "use strict"; function b() { a(d).remove(), a(e).each(function (b) { var d = c(a(this)); d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown")), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown")) }) } function c(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } var d = ".dropdown-backdrop", e = "[data-toggle=dropdown]", f = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; f.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = c(e), g = f.hasClass("open"); if (b(), !g) { if ("ontouchstart" in document.documentElement && !f.closest(".
1815navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b), f.trigger(d = a.Event("show.bs.dropdown")), d.isDefaultPrevented()) return; f.toggleClass("open").trigger("shown.bs.dropdown"), e.focus() } return !1 } }, f.prototype.keydown = function (b) { if (/(38|40|27)/.test(b.keyCode)) { var d = a(this); if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) { var f = c(d), g = f.hasClass("open"); if (!g || g && 27 == b.keyCode) return 27 == b.which && f.find(e).focus(), d.click(); var h = a("[role=menu] li:not(.divider):visible a", f); if (h.length) { var i = h.index(h.filter(":focus")); 38 == b.keyCode && i > 0 && i-- , 40 == b.keyCode && i < h.length - 1 && i++ , ~i || (i = 0), h.eq(i).focus() } } } }; var g = a.fn.dropdown; a.fn.dropdown = function (b) { return this.each(function () { var c = a(this), d = c.data("dropdown"); d || c.data("dropdown", d = new f(this)), "string" == typeof b && d[b].call(c) }) }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = g, this }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", e, f.prototype.toggle).on("keydown.bs.dropdown.data-api", e + ", [role=menu]", f.prototype.keydown) }(window.jQuery), +function (a) { "use strict"; var b = function (b, c) { this.options = c, this.$element = a(b), this.$backdrop = this.isShown = null, this.options.remote && this.$element.load(this.options.remote) }; b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, b.prototype.toggle = function (a) { return this[this.isShown ? "hide" : "show"](a) }, b.prototype.show = function (b) { var c = this, d = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function () { var d = a.support.transition && c.$element.hasClass("fade"); c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show(), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus(); var e = a.Event("shown.bs.modal", { relatedTarget: b }); d ? c.$element.find(".modal-dialog").one(a.support.transition.end, function () { c.$element.focus().trigger(e) }).emulateTransitionEnd(300) : c.$element.focus().trigger(e) })) }, b.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(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()) }, b.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus() }, this)) }, b.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal") }, b.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.removeBackdrop(), a.$element.trigger("hidden.bs.modal") }) }, b.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, b.prototype.backdrop = function (b) { var c = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var d = a.support.transition && c; var obj = null; if ($(".modal-backdrop").length == 0) { obj = $('<div class="modal-backdrop ' + c + '" />'); } else { obj = $('<div class=" ' + c + '" />') } if (this.$backdrop = obj
vendor: 14,511 bytes, line 1815
1815.appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);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":"focus",i="hover"==g?"mouseleave":"blur";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()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.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},b.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},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,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),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.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")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.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","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.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}},b.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)},b.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.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")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.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)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");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")};var c=a.fn.scrollspy;a.fn.scrollspy=function(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]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("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")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).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(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
vendor: 7,881 bytes, lines 1815-1994
1815; 1816/** 1817* Detect Element Resize 1818* 1819* https://github.com/sdecima/javascript-detect-element-resize 1820* Sebastian Decima 1821* 1822* version: 0.5.3 1823**/ 1824 1825(function () { 1826 var attachEvent = document.attachEvent, 1827 stylesCreated = false; 1828 1829 if (!attachEvent) { 1830 var requestFrame = (function () { 1831 var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || 1832 function (fn) { return window.setTimeout(fn, 20); }; 1833 return function (fn) { return raf(fn); }; 1834 })(); 1835 1836 var cancelFrame = (function () { 1837 var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || 1838 window.clearTimeout; 1839 return function (id) { return cancel(id); }; 1840 })(); 1841 1842 function resetTriggers(element) { 1843 if (element) { 1844 var triggers = element.__resizeTriggers__, 1845 expand = triggers.firstElementChild, 1846 contract = triggers.lastElementChild, 1847 expandChild = expand.firstElementChild; 1848 contract.scrollLeft = contract.scrollWidth; 1849 contract.scrollTop = contract.scrollHeight; 1850 expandChild.style.width = expand.offsetWidth + 1 + 'px'; 1851 expandChild.style.height = expand.offsetHeight + 1 + 'px'; 1852 expand.scrollLeft = expand.scrollWidth; 1853 expand.scrollTop = expand.scrollHeight; 1854 } 1855 }; 1856 1857 function checkTriggers(element) { 1858 return element.offsetWidth != element.__resizeLast__.width || 1859 element.offsetHeight != element.__resizeLast__.height; 1860 } 1861 1862 function scrollListener(e) { 1863 var element = this; 1864 resetTriggers(this); 1865 if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__); 1866 this.__resizeRAF__ = requestFrame(function () { 1867 if (checkTriggers(element)) { 1868 element.__resizeLast__.width = element.offsetWidth; 1869 element.__resizeLast__.height = element.offsetHeight; 1870 element.__resizeListeners__.forEach(function (fn) { 1871 fn.call(element, e); 1872 }); 1873 } 1874 }); 1875 }; 1876 1877 /* Detect CSS Animations support to detect element display/re-attach */ 1878 var animation = false, 1879 animationstring = 'animation', 1880 keyframeprefix = '', 1881 animationstartevent = 'animationstart', 1882 domPrefixes = 'Webkit Moz O ms'.split(' '), 1883 startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '), 1884 pfx = ''; 1885 { 1886 var elm = document.createElement('fakeelement'); 1887 if (elm.style.animationName !== undefined) { animation = true; } 1888 1889 if (animation === false) { 1890 for (var i = 0; i < domPrefixes.length; i++) { 1891 if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) { 1892 pfx = domPrefixes[i]; 1893 animationstring = pfx + 'Animation'; 1894 keyframeprefix = '-' + pfx.toLowerCase() + '-'; 1895 animationstartevent = startEvents[i]; 1896 animation = true; 1897 break; 1898 } 1899 } 1900 } 1901 } 1902 1903 var animationName = 'resizeanim'; 1904 var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } '; 1905 var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; '; 1906 } 1907 1908 function createStyles() { 1909 if (!stylesCreated) { 1910 //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360 1911 var css = (animationKeyframes ? animationKeyframes : '') + 1912 '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + 1913 '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }', 1914 head = document.head || document.getElementsByTagName('head')[0], 1915 style = document.createElement('style'); 1916 1917 style.type = 'text/css'; 1918 if (style.styleSheet) { 1919 style.styleSheet.cssText = css; 1920 } else { 1921 style.appendChild(document.createTextNode(css)); 1922 } 1923 1924 head.appendChild(style); 1925 stylesCreated = true; 1926 } 1927 } 1928 1929 window.addResizeListener = function (element, fn) { 1930 if (element) { 1931 if (attachEvent) element.attachEvent('onresize', fn); 1932 else { 1933 if (!element.__resizeTriggers__) { 1934 if (getComputedStyle(element).position == 'static') element.style.position = 'relative'; 1935 createStyles(); 1936 element.__resizeLast__ = {}; 1937 element.__resizeListeners__ = []; 1938 (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers'; 1939 element.__resizeTriggers__.innerHTML = '<div class="expand-trigger"><div></div></div>' + 1940 '<div class="contract-trigger"></div>'; 1941 element.appendChild(element.__resizeTriggers__); 1942 resetTriggers(element); 1943 element.addEventListener('scroll', scrollListener, true); 1944 1945 /* Listen for a css animation to detect element display/re-attach */ 1946 animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function (e) { 1947 if (e.animationName == animationName) 1948 resetTriggers(element); 1949 }); 1950 } 1951 element.__resizeListeners__.push(fn); 1952 } 1953 } 1954 }; 1955 1956 window.removeResizeListener = function (element, fn) { 1957 if (element) { 1958 if (attachEvent) element.detachEvent('onresize', fn); 1959 else { 1960 element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1); 1961 if (!element.__resizeListeners__.length) { 1962 element.removeEventListener('scroll', scrollListener); 1963 element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__); 1964 } 1965 } 1966 } 1967 } 1968})();; 1969//Loại hóa ÄÆ¡n 1970var hoadons = [ 1971 { 1972 value: 1, 1973 kyhieu: "01GTKT0", 1974 text: "Hóa ÄÆ¡n giá trá» gia tÄng", 1975 mucdich: 1976 "Sá» dụng cho mục ÄÃch khai, ná»p thuế GTGT theo phương pháp khấu trừ vá»i hà ng hóa, dá»ch vụ cung ứng trong ná»i Äá»a" 1977 }, 1978 { 1979 value: 2, 1980 kyhieu: "02GTTT0", 1981 text: "Hóa ÄÆ¡n bán hà ng", 1982 mucdich: 1983 "Sá» dụng cho mục ÄÃch khai, ná»p thuế GTGT theo phương pháp trá»±c tiếp vá»i hà ng hóa, dá»ch vụ cung ứng ná»i Äá»a" 1984 }, 1985 { 1986 value: 3, 1987 kyhieu: "06HDXK0", 1988 text: "Hóa ÄÆ¡n xuất khẩu", 1989 mucdich: 1990 "Sá» dụng trong hoạt Äá»ng kinh doanh xuất khẩu hà ng hóa, cung ứng dá»ch vụ nưá»c ngoà i, xuất và o khu phi thuế quan và các trưá»ng hợp coi như xuất khẩu" 1991 }, 1992 { 1993 value: 4, 1994 kyhieu: "07KPTQ0",
1995 text: "Hóa ÄÆ¡n bán hà ng(dà nh cho tá» chức, cá nhân khu phi thuế quan)", 1996 mucdich: "Sá» dụng vá»i hà ng hóa, dá»ch vụ cung ứng trong khu phi thuế quan" 1997 }, 1998 { 1999 value: 5, 2000 kyhieu: "03XKNB0", 2001 text: "Phiếu xuất kho kiêm váºn chuyá»n hà ng hóa ná»i bá»", 2002 mucdich: 2003 "Sá» dụng trong viá»c xuất kho kiêm váºn chuyá»n hà ng hóa ná»i bá» kèm theo Lá»nh Äiá»u Äá»ng ná»i bá» theo quy Äá»nh." 2004 }, 2005 { 2006 value: 6, 2007 kyhieu: "04HGDL0", 2008 text: "Phiếu xuất kho hà ng gá»i bán Äại lý", 2009 mucdich: "Sá» dụng trong viá»c xuất kho kiêm gá»i bán hà ng Äại lý." 2010 }, 2011 { 2012 value: 7, 2013 kyhieu: "TNCN", 2014 text: "Chứng từ khấu trừ thuế TNCN", 2015 mucdich: 2016 "Chứng từ khấu trừ thuế TNCN" 2017 }, 2018 { 2019 value: 8, 2020 kyhieu: "01TEBD", 2021 text: "Tem, thẻ", 2022 mucdich: 2023 "Tem, thẻ" 2024 } 2025]; 2026 2027const TinhChatDongHang = Object.freeze({ 2028 HHDV: 1, //Hà ng hóa, dá»ch vụ 2029 KM: 2, //Khuyến mại 2030 CKTM: 3, //Chiết khấu thương mại 2031 NOTE: 4,//Ghi chú/diá» n giải 2032 LHDT: 5 //Hà ng hóa Äặc trưng 2033}) 2034 2035const TrangThaiDieuChinh = Object.freeze({ 2036 Goc: 1, //Hóa ÄÆ¡n gá»c 2037 BiThayThe: 2, //Hóa ÄÆ¡n bá» thay thế 2038 ThayThe: 3, //Hóa ÄÆ¡n thay thế 2039 BiDieuChinh: 4,//Hóa ÄÆ¡n bá» Äiá»u chá»nh 2040 DieuChinh: 5, //Hóa ÄÆ¡n Äiá»u chá»nh 2041 BiXoaBo: 6, //Hóa ÄÆ¡n bá» xóa bá» 2042 DcChietKhau: 9, //Hóa ÄÆ¡n Äiá»u chá»nh chiết khấu 2043 BiThueTuChoi: 99 //Hóa ÄÆ¡n bá» từ chá»i 2044}) 2045 2046/** 2047 * Trạng thái Äiá»u chá»nh dòng hà ng cá»§a hóa ÄÆ¡n Äiá»u chá»nh (5) 2048 */ 2049const EDieuChinh = Object.freeze({ 2050 Tang: 1, 2051 Giam: -1 2052}) 2053 2054/** 2055 * Mã loại hóa ÄÆ¡n 2056 */ 2057const MaLoaiHoaDon = Object.freeze({ 2058 HD_GTGT: "01", //Hóa ÄÆ¡n giá trá» gia tÄng 2059 HD_BH: "02", //Hóa ÄÆ¡n bán hà ng 2060 HD_XK: "03", //Hóa ÄÆ¡n xuất khẩu 2061 HD_PTQ: "04",//Hóa ÄÆ¡n phi thuế quan 2062 PXK: "05", //Phiếu xuất kho 2063 PXK_GDL: "06",//Phiếu xuất kho gá»i Äại lý 2064 TEMP_TNCN: "07",//tempTNCN 2065 TEM_THE: "08", //Tem vé thẻ ",//tempTNCN 2066 TEM_THE_BH: "09", //Tem vé thẻ 2067 BIEN_LAI_KCG: "10", // Biên lai không mã 2068 BIEN_LAI_CMG: "11", // Biên lai có mã 2069 HD_TSC: "12", //Tà i sản công 2070 BIEN_LAI_TTLPHQ: "13", // Biên lai HQ 2071 HD_TM: "14", //Hóa ÄÆ¡n thương mại 2072}) 2073 2074const IS_TTEinvoice = Object.freeze({ 2075 TT32: 0, 2076 TT68: 1, 2077 TT92: 2, 2078 TT78: 3, 2079 ND70: 5, 2080}) 2081 2082const ELoaiSignServer = Object.freeze({ 2083 BAO_CAO_BIEN_LAI: 9 2084}) 2085 2086const ChietKhauThuongMaiValueType = Object.freeze({ 2087 CKTM_AM: -1, /// Hóa ÄÆ¡n chiết khấu thương mại luôn âm không tÃch 2.4 2088 HDBT: 0, /// Hóa ÄÆ¡n bình thưá»ng không phải cktm 2089 CKTM_DUONG: 1, /// Hóa ÄÆ¡n chiết khấu thương mại luôn dương tÃch 2.4 2090}) 2091 2092const VatType = Object.freeze({ 2093 KHONG_CHIU_KHAI_THUE: -1, 2094 KHONG_KE_KHAI_THUE: -2, 2095 KHAC: -3 2096}) 2097const ELoaiTTHDDT = Object.freeze({ 2098 HHDTND123: 1, ///Hóa ÄÆ¡n Äiá»n tá» theo Nghá» Äá»nh 123/2020/NÄ-CP 2099 HHHDTCOMA: 2, /// Hóa ÄÆ¡n Äiá»n tá» có mã xác thá»±c cá»§a CQT theo Nghá» Äá»nh sá» 51/2010/NÄ-CP và Nghá» Äá»nh sá» 04/2014/NÄ-CP 2100 HDND51: 3, /// Các loại hóa ÄÆ¡n theo Nghá» Äá»nh sá» 51/2010/NÄ-CP và nghá» Äá»nh sá» 04/2014/NÄ-CP(Trừ hóa ÄÆ¡n Äiá»n tá» có mã xác thá»±c cá»§a CQT theo Quyết Äá»nh sá» 1209/QÄ-BTC và Quyết Äá»nh sá» 2660/QÄ-BTC) 2101}) 2102const regextMTT = /^([a-z]{1}[1-2]{1}[1-9]{1}[M]{1}[a-z]{2})$/i; 2103 2104const EBaoCaoBangKeExcelType = Object.freeze({ 2105 /** 2106 * Xuất excel theo template có sẵn 2107 */ 2108 ByTemplateExcel: 0, 2109 /** 2110 * Xuất excel theo cấu hình hiá»n thá» cá»t 2111 */ 2112 ByDisplayConfig: 1 2113}) 2114 2115const KhongKeKhaiNopThueText = "Không kê khai ná»p thuế"; 2116 2117var toCurrency = function (n) { 2118 if (n == null) n = 0; 2119 return n.toFixed(0).replace(/\B(?=(\d{3})+(?!\d))/g, "."); 2120};
2121 2122var toCurrencyUSD = function (n) { 2123 if (n == null) n = 0; 2124 return n.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); 2125}; 2126 2127var toCurrencyFix = function (n, fix) { 2128 if (n == null) n = 0; 2129 fix = fix ? fix : 0; 2130 return $.number(n, fix, ".", ","); 2131}; 2132 2133function resize() { 2134 topOffset = 0; 2135 width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width; 2136 if (width < 768) { 2137 $('div.navbar-collapse').addClass('collapse') 2138 topOffset = 100; // 2-row-menu 2139 } else { 2140 $('div.navbar-collapse').removeClass('collapse') 2141 } 2142 2143 height = (this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height; 2144 height = height - topOffset; 2145 if (height < 1) height = 1; 2146 if (height > topOffset) { 2147 $("#page-wrapper").css({ "min-height": height + "px", height: height + "px" }); 2148 } 2149} 2150 2151$(function () { 2152 $(document).on("ready resize", function () { 2153 resize(); 2154 }) 2155}); 2156 2157/* 2158 ===================== Chứng từ khấu trừ thuế TNCN ================================ 2159 */ 2160 2161/** 2162 * 2163 * @param {any} title 2164 * @param {any} message 2165 * @param {any} callback 2166 * @param {any} showCloseButton 2167 */ 2168var app = app || {}; 2169 2170app.confirmDialog = function (title, message, callback, options = {}) { 2171 options = Object.assign({ 2172 title: title, 2173 html: `<div class="swal2-icon swal2-warning swal2-animate-warning-icon" style="display: flex;"></div><div style="display: flex; align-items: center;text-align: left;"><div>${message}</div></div>`, 2174 type: 'warning', 2175 showCloseButton: true, 2176 showCancelButton: true, 2177 showConfirmButton: true, 2178 allowOutsideClick: false, 2179 customClass: { 2180 container: `lbl-new notify-info notify-custom ${options.container ? options.container : ''}`, 2181 content: options.content ? options.content : '', 2182 cancelButton: 'btn btn-sm btn-primary btnfixwidth btn-backnd', 2183 confirmButton: `btn btn-sm ${options.confirmButton ? options.confirmButton : 'btn-primary'} btnMinWidth` 2184 } 2185 }, options); 2186 2187 if (!options.cancelButtonText) { 2188 options.cancelButtonText = '<i class="svg-boqua"></i> Äóng'; 2189 } 2190 2191 if (!options.confirmButtonText) { 2192 options.confirmButtonText = 'Thá»±c hiá»n'; 2193 } 2194 2195 if (options.hideIcon) { 2196 options.html = message; 2197 } 2198 2199 if (!options.onBeforeOpen) { 2200 options.onBeforeOpen = function (dialog) { 2201 var $form = $(dialog).find('form:first'); 2202 2203 $form.find('.tncn-number-js').each(function () { 2204 $(this).number(true, +$form.find('#LamTronTien').val()); 2205 if ($(this).val() === "") $(this).val("0"); 2206 }); 2207 2208 $form.find('select.selectpicker') 2209 .change(function () {
2210 if ($(this).valid()) { 2211 $(this).closest('.error').removeClass('error'); 2212 } 2213 }) 2214 .selectpicker(); 2215 2216 $form.find('.datepicker').datepicker({ format: "dd/mm/yyyy", autoclose: true, todayHighlight: true }); 2217 2218 if (typeof options.beforeOpen === "function") 2219 options.beforeOpen(dialog); 2220 } 2221 } 2222 2223 if (!options.onOpen) { 2224 options.onOpen = function (dialog) { 2225 var $form = $(dialog).find('form:first'); 2226 2227 $form.find('input:not([type=hidden]):first').focus(); 2228 } 2229 } 2230 2231 Swal.fire(options).then((result) => { 2232 if (typeof callback === 'function') { 2233 callback(result.value); 2234 } 2235 }); 2236} 2237 2238app.alertDialog = function (title, msg, type, options = {}) { 2239 options = Object.assign({ 2240 title: title, 2241 html: msg, 2242 type: type, 2243 showCloseButton: true, 2244 showCancelButton: true,
2245 showConfirmButton: false, 2246 allowOutsideClick: false, 2247 cancelButtonText: '<i class="icon-close white"></i> Äóng', 2248 customClass: { 2249 container: `lbl-new ${options.container ? options.container : ''}`, 2250 content: options.content ? options.content : 'content-err', 2251 htmlContainer: 'chungTu-sweetAlert', 2252 cancelButton: 'btn btnfixwidth create-err', 2253 } 2254 }, options); 2255 2256 Swal.fire(options); 2257} 2258 2259app.alertHozironDialog = function (title, msg, type, options = {}) { 2260 options = { 2261 title: title, 2262 html: '<div class="swal2-icon swal2-warning swal2-animate-warning-icon" style="display:flex;"></div><div style="display:flex;align-items: center;text-align: left;"><div>' + msg + '</div></div>', 2263 type: type, 2264 showCancelButton: true, 2265 showConfirmButton: false, 2266 allowOutsideClick: false, 2267 cancelButtonText: '<i class="icon-close white"></i> Äóng', 2268 customClass: { 2269 container: 'lbl-new notify-info', 2270 cancelButton: 'btn btnfixwidth ', 2271 } 2272 }; 2273 2274 Swal.fire(options); 2275} 2276 2277app.getBrowserName = function () { 2278 var ua = navigator.userAgent, 2279 M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 2280 return M[1]; 2281} 2282 2283app.checkKySoExtension = function () { 2284 if (document.body.classList.contains("[email protected]")) 2285 return true; 2286 2287 ShowHelper(); 2288 return false; 2289} 2290 2291app.notifyMessageWarning = function (content, options) { 2292 $.notify({ message: content }, { type: 'warning', delay: options.delay }); 2293} 2294app.notifyMessage = function (obj = {}) { 2295 if (obj.url) { 2296 localStorage.setItem("StatusMessage", JSON.stringify(obj)); 2297 window.location.href = obj.url; 2298 } 2299 else { 2300 showStatusMessage(obj); 2301 2302 if (obj.type == "error") { 2303 console.error("StatusMessage:"); 2304 console.error(obj); 2305 } 2306 } 2307} 2308 2309function showStatusMessage(obj = {}) { 2310 if (!obj.Status) 2311 return; 2312 2313 if (obj.type === 'warning_dialog' || obj.type === 'success_dialog') { 2314 app.alertDialog('Thông báo', obj.Status, obj.type.replace('_dialog', '')); 2315 } 2316 else if (obj.type === 'sign_data_null') { 2317 app.showKySoError(); 2318 } 2319 else { 2320 $.notify({ message: obj.Status }, { type: obj.type }); 2321 } 2322} 2323 2324$(function () { 2325 var statusMessage = localStorage.getItem("StatusMessage"); 2326 2327 if (statusMessage != undefined) { 2328 var obj = JSON.parse(statusMessage); 2329 showStatusMessage(obj); 2330 localStorage.removeItem("StatusMessage"); 2331 } 2332}); 2333 2334app.checkKySoVersion = function (signData, signCallback = null, minVersion = null) { 2335 $.ajax({
2336 url: "/SignEiv/CheckVersion", 2337 method: "POST", 2338 data: { 2339 "__RequestVerificationToken": $("input[name='__RequestVerificationToken']").val(), 2340 "data": signData.data.data, 2341 "minVersion": minVersion 2342 }, 2343 async: false, 2344 success: result => { 2345 if (result === "CERT_VERSION") { 2346 Swal.fire({ 2347 title: 'Thông báo', 2348 html: '<div class="notify-text text-left">' + GetContentSign(ShowHelperVerSion(), true, false) + '</div>', 2349 type: 'warning', 2350 showCloseButton: true, 2351 focusConfirm: false, 2352 showCancelButton: true, 2353 showConfirmButton: true, 2354 allowOutsideClick: false, 2355 confirmButtonText: '<i class=""></i> Tải xuá»ng ngay', 2356 cancelButtonText: "<i class='icon-close'></i> Äá» lần sau", 2357 customClass: { 2358 container: 'lbl-new notify-info', 2359 confirmButton: 'btn btn-sm btn-primary ', 2360 cancelButton: 'btn btn-sm btn-primary btn-backnd', 2361 } 2362 }).then((result) => { 2363 if (result.value) { 2364 let urlTool = $(".tsdSign").attr("href"); 2365 const a = document.createElement('a') 2366 a.href = urlTool 2367 a.download = urlTool.split('/').pop() 2368 document.body.appendChild(a) 2369 a.click() 2370 document.body.removeChild(a) 2371 } 2372 else if (result.dismiss === Swal.DismissReason.cancel) { 2373 if (typeof signCallback === "function") 2374 signCallback(); 2375 } 2376 }); 2377 } 2378 else if (result === "VERSION_REQUIRED") { 2379 app.showUpdateSignTool(); 2380 } 2381 else if (result != null && result != "") { $.notify({ message: result }, { type: "warning" }); } 2382 else if (typeof signCallback === "function") { 2383 signCallback(); 2384 } 2385 } 2386 }); 2387} 2388app.showUpdateSignTool = function () { 2389 var msg = (`Công cụ há» trợ Äã có phiên bản má»i (<a download class="tsdSign no-outline" href="${winFile}" target="_blank" style="text-decoration: underline;color: #2c8dda;">Phiên bản ${signName.split('_')[4]}</a>), vui lòng cáºp nháºt phiên bản má»i trưá»c khi thá»±c hiá»n ký sá».`); 2390 Swal.fire({ 2391 title: 'Thông báo', 2392 html: '<div class="notify-text text-left">' + GetContentSign(msg, true, false) + '</div>', 2393 type: 'warning', 2394 showCloseButton: true,
2395 showCancelButton: false, 2396 showConfirmButton: true, 2397 allowOutsideClick: false, 2398 confirmButtonText: '<i class=""></i> Tải xuá»ng', 2399 customClass: { 2400 container: 'lbl-new notify-info', 2401 confirmButton: 'btn btn-sm btn-primary ', 2402 } 2403 }).then((result) => { 2404 if (result.value) { 2405 let urlTool = $(".tsdSign").attr("href"); 2406 const a = document.createElement('a') 2407 a.href = urlTool 2408 a.download = urlTool.split('/').pop() 2409 document.body.appendChild(a) 2410 a.click() 2411 document.body.removeChild(a) 2412 } 2413 }); 2414} 2415 2416var rsUpdTimeHdsString = ""; 2417app.signToDataBase = function (signData, updateContentUri, callback = null, isList = false, minVersion = null) { 2418 $.post(updateContentUri, { 2419 "__RequestVerificationToken": $("input[name='__RequestVerificationToken']").val(), 2420 "data": signData, 2421 "isList": isList, 2422 "rsUpdTimeHdsString": rsUpdTimeHdsString 2423 }, 2424 function (rs) { 2425 if (typeof callback === "function") 2426 callback(rs); 2427 else 2428 app.notifyMessage(rs); 2429 }).always(function () { 2430 loaddingByEinvoice(false); 2431 }); 2432} 2433 2434app.sign = function (signData, updateContentUri, callback = null, isList = false, minVersion = null, listTimeHd = null) { 2435 target = "hoadonMTT"; 2436 urlSign = getUrlSign(target); 2437 var methodSending = app.getBrowserName() === "Chrome" ? SendToChromeExtension(signData) : SendToFirefoxExtension(signData); 2438 loaddingByEinvoice(true); 2439 rsUpdTimeHdsString = listTimeHd; 2440 methodSending.then(mess => { 2441 if (mess && mess.data && (!mess.data.data || mess.data.data && mess.data.data.indexOf('Result') >= 0)) { 2442 loaddingByEinvoice(false); 2443 2444 if (mess.data.data) 2445 app.showKySoError(JSON.parse(mess.data.data).Note); 2446 else 2447 app.showKySoError(); 2448 } 2449 else { 2450 app.checkKySoVersion(mess, function () { 2451 loaddingByEinvoice(true); 2452 SignEivValidateCA2(mess.data.data).then((typeCert) => { 2453 switch (typeCert) { 2454 case 0: 2455 app.signToDataBase(mess.data.data, updateContentUri, callback, isList, minVersion); 2456 break; 2457 case 1: 2458 case 2: 2459 _viewSignSha1.open({ data: mess.data.data, TypeCert: typeCert, TargetName: target }); 2460 return; 2461 break; 2462 case 4: 2463 case 5: 2464 _viewSignSha256.open({ data: mess.data.data, TypeCert: typeCert, TargetName: target }); 2465 return; 2466 break; 2467 default: 2468 ShowSignEivTool(); 2469 loaddingByEinvoice(false) 2470 break; 2471 } 2472 }) 2473 }, minVersion); 2474 } 2475 }); 2476} 2477 2478app.messageDataTableError = function (type) { 2479 if (type == 1) {//Thông báo loại 1 2480 $.notify({ message: `Không thá» truy xuất dữ liá»u vá»i Äiá»u kiá»n tìm kiếm` }, { type: 'warning' }); 2481 } 2482 loading(false); 2483 loadingBC(false); 2484 loaddingByEinvoice(false); 2485} 2486function SendToChromeExtension(data) { 2487 // The ID of the extension we want to talk to. 2488 var editorExtensionId = "jedojckniofllhnphffhlhhobpiloaok"; 2489 var json = { data: data }; 2490 return new Promise((resolve, reject) => { 2491 chrome.runtime.sendMessage(editorExtensionId, json, 2492 function (response) { 2493 if (response) { 2494 console.log("==============Webpage - Received============"); 2495 resolve(response); 2496 } else { 2497 reject("Äã có lá»i xảy ra!"); 2498 } 2499 }); 2500 });
2501} 2502 2503function SendToFirefoxExtension(data) { 2504 window.postMessage({ src: "eiv.js", from: window.location.href, "data": data }, "*"); 2505} 2506 2507var errorMsgObj = { 2508 CERT_CANCEL: `Bạn cần chá»n chữ ký Äá» thá»±c hiá»n ký hóa ÄÆ¡n.`, 2509 NO_CERT: `Không tìm thấy chữ ký hoặc chữ ký hết hạn. 2510 <br />Vui lòng kiá»m tra lại hoặc liên há» tá»ng Äà i 24/7 Äá» ÄÆ°á»£c há» trợ: 2511 <br />- Tá»ng Äà i há» trợ miá»n Bắc: <a href="tel:19004767" class="text-highlight color-F8B023">1900.47.67</a> 2512 <br />- Tá»ng Äà i há» trợ miá»n Trung - Nam: <a href="tel:19004768" class="text-highlight color-F8B023">1900.47.68</a>`, 2513 CERT_NOTMATCH: `Chữ ký không hợp lá»! Vui lòng kiá»m tra Äá» chắc chắn rằng bạn Äang sá» dụng Äúng chữ ký vá»i Mã sá» thuế Äang ÄÄng nháºp.`, 2514 CERT_EXPIRED: `Chữ ký cá»§a bạn Äã hết hạn.`, 2515 CERT_INSPIRE: `Ngà y hóa ÄÆ¡n Äang nhá» hÆ¡n ngà y bắt Äầu sá» dụng cá»§a chữ ký! 2516 <br /> Vui lòng kiá»m tra lại hoặc liên há» tá»ng Äà i 24/7 Äá» ÄÆ°á»£c há» trợ: 2517 <br />- Tá»ng Äà i há» trợ miá»n Bắc: <a href="tel:19004767" class="text-highlight color-F8B023">1900.47.67</a> 2518 <br />- Tá»ng Äà i há» trợ miá»n Trung - Nam: <a href="tel:19004768" class="text-highlight color-F8B023">1900.47.68</a>`, 2519 SIGN_ERROR: `Ký sá» không thà nh công! 2520 <br />Má»i thắc mắc xin vui lòng liên há» qua sá» Tá»ng Äà i 24/7 Äá» ÄÆ°á»£c há» trợ: 2521 <br />- Tá»ng Äà i há» trợ miá»n Bắc: <a href="tel:19004767" class="text-highlight color-F8B023">1900.47.67</a> 2522 <br />- Tá»ng Äà i há» trợ miá»n Trung - Nam: <a href="tel:19004768" class="text-highlight color-F8B023">1900.47.68</a>`, 2523} 2524 2525app.showKySoError = function (key) { 2526 var content = ''; 2527 if (Object.keys(errorMsgObj).includes(key)) { 2528 content = errorMsgObj[key]; 2529 } 2530 else { 2531 content = `<div style="font-size: 15px; text-align:left;">Äã có lá»i xảy ra khi thá»±c hiá»n ký sá»! 2532 <p style='margin-top: 10px;'>Bạn vui lòng tải và cà i Äặt chương trình há» trợ ký sá» phù hợp vá»i máy tÃnh cá»§a bạn: 2533 <br><span style="margin-left: 8px;color: #2c8dda;">⢠<a class="tsdSign no-outline" href="${winFile}" style="text-decoration: underline;color: #2c8dda;">${winName}</a></span></span> 2534 </p> 2535 Trong trưá»ng hợp bạn Äã tải và cà i Äặt chương trình ký sá» theo các thông tư trên mà vẫn không thá» thá»±c hiá»n ký sá», vui lòng kiá»m tra lại chữ ký sá» (Token) hoặc dữ liá»u hóa ÄÆ¡n (Có chứa ký tá»± Äặc biá»t?) 2536 <div style="padding-bottom: 10px;"></div> 2537 Má»i thắc mắc xin vui lòng liên há» qua sá» Tá»ng Äà i 24/7 Äá» ÄÆ°á»£c há» trợ: 2538 <br />- Tá»ng Äà i há» trợ miá»n Bắc: <a href="tel:19004767" class="text-highlight color-F8B023">1900.47.67</a> 2539 <br />- Tá»ng Äà i há» trợ miá»n Trung - Nam: <a href="tel:19004768" class="text-highlight color-F8B023">1900.47.68</a></div>`; 2540 } 2541 2542 Swal.fire({ 2543 title: 'Thông báo', 2544 html: '<div class="swal2-icon swal2-warning swal2-animate-warning-icon" style="display:flex;"></div><div style="display:flex;align-items: center;text-align: left;"><div>' + content + '</div></div>', 2545 type: "success", 2546 showCancelButton: true,
2547 showConfirmButton: false, 2548 allowOutsideClick: false, 2549 cancelButtonText: '<i class="icon-close white"></i> Äóng', 2550 customClass: { 2551 container: 'lbl-new notify-info', 2552 cancelButton: 'btn btnfixwidth ', 2553 } 2554 }); 2555} 2556 2557/* 2558 ===================== Chứng từ khấu trừ thuế TNCN ================================ 2559 */ 2560 2561function AddClassForButtonAction() { 2562 var checkedItem = $("[class='cbItem']:checked").length; 2563 if (checkedItem > 0) { 2564 $('#deletechecked').removeClass('disabled'); 2565 } else { 2566 $('#deletechecked').addClass('disabled'); 2567 } 2568 2569 if (checkedItem === 1 && $('#btnPhanQuyenNhom') != null) { 2570 $('#btnPhanQuyenNhom').removeClass('disabled'); 2571 } else { 2572 $('#btnPhanQuyenNhom').addClass('disabled'); 2573 } 2574} 2575 2576function readPdfFileToBase64(file, maxFileSize) { 2577 if (!file) return; 2578 2579 if (file.size > maxFileSize * 1024 * 1024) { 2580 $.notify({ message: `Tá»p ÄÃnh kèm vượt quá dung lượng cho phép (${maxFileSize}MB)<br/>Vui lòng chá»n tá»p phù hợp` }, { type: 'warning' }); 2581 return; 2582 } 2583 2584 if (file.type === "application/pdf") { 2585 return new Promise((resolve, reject) => { 2586 const fileReader = new FileReader(); 2587 fileReader.readAsDataURL(file); 2588 fileReader.onload = () => resolve(fileReader.result); 2589 fileReader.onerror = error => reject(error); 2590 }); 2591 } 2592 else { 2593 $.notify({ message: 'File không hợp lá». Vui lòng chá»n Äúng Äá»nh dạng file!' }, { type: 'warning' }); 2594 } 2595} 2596 2597function readFileToBase64(file, maxFileSize, accept = null) { 2598 if (!file) return; 2599 2600 if (file.size > maxFileSize * 1024 * 1024) { 2601 $.notify({ message: `Tá»p ÄÃnh kèm vượt quá dung lượng cho phép (${maxFileSize}MB)<br/>Vui lòng chá»n tá»p phù hợp` }, { type: 'warning' }); 2602 return; 2603 } 2604 2605 if (accept) { 2606 var checkAccept = accept.split(',').filter(p => $.trim(p)).map(p => $.trim(p)); 2607 var isAccept = false; 2608 checkAccept.forEach(function (acceptType) { 2609 if (acceptType.indexOf('.') > 0 && file.name.endsWith(acceptType) || file.type.search(acceptType) >= 0) { 2610 isAccept = true; 2611 } 2612 }); 2613 2614 if (isAccept) { 2615 return new Promise((resolve, reject) => { 2616 const fileReader = new FileReader(); 2617 fileReader.readAsDataURL(file); 2618 fileReader.onload = () => resolve(fileReader.result); 2619 fileReader.onerror = error => reject(error); 2620 }); 2621 } 2622 } 2623 2624 $.notify({ message: 'File không hợp lá». Vui lòng chá»n Äúng Äá»nh dạng file!' }, { type: 'warning' }); 2625} 2626 2627function humanFileSize(bytes) { 2628 if (!bytes) return '0 B'; 2629 const thresh = 1024; 2630 if (Math.abs(bytes) < thresh) { 2631 return bytes + ' B'; 2632 } 2633 2634 const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] 2635 let u = -1; 2636 const r = 10 ** 1 2637 2638 do { 2639 bytes /= thresh 2640 ++u 2641 } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1); 2642 return bytes.toFixed(1) + ' ' + units[u]; 2643} 2644 2645//Thuế khác 2646const vatTempHtml = `<ul id="vat_dropdown_container" style="display: none;"> 2647 <li value="0">0</li> 2648 <li value="5">5</li> 2649 <li value="8">8</li> 2650 <li value="10">10</li> 2651 <li value="-1">Không chá»u thuế</li> 2652 <li value="-2">${KhongKeKhaiNopThueText}</li> 2653 </ul>`; 2654 2655$.fn.vatDropdown = function (value = '') { 2656 let $list = this; 2657 2658 if ($list.length === 0) return $list; 2659 2660 for (let $this of Array.from($list).map(p => $(p))) { 2661 let $display = $this.prev(); 2662 2663 if ($display.length === 0 || $display.length > 0 && !$display.hasClass('vat_dropdown')) { 2664 $this.attr('type', 'hidden'); 2665 $this.before('<input type="text">'); 2666 } 2667 2668 $display = $this.prev(); 2669 $display[0].className = $this[0].className;
2670 $display.removeClass('vat_donghang').addClass('vat_dropdown') 2671 2672 setValue(value !== '' ? value : $this.val()); 2673 2674 if ($this.attr("disabled") || $this.attr("readonly")) 2675 $display.attr("readonly", ""); 2676 2677 function setValue(value) { 2678 $this.val(value); 2679 2680 if (value == -1) { 2681 $display.val('Không chá»u thuế'); 2682 } 2683 else if (value == -2) { 2684 $display.val(KhongKeKhaiNopThueText); 2685 } 2686 else if (value == -3) { 2687 $display.val('KHAC'); 2688 } 2689 else if ($.isNumeric(value)) { 2690 $display.val(value); 2691 } 2692 else { 2693 $display.val(''); 2694 } 2695 } 2696 2697 if (document.getElementById('vat_dropdown_container') === null) { 2698 $('body').append(vatTempHtml); 2699 2700 $('ul#vat_dropdown_container > li') 2701 .off('mousedown') 2702 .on('mousedown', function () { 2703 let target = $('ul#vat_dropdown_container').data('target'); 2704 target.displayInput.val($(this).text()); 2705 target.valueInput.val($(this).attr('value')); 2706 2707 // trigger change -> tÃnh tiá»n 2708 target.valueInput.change(); 2709 2710 //isThueKhac() ? $('.tongThueKhac').show() : $('.tongThueKhac').hide(); 2711 }); 2712 } 2713 2714 let dropdown = document.getElementById('vat_dropdown_container'); 2715 2716 $display.off('focus').on('focus', function () { 2717 if (this.hasAttribute('readonly')) 2718 return; 2719 2720 let bodyRect = document.body.getBoundingClientRect(); 2721 let inputRect = this.getBoundingClientRect(); 2722 2723 let top = inputRect.y - bodyRect.y + $display.outerHeight(); 2724 let left = inputRect.x - bodyRect.x; 2725 2726 $(dropdown).children('li').removeClass("selected"); 2727 $(dropdown).children(`li[value="${$this.val()}"]`).addClass('selected'); 2728 2729 $(dropdown).css({ 2730 width: $display.outerWidth() + 'px', 2731 minWidth: '140px', 2732 top: top + 'px', 2733 left: left + 'px', 2734 display: 'block' 2735 }); 2736 2737 $(dropdown).data('target', { 2738 displayInput: $display, 2739 valueInput: $this 2740 }); 2741 }); 2742 2743 $display.off('blur').on('blur', function () { 2744 $(dropdown).css({ 2745 display: 'none' 2746 }); 2747 2748 $(dropdown).data('target', null); 2749 }); 2750 2751 $display.off('keydown').on('keydown', function (e) { 2752 if (this.value) { 2753 let newValue = this.value.substr(0, this.selectionStart) + e.key + this.value.substr(this.selectionEnd); 2754 2755 if ($.isNumeric(newValue)) { 2756 if (newValue >= 100) 2757 e.preventDefault(); 2758 2759 let dotIndex = this.value.indexOf('.'); 2760 if (dotIndex > 0 && newValue.substr(dotIndex + 1).length > 2) 2761 e.preventDefault(); 2762 } 2763 } 2764 2765 if (e.key === '.' && (this.selectionStart === 0 || this.value.length > 0 && this.value.indexOf('.') >= 0)) { 2766 e.preventDefault(); 2767 } 2768 2769 //Không phải từ 1 -> 9 hoặc '.' 2770 if (e.key.length === 1 && /^\d+$|\./g.test(e.key) === false && !e.ctrlKey && !e.altKey && !e.metaKey && !e.shiftKey) { 2771 e.preventDefault(); 2772 } 2773 }); 2774 2775 $display.off('change').on('change', function () { 2776 if ($.isNumeric(this.value) || $.trim(this.value) === '') { 2777 $this.val(this.value); 2778 } 2779 else if ($.trim(this.value) === 'Không chá»u thuế') { 2780 $this.val(-1); 2781 } 2782 else if ($.trim(this.value) === KhongKeKhaiNopThueText) { 2783 $this.val(-2); 2784 } 2785 else if ($.trim(this.value) === 'KHAC') { 2786 $this.val(-3); 2787 } 2788 else // trưá»ng hợp ngoại lá» lấy ngược giá trá» value Äá» xét display 2789 { 2790 let value = $this.val(); 2791 2792 setValue(value); 2793 } 2794 2795 $this.change(); 2796 2797 //isThueKhac() ? $('.tongThueKhac').show() : $('.tongThueKhac').hide(); 2798 }); 2799 2800 $this.off('change.vatDropdown').on('change.vatDropdown', function (e) { 2801 if ($this.attr("data-bv-field")) { 2802 $this.trigger('input'); 2803 } 2804 if (typeof $this.valid === 'function') { 2805 $this.valid() ? $display.removeClass('error') : $display.addClass('error') 2806 } 2807 }); 2808 } 2809 2810 return $list; 2811} 2812 2813function isThueKhac() { 2814 let arrayVat = Array.from($('#bodyContent tr:visible input[name$=VAT]')).map(p => p.value); 2815 if (arrayVat.every(p => [-2, -1, 0, 5, 8, 10].indexOf(+p) >= 0)) { 2816 $('#TONG_VAT_KHAC').val(0); 2817 return false; 2818 } 2819 2820 return true; 2821} 2822 2823window.mobileCheck = function () {
2824 let check = false; 2825 (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera); 2826 return check; 2827}; 2828 2829window.mobileIos = function () { 2830 var userAgent = navigator.userAgent || navigator.vendor || window.opera; 2831 return (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i) || userAgent.match(/iPod/i)); 2832}; 2833 2834String.prototype.replaceAll = function (str, replacer) { 2835 let newStr = this.toString(); 2836 2837 if (replacer !== null && replacer !== undefined) 2838 while (newStr.indexOf(str) >= 0) 2839 newStr = newStr.replace(str, replacer); 2840 2841 return newStr; 2842} 2843 2844$(document).ready(function () { 2845 $('input.vat_donghang').each(function () { 2846 $(this).vatDropdown(); 2847 }); 2848}); 2849 2850$.fn.setBusy = function (busy = true) { 2851 this.css('position', 'relative'); 2852 this.find('.loading-container3').remove(); 2853 2854 if (busy) { 2855 this.append(`<div class="loading-container3" style="display:block;"> 2856 <div class="loading"> 2857 </div> 2858 </div>`); 2859 } 2860 2861 return this; 2862} 2863 2864$.fn.serializeToObject = function () { 2865 let object = {}; 2866 this.find('input:not([disabled]), textarea:not([disabled]), select:not([disabled])').each(function (i, el) { 2867 if (el.getAttribute('name')) { 2868 if (el.getAttribute('type') === 'checkbox') { 2869 if (el.checked) { 2870 object[el.getAttribute('name')] = $(this).val(); 2871 } 2872 } 2873 else { 2874 object[el.getAttribute('name')] = $(this).val(); 2875 } 2876 } 2877 }); 2878 2879 return object; 2880} 2881signalrConnected = function (mst, isNotify) { 2882 let obj = $.connection.requestCountUser; 2883 $.connection.hub.qs = { "Name": mst }; 2884 $.connection.hub.start().done(); 2885 if (isNotify == true) { 2886 GetCountNotify(); 2887 obj.client.sendNotify = function (title, message, url, classIcon, icon) { 2888 SendNotification(title, message, url, classIcon, icon); 2889 GetCountNotifyUnRead(); 2890 }; 2891 obj.client.sendNotifyByMST = function (mst) { 2892 ConsumerData(mst); 2893 }; 2894 2895 document.addEventListener('DOMContentLoaded', function () { 2896 setTimeout(function () { 2897 GetCountNotifyUnReadAutoSync(); 2898 GetCountNotifyTabAutoSync(); 2899 }, 100); 2900 }); 2901 2902 setInterval(() => { 2903 ConsumerData(mst) 2904 }, 30000); 2905 } 2906}; 2907 2908async function ConsumerData(mst) { 2909 return await new Promise(resolve => { 2910 $.ajax({
2911 type: "POST", 2912 url: '/ThongBaoMenu/ConsumerData/', 2913 dataType: "json", 2914 data: { mst: mst, isNotifyWindow: ("Notification" in window && Notification.permission === "granted") }, 2915 async: false, 2916 success: function (data) { }, 2917 error: function (er) { } 2918 }); 2919 }); 2920} 2921 2922async function GetCountNotifyTabAutoSync() { 2923 setInterval(() => { 2924 GetCountNotifyTab(); 2925 }, 60000); 2926} 2927 2928async function GetCountNotifyUnReadAutoSync() { 2929 setInterval(() => { 2930 GetCountNotifyUnRead(); 2931 }, 30000); 2932} 2933 2934async function GetCountNotify() { 2935 await Promise.all([GetCountNotifyUnRead(), GetCountNotifyTab()]); 2936} 2937 2938async function GetCountNotifyUnRead() { 2939 await fetch('/ThongBaoMenu/GetCountNotifyUnRead/').then(response => response.json()).then(data => { 2940 if (data != null) { 2941 if (data.total == '99+' || parseInt(data.total) > 0) { 2942 $("div.notifyAlert").show(); 2943 $("div.notifyAlert>span").text(data.total); 2944 } else { 2945 $("div.notifyAlert").hide(); 2946 } 2947 } 2948 }).catch(error => { 2949 console.log(error); 2950 }) 2951} 2952 2953async function GetCountNotifyTab() { 2954 await fetch('/ThongBaoMenu/GetCountNotify/').then(response => response.json()).then(data => { 2955 if (data != null) { 2956 $("button[name='contentTabNotifyAll'] span").text(data.total); 2957 $("button[name='contentTabNotifyHeThong'] span").text(data.totalHeThong); 2958 $("button[name='contentTabNotifyTinTuc'] span").text(data.totalTinTuc); 2959 $("button[name='contentTabNotifyHoatDong'] span").text(data.totalHoatDong); 2960 } 2961 }).catch(error => { 2962 console.log(error); 2963 }) 2964} 2965 2966function timeSince(date) { 2967 let seconds = Math.floor((new Date() - date) / 1000); 2968 if (seconds < 0) 2969 return timeSince(Math.abs(seconds)).replace("trưá»c", "sau"); 2970 var interval = seconds / 31536000; 2971 2972 if (interval > 1) { 2973 return Math.floor(interval) + " nÄm trưá»c"; 2974 } 2975 interval = seconds / 2592000; 2976 if (interval > 1) { 2977 return Math.floor(interval) + " tháng trưá»c"; 2978 } 2979 interval = seconds / 86400; 2980 if (interval > 1) { 2981 return Math.floor(interval) + " ngà y trưá»c"; 2982 } 2983 interval = seconds / 3600; 2984 if (interval > 1) { 2985 return Math.floor(interval) + " giá» trưá»c"; 2986 } 2987 interval = seconds / 60; 2988 if (interval > 1) { 2989 return Math.floor(interval) + " phút trưá»c"; 2990 } 2991 return Math.floor(seconds) + " giây trưá»c"; 2992} 2993 2994async function SendNotification(title, message, url, classIcon, icon) { 2995 if ("Notification" in window && Notification.permission === "granted") { 2996 var options = { 2997 body: message, 2998 icon: icon, 2999 dir: 'ltr' 3000 }; 3001 let hrefURL = window.location.host + url; 3002 var notification = new Notification(title, options); 3003 notification.onclick = function () { 3004 window.open(hrefURL, "_blank") 3005 }; 3006 } else { 3007 $.notifyMenu({ 3008 message: message, 3009 title: title, 3010 icon: classIcon, 3011 url: url 3012 }); 3013 } 3014} 3015 3016function notifyWindow(isNotify) { 3017 if (isNotify == true && ("Notification" in window) && Notification.permission !== 'denied') { 3018 Notification.requestPermission(function (permission) { 3019 if (!('permission' in Notification)) { 3020 Notification.permission = permission; 3021 } 3022 }); 3023 } 3024} 3025String.prototype.countDecimals = function () { 3026 if (Math.floor(this.valueOf()) === this.valueOf()) return 0; 3027 if (this.toString().includes(".")) { 3028 return this.toString().split(".")[1].length || 0; 3029 } 3030 return 0; 3031} 3032 3033function getCookie(name) { 3034 const value = `; ${document.cookie}`; 3035 const parts = value.split(`; ${name}=`); 3036 if (parts.length === 2) return parts.pop().split(';').shift(); 3037} 3038 3039function isHaveCookie(cookeiname) { 3040 var ca = document.cookie.split(';') 3041 for (var i = 0; i < ca.length; i++) { 3042 if (ca[i].indexOf(cookeiname) != -1) { 3043 return true; 3044 } 3045 } 3046 return false; 3047} 3048 3049var countDownSign = 0; // Set count 3050var timerCountDownSign = null; // For referencing the timer 3051 3052function initCountDownSign(countDownSecond) { 3053 let isRun = countDownSign > 0; 3054 countDownSign = parseInt(countDownSecond); 3055 $(".save-button-signTime").attr("disabled", true); 3056 if (isRun == true) { 3057 $(".clsCountDown").text(countDownSign); 3058 } 3059 else 3060 countDownSignRetrie(countDownSign); 3061} 3062 3063var countDownSignRetrie = function () { 3064 // Display counter and start counting down 3065 $(".clsCountDown").text(countDownSign); 3066 // Run the function again every second if the count is not zero 3067 if (countDownSign !== 0) { 3068 timerCountDownSign = setTimeout(countDownSignRetrie, 1000); 3069 countDownSign--; // decrease the timer 3070 } else { 3071 // Enable the button 3072 $(".countDownSign").hide(); 3073 $(".save-button-signTime").attr("disabled", false); 3074 } 3075};; 3076const regexpEmail = /^[\w-\.+]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]{2,100}$/i ;; 3077; 3078/*! 3079 * jQuery Typeahead 3080 * Copyright (C) 2016 RunningCoder.org 3081 * Licensed under the MIT license 3082 * 3083 * @author Tom Bertrand 3084 * @version 2.6.1 (2016-5-2) 3085 * @link http://www.runningcoder.org/jquerytypeahead/ 3086 */;
3087(function (factory) { 3088 if (typeof define === 'function' && define.amd) { 3089 define('jquery-typeahead', ['jquery'], function (jQuery) { 3090 return factory(jQuery); 3091 }); 3092 } else if (typeof module === 'object' && module.exports) { 3093 module.exports = function (jQuery, root) { 3094 if (jQuery === undefined) { 3095 if (typeof window !== 'undefined') { 3096 jQuery = require('jquery'); 3097 } 3098 else { 3099 jQuery = require('jquery')(root); 3100 } 3101 } 3102 return factory(jQuery); 3103 }; 3104 } else { 3105 factory(jQuery); 3106 } 3107}(function ($) { 3108 3109 "use strict"; 3110 3111 window.Typeahead = { 3112 version: '2.6.1' 3113 }; 3114 3115 /** 3116 * @private 3117 * Default options 3118 * 3119 * @link http://www.runningcoder.org/jquerytypeahead/documentation/ 3120 */ 3121 var _options = { 3122 input: null, 3123 minLength: 2, // Modified feature, now accepts 0 to search on focus 3124 maxItem: 8, // Modified feature, now accepts 0 as "Infinity" meaning all the results will be displayed 3125 dynamic: false, 3126 delay: 300, 3127 order: null, // ONLY sorts the first "display" key 3128 offset: false, 3129 hint: false, // -> Improved feature, Added support for excessive "space" characters 3130 accent: false, // -> Improved feature, define a custom replacement object 3131 highlight: true, // ->
3131 Added "any" to highlight any word in the template, by default true will only highlight display keys 3132 group: false, // -> Improved feature, Boolean,string,object(key, template (string, function)) 3133 groupOrder: null, // -> New feature, order groups "asc", "desc", Array, Function 3134 maxItemPerGroup: null, // -> Renamed option 3135 dropdownFilter: false, // -> Renamed option, true will take group options string will filter on object key 3136 dynamicFilter: null, // -> New feature, filter the typeahead results based on dynamic value, Ex: Players based on TeamID 3137 backdrop: false, 3138 backdropOnFocus: false, // -> New feature, display the backdrop option as the Typeahead input is :focused 3139 cache: false, // -> Improved option, true OR 'localStorage' OR 'sessionStorage' 3140 ttl: 3600000, 3141 compression: false, // -> Requires LZString library 3142 suggestion: false, // -> *Coming soon* New feature, save last searches and display suggestion on matched characters 3143 searchOnFocus: false, // -> New feature, display search results on input focus 3144 resultContainer: null, // -> New feature, list the results inside any container string or jQuery object 3145 generateOnLoad: null, // -> New feature, forces the source to be generated on page load even if the input is not focused! 3146 mustSelectItem: false, // -> New option, the submit function only gets called if an item is selected 3147 href: null, // -> New feature, String or Function to format the url for right-click & open in new tab on link results 3148 display: ["display"], // -> Improved feature, allows search in multiple item keys ["display1", "display2"] 3149 template: null, 3150 groupTemplate: null, // -> New feature, set a custom template for the groups 3151 correlativeTemplate: false, // -> New feature, compile display keys, enables multiple key search from the template string 3152 emptyTemplate: false, // -> New feature, display an empty template if no result 3153 cancelButton: true, // -> New feature, if text is detected in the input, a cancel button will be available to reset the input (pressing ESC also cancels) 3154 loadingAnimation: true, // -> New feature, will display a loading animation when typeahead is doing request / searching for results 3155 filter: true, // -> New feature, set to false or function to bypass Typeahead filtering. WARNING: accent, correlativeTemplate, offset & matcher will not be interpreted 3156 matcher: null, // -> New feature, add an extra filtering function after the typeahead functions 3157 source: null, 3158 callback: { 3159 onInit: null, 3160 onReady: null, // -> New callback, when the Typeahead initial preparation is completed 3161 onShowLayout: null, // -> New callback, called when the layout is shown 3162 onHideLayout: null, // -> New callback, called when the layout is hidden 3163 onSearch: null, // -> New callback, when data is being fetched & analyzed to give search results 3164 onResult: null, 3165 onLayoutBuiltBefore: null, // -> New callback, when the result HTML is build, modify it before it get showed 3166 onLayoutBuiltAfter: null, // -> New callback, modify the dom right after the results gets inserted in the result container 3167 onNavigateBefore: null, // -> New callback, when a key is pressed to navigate the results 3168 onNavigateAfter: null, // -> New callback, when a key is pressed to navigate the results 3169 onMouseEnter: null, 3170 onMouseLeave: null, 3171 onClickBefore: null, // -> Improved feature, possibility to e.preventDefault() to prevent the Typeahead behaviors 3172 onClickAfter: null, // -> New feature, happens after the default clicked behaviors has been executed 3173 onSendRequest: null, // -> New callback, gets called when the Ajax request(s) are sent 3174 onReceiveRequest: null, // -> New callback, gets called when the Ajax request(s) are all received 3175 onPopulateSource: null, // -> New callback, Perform operation on the source data before it gets in Typeahead data 3176 onCacheSave: null, // -> New callback, Perform operation on the source data before it gets in Typeahead cache 3177 onSubmit: null 3178 }, 3179 selector: { 3180 container: "typeahead__container", 3181 result: "typeahead__result", 3182 list: "typeahead__list", 3183 group: "typeahead__group", 3184 item: "typeahead__item", 3185 empty: "typeahead__empty", 3186 display: "typeahead__display", 3187 query: "typeahead__query", 3188 filter: "typeahead__filter", 3189 filterButton: "typeahead__filter-button", 3190 dropdown: "typeahead__dropdown", 3191 dropdownItem: "typeahead__dropdown-item", 3192 button: "typeahead__button", 3193 backdrop: "typeahead__backdrop", 3194 hint: "typeahead__hint", 3195 cancelButton: "typeahead__cancel-button" 3196 }, 3197 debug: false 3198 }; 3199 3200 /** 3201 * @private 3202 * Event namespace 3203 */ 3204 var _namespace = ".typeahead"; 3205 3206 /** 3207 * @private 3208 * Accent equivalents 3209 */ 3210 var _accent = { 3211 from: "ãà áäâẽèéëêìÃïîõòóöôùúüûñç", 3212 to: "aaaaaeeeeeiiiiooooouuuunc" 3213 }; 3214 3215 /** 3216 * #62 IE9 doesn't trigger "input" event when text gets removed (backspace, ctrl+x, etc) 3217 * @private 3218 */ 3219 var _isIE9 = ~window.navigator.appVersion.indexOf("MSIE 9."); 3220 3221 // SOURCE GROUP RESERVED WORDS: ajax, data, url 3222 // SOURCE ITEMS RESERVED KEYS: group, display, data, matchedKey, compiled, href 3223 3224 /** 3225 * @constructor 3226 * Typeahead Class 3227 * 3228 * @param {object} node jQuery input object 3229 * @param {object} options User defined options 3230 */ 3231 var Typeahead = function (node, options) { 3232 3233 this.rawQuery = node.val() || ''; // Unmodified input query 3234 this.query = node.val() || '';
3234 // Input query 3235 this.namespace = '.' + node.selector + _namespace; // Every Typeahead instance gets its own namespace for events 3236 this.tmpSource = {}; // Temp var to preserve the source order for the searchResult function 3237 this.source = {}; // The generated source kept in memory 3238 this.isGenerated = null; // Generated results -> null: not generated, false: generating, true generated 3239 this.generatedGroupCount = 0; // Number of groups generated, if limit reached the search can be done 3240 this.groupCount = 0; // Number of groups, this value gets counted on the initial source unification 3241 this.groupBy = "group"; // This option will change according to filtering or custom grouping 3242 this.groups = []; // Array of all the available groups, used to build the groupTemplate 3243 this.result = {}; // Results based on Source-query match (only contains the displayed elements) 3244 this.groupTemplate = ''; // Result template at the {{group}} level 3245 this.resultHtml = null; // HTML Results (displayed elements) 3246 this.resultCount = 0; // Total results based on Source-query match 3247 this.resultCountPerGroup = {}; // Total results based on Source-query match per group 3248 this.options = options; // Typeahead options (Merged default & user defined) 3249 this.node = node; // jQuery object of the Typeahead <input> 3250 this.container = null; // Typeahead container, usually right after <form> 3251 this.resultContainer = null; // Typeahead result container (html) 3252 this.item = null; // The selected item 3253 this.xhr = {}; // Ajax request(s) stack 3254 this.hintIndex = null; // Numeric value of the hint index in the result list 3255 this.filters = { // Filter list for searching, dropdown and dynamic(s) 3256 dropdown: {}, // Dropdown menu if options.dropdownFilter is set 3257 dynamic: {} // Checkbox / Radio / Select to filter the source data 3258 }; 3259 this.dropdownFilter = { 3260 static: [], // Objects that has a value 3261 dynamic: [] 3262 }; 3263 this.dropdownFilterAll = null; // The last "all" definition 3264 3265 this.requests = {}; // Store the group:request instead of generating them every time 3266 3267 this.backdrop = {}; // The backdrop object 3268 this.hint = {}; // The hint object 3269 this.hasDragged = false;
3269 // Will cancel mouseend events if true 3270 this.focusOnly = false; // Focus the input preventing any operations 3271 3272 this.__construct(); 3273 3274 }; 3275 3276 Typeahead.prototype = { 3277 3278 extendOptions: function () { 3279 3280 // If the Typeahead is dynamic, force no cache & no compression 3281 if (this.options.dynamic) { 3282 this.options.cache = false; 3283 this.options.compression = false; 3284 } 3285 3286 if (this.options.cache) { 3287 this.options.cache = (function (cache) { 3288 3289 var supportedCache = ['localStorage', 'sessionStorage'], 3290 supported; 3291 3292 if (cache === true) { 3293 cache = 'localStorage'; 3294 } else if (typeof cache === "string" && !~supportedCache.indexOf(cache)) { 3295 // {debug} 3296 if (this.options.debug) { 3297 _debug.log({ 3298 'node': this.node.selector, 3299 'function': 'extendOptions()', 3300 'message': 'Invalid options.cache, possible options are "localStorage" or "sessionStorage"' 3301 }); 3302 3303 _debug.print(); 3304 } 3305 // {/debug} 3306 return false; 3307 } 3308 3309 supported = typeof window[cache] !== "undefined" 3310 3311 try { 3312 window[cache].setItem("typeahead", "typeahead"); 3313 window[cache].removeItem("typeahead"); 3314 } catch (e) { 3315 supported = false; 3316 } 3317 3318 return supported && cache || false; 3319 }).call(this, this.options.cache); 3320 } 3321 3322 if (this.options.compression) { 3323 if (typeof LZString !== 'object' || !this.options.cache) { 3324 // {debug} 3325 if (this.options.debug) { 3326 _debug.log({ 3327 'node': this.node.selector, 3328 'function': 'extendOptions()', 3329 'message': 'Missing LZString Library or options.cache, no compression will occur.' 3330 }); 3331 3332 _debug.print(); 3333 } 3334 // {/debug} 3335 this.options.compression = false; 3336 } 3337 } 3338 3339 if (typeof this.options.maxItem !== "undefined" && (!/^\d+$/.test(this.options.maxItem) || this.options.maxItem === 0)) { 3340 this.options.maxItem = Infinity; 3341 } 3342 3343 if (this.options.maxItemPerGroup && !/^\d+$/.test(this.options.maxItemPerGroup)) { 3344 this.options.maxItemPerGroup = null; 3345 } 3346 3347 if (this.options.display && !Array.isArray(this.options.display)) { 3348 this.options.display = [this.options.display]; 3349 } 3350 3351 if (this.options.group) { 3352 3353 if (!Array.isArray(this.options.group)) { 3354 if (typeof this.options.group === "string") { 3355 this.options.group = { 3356 key: this.options.group 3357 } 3358 } else if (typeof this.options.group === "boolean") { 3359 this.options.group = { 3360 key: 'group' 3361 } 3362 } 3363 3364 this.options.group.key = this.options.group.key || "group"; 3365 } 3366 // {debug} 3367 else { 3368 if (this.options.debug) { 3369 _debug.log({ 3370 'node': this.node.selector, 3371 'function': 'extendOptions()', 3372 'message': 'options.group must be a boolean|string|object as of 2.5.0' 3373 }); 3374 3375 _debug.print(); 3376 } 3377 } 3378 // {/debug} 3379 } 3380 3381 if (this.options.highlight && !~["any", true].indexOf(this.options.highlight)) { 3382 this.options.highlight = false; 3383 } 3384 3385 if (this.options.dropdownFilter && this.options.dropdownFilter instanceof Object) { 3386 if (!Array.isArray(this.options.dropdownFilter)) { 3387 this.options.dropdownFilter = [this.options.dropdownFilter]; 3388 } 3389 for (var i = 0, ii = this.options.dropdownFilter.length; i < ii; ++i) { 3390 this.dropdownFilter[this.options.dropdownFilter[i].value ? 'static' : 'dynamic'].push(this.options.dropdownFilter[i]); 3391 } 3392 } 3393 3394 if (this.options.dynamicFilter && !Array.isArray(this.options.dynamicFilter)) { 3395 this.options.dynamicFilter = [this.options.dynamicFilter] 3396 } 3397 3398 if (this.options.accent) { 3399 if (typeof this.options.accent === "object") { 3400 if (this.options.accent.from && this.options.accent.to && this.options.accent.from.length === this.options.accent.to.length) { 3401 3402 } 3403 // {debug} 3404 else { 3405 if (this.options.debug) { 3406 _debug.log({ 3407 'node': this.node.selector, 3408 'function': 'extendOptions()', 3409 'message': 'Invalid "options.accent", from and to must be defined and same length.' 3410 }); 3411 3412 _debug.print(); 3413 } 3414 } 3415 // {/debug} 3416 } else { 3417 this.options.accent = _accent; 3418 } 3419 } 3420 3421 if (this.options.groupTemplate) { 3422 this.groupTemplate = this.options.groupTemplate; 3423 } 3424 3425 if (this.options.resultContainer) { 3426 if (typeof this.options.resultContainer === "string") { 3427 this.options.resultContainer = $(this.options.resultContainer); 3428 } 3429 3430 if (!(this.options.resultContainer instanceof $) || !this.options.resultContainer[0]) { 3431 // {debug} 3432 if (this.options.debug) { 3433 _debug.log({ 3434 'node': this.node.selector, 3435 'function': 'extendOptions()', 3436 'message': 'Invalid jQuery selector or jQuery Object for "options.resultContainer".' 3437 }); 3438 3439 _debug.print(); 3440 } 3441 // {/debug} 3442 } else { 3443 this.resultContainer = this.options.resultContainer; 3444 } 3445 } 3446 3447 if (this.options.maxItemPerGroup && this.options.group && this.options.group.key) { 3448 this.groupBy = this.options.group.key; 3449 } 3450 3451 // Compatibility onClick callback 3452 if (this.options.callback && this.options.callback.onClick) { 3453 this.options.callback.onClickBefore = this.options.callback.onClick; 3454 delete this.options.callback.onClick; 3455 } 3456 3457 // Compatibility onNavigate callback 3458 if (this.options.callback && this.options.callback.onNavigate) { 3459 this.options.callback.onNavigateBefore = this.options.callback.onNavigate; 3460 delete this.options.callback.onNavigate; 3461 } 3462 3463 this.options = $.extend( 3464 true, 3465 {}, 3466 _options, 3467 this.options 3468 ); 3469 3470 }, 3471 3472 unifySourceFormat: function () { 3473 3474 this.groupCount = 0; 3475 3476 // source: ['item1', 'item2', 'item3'] 3477 if (Array.isArray(this.options.source)) { 3478 this.options.source = { 3479 group: { 3480 data: this.options.source 3481 } 3482 }; 3483 3484 this.groupCount = 1; 3485 return true; 3486 } 3487 3488 // source: "http://www.test.com/url.json" 3489 if (typeof this.options.source === "string") { 3490 this.options.source = { 3491 group: { 3492 ajax: { 3493 url: this.options.source 3494 } 3495 } 3496 }; 3497 } 3498 3499 if (this.options.source.ajax) { 3500 this.options.source = { 3501 group: { 3502 ajax: this.options.source.ajax 3503 } 3504 }; 3505 } 3506 3507 3508 // source: {data: ['item1', 'item2'], url: "http://www.test.com/url.json"} 3509 if (this.options.source.url || this.options.source.data) { 3510 this.options.source = { 3511 group: this.options.source 3512 }; 3513 } 3514 3515 var group, 3516 groupSource, 3517 tmpAjax; 3518 3519 for (group in this.options.source) { 3520 if (!this.options.source.hasOwnProperty(group)) continue; 3521 3522 groupSource = this.options.source[group]; 3523 3524 // source: {group: "http://www.test.com/url.json"} 3525 if (typeof groupSource === "string") { 3526 groupSource = { 3527 ajax: { 3528 url: groupSource 3529 } 3530 }; 3531 } 3532 3533 // source: {group: {url: ["http://www.test.com/url.json", "json.path"]}} 3534 tmpAjax = groupSource.url || groupSource.ajax; 3535 if (Array.isArray(tmpAjax)) { 3536 groupSource.ajax = typeof tmpAjax[0] === "string" ? { 3537 url: tmpAjax[0] 3538 } : tmpAjax[0]; 3539 groupSource.ajax.path = groupSource.ajax.path || tmpAjax[1] || null; 3540 delete groupSource.url; 3541 } else { 3542 // source: {group: {url: {url: "http://www.test.com/url.json", method: "GET"}}} 3543 // source: {group: {url: "http://www.test.com/url.json", dataType: "jsonp"}} 3544 if (typeof groupSource.url === "object") { 3545 groupSource.ajax = groupSource.url; 3546 } else if (typeof groupSource.url === "string") { 3547 groupSource.ajax = { 3548 url: groupSource.url 3549 }; 3550 } 3551 delete groupSource.url; 3552 } 3553 3554 if (!groupSource.data && !groupSource.ajax) { 3555 3556 // {debug} 3557 if (this.options.debug) { 3558 _debug.log({ 3559 'node': this.node.selector, 3560 'function': 'unifySourceFormat()', 3561 'arguments': JSON.stringify(this.options.source), 3562 'message': 'Undefined "options.source.' + group + '.[data|ajax]" is Missing - Typeahead dropped' 3563 }); 3564 3565 _debug.print(); 3566 } 3567 // {/debug} 3568 3569 return false; 3570 } 3571 3572 if (groupSource.display && !Array.isArray(groupSource.display)) { 3573 groupSource.display = [groupSource.display]; 3574 } 3575 3576 this.options.source[group] = groupSource; 3577 3578 this.groupCount++; 3579 3580 } 3581 3582 return true; 3583 }, 3584 3585 init: function () { 3586 3587 this.helper.executeCallback.call(this, this.options.callback.onInit, [this.node]); 3588 3589 this.container = this.node.closest('.' + this.options.selector.container); 3590 3591 // {debug} 3592 if (this.options.debug) { 3593 _debug.log({ 3594 'node': this.node.selector, 3595 'function': 'init()', 3596 //'arguments': JSON.stringify(this.options), 3597 'message': 'OK - Typeahead activated on ' + this.node.selector 3598 }); 3599 3600 _debug.print(); 3601 } 3602 // {/debug} 3603 3604 }, 3605 3606 delegateEvents: function () { 3607 3608 var scope = this, 3609 events = [
3610 'focus' + this.namespace, 3611 'input' + this.namespace, 3612 'propertychange' + this.namespace, // IE8 Fix 3613 'keydown' + this.namespace, 3614 'keyup' + this.namespace, // IE9 Fix 3615 'dynamic' + this.namespace, 3616 'generate' + this.namespace 3617 ]; 3618 3619 //#149 - Adding support for Mobiles 3620 $('html').on("touchmove", function () { 3621 scope.hasDragged = true; 3622 }).on("touchstart", function () { 3623 scope.hasDragged = false; 3624 }); 3625 3626 this.node.closest('form').on("submit", function (e) { 3627 if (scope.options.mustSelectItem && scope.helper.isEmpty(scope.item)) { 3628 e.preventDefault(); 3629 return; 3630 } 3631 3632 if (!scope.options.backdropOnFocus) { 3633 scope.hideLayout(); 3634 } 3635 3636 if (scope.options.callback.onSubmit) { 3637 return scope.helper.executeCallback.call(scope, scope.options.callback.onSubmit, [scope.node, this, scope.item, e]); 3638 } 3639 }); 3640 3641 // IE8 fix 3642 var preventNextEvent = false; 3643 3644 this.node.off(this.namespace).on(events.join(' '), function (e) { 3645 3646 switch (e.type) { 3647 case "generate": 3648 scope.isGenerated = null; 3649 scope.generateSource(); 3650 break; 3651 case "focus": 3652 scope.rawQuery = ''; // Unmodified input query 3653 scope.query = ''; 3654 scope.isGenerated = null; 3655 if (scope.focusOnly) { 3656 scope.focusOnly = false; 3657 break; 3658 } 3659 if (scope.options.backdropOnFocus) { 3660 scope.buildBackdropLayout(); 3661 scope.showLayout(); 3662 } 3663 if (scope.options.searchOnFocus && scope.query.length >= scope.options.minLength) { 3664 if (scope.isGenerated) { 3665 scope.showLayout(); 3666 } else if (scope.isGenerated === null) { 3667 scope.generateSource(); 3668 } 3669 } 3670 case "keydown": 3671 if (e.keyCode && ~[9, 13, 27, 38, 39, 40].indexOf(e.keyCode)) { 3672 preventNextEvent = true; 3673 scope.navigate(e); 3674 } 3675 break; 3676 case "keyup": 3677 if (scope.isGenerated === null && !scope.options.dynamic) { 3678 scope.generateSource(); 3679 } 3680 if (_isIE9 && scope.node[0].value.replace(/^\s+/, '').toString().length < scope.query.length) { 3681 scope.node.trigger('input' + scope.namespace); 3682 } 3683 break; 3684 case "propertychange": 3685 if (preventNextEvent) { 3686 preventNextEvent = false; 3687 break; 3688 } 3689 case "input": 3690 3691 scope.rawQuery = scope.node[0].value.toString(); 3692 scope.query = scope.rawQuery.replace(/^\s+/, ''); 3693 3694 scope.options.cancelButton && scope.toggleCancelButton(); 3695 3696 if (scope.options.hint && scope.hint.container && scope.hint.container.val() !== '') { 3697 if (scope.hint.container.val().indexOf(scope.rawQuery) !== 0) { 3698 scope.hint.container.val('') 3699 } 3700 } 3701 if (scope.options.dynamic) { 3702 scope.isGenerated = null; 3703 scope.helper.typeWatch(function () { 3704 if (scope.query.length >= scope.options.minLength) { 3705 scope.generateSource(); 3706 } else { 3707 scope.hideLayout(); 3708 } 3709 }, scope.options.delay); 3710 return; 3711 } 3712 case "dynamic": 3713 if (!scope.isGenerated) { 3714 break; 3715 } 3716 3717 scope.searchResult(); 3718 scope.buildLayout(); 3719 3720 if ((scope.result.length > 0 || scope.options.emptyTemplate) && 3721 scope.query.length >= scope.options.minLength 3722 ) { 3723 scope.showLayout(); 3724 } else { 3725 scope.hideLayout(); 3726 } 3727 3728 break; 3729 } 3730 3731 }); 3732 3733 if (this.options.generateOnLoad) { 3734 this.node.trigger('generate' + this.namespace); 3735 } 3736 3737 }, 3738 3739 generateSource: function () { 3740 3741 if (this.isGenerated && !this.options.dynamic) { 3742 return; 3743 } 3744 3745 this.generatedGroupCount = 0; 3746 this.isGenerated = false; 3747 this.options.loadingAnimation && this.container.addClass('loading'); 3748 3749 if (!this.helper.isEmpty(this.xhr)) { 3750 for (var i in this.xhr) { 3751 if (!this.xhr.hasOwnProperty(i)) continue; 3752 this.xhr[i].abort(); 3753 } 3754 this.xhr = {}; 3755 } 3756 3757 var group, 3758 groupSource, 3759 dataInStorage, 3760 isValidStorage; 3761 3762 for (group in this.options.source) { 3763 if (!this.options.source.hasOwnProperty(group)) continue; 3764 3765 groupSource = this.options.source[group]; 3766 3767 // Get group source from Localstorage 3768 if (this.options.cache) { 3769 3770 dataInStorage = window[this.options.cache].getItem('TYPEAHEAD_' + this.node.selector + ":" + group); 3771 3772 if (dataInStorage) { 3773 if (this.options.compression) { 3774 dataInStorage = LZString.decompressFromUTF16(dataInStorage); 3775 } 3776 3777 // In case the storage key:value are not readable anymore 3778 isValidStorage = false; 3779 try { 3780 dataInStorage = JSON.parse(dataInStorage + ""); 3781 3782 if (dataInStorage.data && dataInStorage.ttl > new Date().getTime()) { 3783 3784 this.populateSource(dataInStorage.data, group); 3785 isValidStorage = true; 3786 3787 // {debug} 3788 if (this.options.debug) { 3789 _debug.log({ 3790 'node': this.node.selector, 3791 'function': 'generateSource()', 3792 'message': 'Source for group "' + group + '" found in ' + this.options.cache 3793 }); 3794 _debug.print(); 3795 } 3796 // {/debug} 3797 3798 } else { 3799 window[this.options.cache].removeItem('TYPEAHEAD_' + this.node.selector + ":" + group); 3800 } 3801 } catch (error) { 3802 } 3803 3804 if (isValidStorage) continue; 3805 } 3806 } 3807 3808 // Get group source from data 3809 if (groupSource.data && !groupSource.ajax) { 3810 this.populateSource( 3811 $.extend(true, [], groupSource.data), 3812 group 3813 ); 3814 continue; 3815 } 3816 3817 // Get group source from Ajax / JsonP 3818 if (groupSource.ajax) { 3819 if (!this.requests[group]) { 3820 this.requests[group] = this.generateRequestObject(group); 3821 } 3822 } 3823 } 3824 3825 this.handleRequests(); 3826 3827 }, 3828 3829 generateRequestObject: function (group) { 3830 3831 var scope = this, 3832 groupSource = this.options.source[group]; 3833 3834 var xhrObject = { 3835 request: { 3836 url: groupSource.ajax.url || null, 3837 dataType: 'json', 3838 beforeSend: function (jqXHR, options) { 3839 // Important to call .abort() in case of dynamic requests 3840 scope.xhr[group] = jqXHR; 3841 3842 var beforeSend = scope.requests[group].callback.beforeSend || groupSource.ajax.beforeSend; 3843 typeof beforeSend === "function" && beforeSend.apply(null, arguments); 3844 } 3845 }, 3846 callback: { 3847 beforeSend: null, 3848 done: null, 3849 fail: null, 3850 then: null, 3851 always: null 3852 }, 3853 extra: { 3854 path: groupSource.ajax.path || null, 3855 group: group 3856 }, 3857 validForGroup: [group] 3858 }; 3859 3860 if (typeof groupSource.ajax !== "function") { 3861 if (groupSource.ajax instanceof Object) { 3862 xhrObject = this.extendXhrObject(xhrObject, groupSource.ajax); 3863 } 3864 3865 if (Object.keys(this.options.source).length > 1) { 3866 for (var _group in this.requests) { 3867 if (!this.requests.hasOwnProperty(_group)) continue; 3868 if (this.requests[_group].isDuplicated) continue; 3869 3870 if (xhrObject.request.url && xhrObject.request.url === this.requests[_group].request.url) { 3871 this.requests[_group].validForGroup.push(group); 3872 xhrObject.isDuplicated = true; 3873 delete xhrObject.validForGroup; 3874 } 3875 } 3876 } 3877 } 3878 3879 return xhrObject; 3880 3881 }, 3882 3883 extendXhrObject: function (xhrObject, groupRequest) { 3884 3885 if (typeof groupRequest.callback === "object") { 3886 xhrObject.callback = groupRequest.callback; 3887 delete groupRequest.callback; 3888 } 3889 3890 // #132 Fixed beforeSend when using a function as the request object 3891 if (typeof groupRequest.beforeSend === "function") { 3892 xhrObject.callback.beforeSend = groupRequest.beforeSend; 3893 delete groupRequest.beforeSend; 3894 } 3895 3896 // Fixes #105 Allow user to define their beforeSend function. 3897 // Fixes #181 IE8 incompatibility 3898 xhrObject.request = $.extend(true, xhrObject.request, groupRequest/*, {beforeSend: xhrObject.request.beforeSend}*/); 3899 3900 // JSONP needs a unique jsonpCallback to run concurrently 3901 if (xhrObject.request.dataType.toLowerCase() === 'jsonp' && !xhrObject.request.jsonpCallback) { 3902 xhrObject.request.jsonpCallback = 'callback_' + xhrObject.extra.group; 3903 } 3904 3905 return xhrObject; 3906 3907 }, 3908 3909 handleRequests: function () { 3910 3911 var scope = this, 3912 requestsCount = Object.keys(this.requests).length; 3913 3914 if (this.helper.executeCallback.call(this, this.options.callback.onSendRequest, [this.node, this.query]) === false) { 3915 this.isGenerated = null; 3916 return; 3917 } 3918 3919 3920 for (var group in this.requests) { 3921 if (!this.requests.hasOwnProperty(group)) continue; 3922 if (this.requests[group].isDuplicated) continue; 3923 3924 (function (group, xhrObject) { 3925 3926 if (typeof scope.options.source[group].ajax === "function") { 3927 3928 var _groupRequest = scope.options.source[group].ajax.call(scope, scope.query); 3929 xhrObject = scope.extendXhrObject(xhrObject, _groupRequest); 3930 3931 if (typeof xhrObject.request !== "object" || !xhrObject.request.url) { 3932 // {debug} 3933 if (scope.options.debug) { 3934 _debug.log({ 3935 'node': scope.node.selector, 3936 'function': 'handleRequests', 3937 'message': 'Source function must return an object c
3937ontaining ".url" key for group "' + group + '"' 3938 }); 3939 _debug.print(); 3940 } 3941 // {/debug} 3942 return; 3943 } 3944 } 3945 3946 var _request, 3947 _isExtended = false; // Prevent the main request from being changed 3948 3949 if (~xhrObject.request.url.indexOf('{{query}}')) { 3950 if (!_isExtended) { 3951 xhrObject = $.extend(true, {}, xhrObject); 3952 _isExtended = true; 3953 } 3954 xhrObject.request.url = xhrObject.request.url.replace('{{query}}', scope.query); 3955 } 3956 3957 if (xhrObject.request.data) { 3958 for (var i in xhrObject.request.data) { 3959 if (!xhrObject.request.data.hasOwnProperty(i)) continue; 3960 if (~String(xhrObject.request.data[i]).indexOf('{{query}}')) { 3961 if (!_isExtended) { 3962 xhrObject = $.extend(true, {}, xhrObject); 3963 _isExtended = true; 3964 } 3965 xhrObject.request.data[i] = xhrObject.request.data[i].replace('{{query}}', scope.query); 3966 break; 3967 } 3968 } 3969 } 3970 3971 $.ajax(xhrObject.request).done(function (data, textStatus, jqXHR) { 3972 3973 var tmpData; 3974 for (var i = 0, ii = xhrObject.validForGroup.length; i < ii; i++) { 3975 3976 _request = scope.requests[xhrObject.validForGroup[i]]; 3977 3978 if (_request.callback.done instanceof Function) { 3979 3980 tmpData = _request.callback.done(data, textStatus, jqXHR); 3981 data = Array.isArray(tmpData) && tmpData || data; 3982 3983 // {debug} 3984 if (!Array.isArray(tmpData)) { 3985 if (scope.options.debug) { 3986 _debug.log({ 3987 'node': scope.node.selector, 3988 'function': 'Ajax.callback.done()', 3989 'message': 'Invalid returned data has to be an Array' 3990 }); 3991 _debug.print(); 3992 } 3993 } 3994 // {/debug} 3995 } 3996 3997 scope.populateSource(data, _request.extra.group, _request.extra.path || _request.request.path); 3998 3999 requestsCount -= 1;
4000 if (requestsCount === 0) { 4001 scope.helper.executeCallback.call(scope, scope.options.callback.onReceiveRequest, [scope.node, scope.query]); 4002 } 4003 4004 } 4005 4006 }).fail(function (jqXHR, textStatus, errorThrown) { 4007 4008 for (var i = 0, ii = xhrObject.validForGroup.length; i < ii; i++) { 4009 _request = scope.requests[xhrObject.validForGroup[i]]; 4010 _request.callback.fail instanceof Function && _request.callback.fail(jqXHR, textStatus, errorThrown); 4011 } 4012 4013 // {debug} 4014 if (scope.options.debug) { 4015 _debug.log({ 4016 'node': scope.node.selector, 4017 'function': 'Ajax.callback.fail()', 4018 'arguments': JSON.stringify(xhrObject.request), 4019 'message': textStatus 4020 }); 4021 4022 console.log(errorThrown); 4023 4024 _debug.print(); 4025 } 4026 // {/debug} 4027 4028 }).always(function (data, textStatus, jqXHR) { 4029 4030 for (var i = 0, ii = xhrObject.validForGroup.length; i < ii; i++) { 4031 _request = scope.requests[xhrObject.validForGroup[i]]; 4032 _request.callback.always instanceof Function && _request.callback.always(data, textStatus, jqXHR); 4033 } 4034 4035 }).then(function (jqXHR, textStatus) { 4036 4037 for (var i = 0, ii = xhrObject.validForGroup.length; i < ii; i++) { 4038 _request = scope.requests[xhrObject.validForGroup[i]]; 4039 _request.callback.then instanceof Function && _request.callback.then(jqXHR, textStatus); 4040 } 4041 4042 }); 4043 4044 }(group, this.requests[group])); 4045 4046 } 4047 4048 }, 4049 4050 /** 4051 * Build the source groups to be cycled for matched results 4052 * 4053 * @param {Array} data Array of Strings or Array of Objects 4054 * @param {String} group 4055 * @param {String} [path] 4056 * @return {*} 4057 */ 4058 populateSource: function (data, group, path) { 4059 4060 var scope = this, 4061 groupSource = this.options.source[group], 4062 extraData = groupSource.ajax && groupSource.data; 4063 4064 data = typeof path === "string" ? this.helper.namespace(path, data) : data; 4065 4066 if (typeof data === 'undefined') { 4067 // {debug} 4068 if (this.options.debug) { 4069 _debug.log({ 4070 'node': this.node.selector, 4071 'function': 'populateSource()', 4072 'arguments': path, 4073 'message': 'Invalid data path.' 4074 }); 4075 4076 _debug.print(); 4077 } 4078 // {/debug} 4079 } 4080 4081 if (!Array.isArray(data)) { 4082 // {debug} 4083 if (this.options.debug) { 4084 _debug.log({ 4085 'node': this.node.selector, 4086 'function': 'populateSource()', 4087 'arguments': JSON.stringify({group: group}), 4088 'message': 'Invalid data type, must be Array type.' 4089 }); 4090 _debug.print(); 4091 } 4092 // {/debug} 4093 data = []; 4094 } 4095 4096 if (extraData) { 4097 if (typeof extraData === "function") { 4098 extraData = extraData(); 4099 } 4100 4101 if (Array.isArray(extraData)) { 4102 data = data.concat(extraData); 4103 } 4104 // {debug} 4105 else { 4106 if (this.options.debug) { 4107 _debug.log({ 4108 'node': this.node.selector, 4109 'function': 'populateSource()', 4110 'arguments': JSON.stringify(extraData), 4111 'message': 'WARNING - this.options.source.' + group + '.data Must be an Array or a function that returns an Array.' 4112 }); 4113 4114 _debug.print(); 4115 } 4116 } 4117 // {/debug} 4118 } 4119 4120 var tmpObj, 4121 display = groupSource.display ? 4122 (groupSource.display[0] === 'compiled' ? groupSource.display[1] : groupSource.display[0]) : 4123 (this.options.display[0] === 'compiled' ? this.options.display[1] : this.options.display[0]); 4124 4125 for (var i = 0, ii = data.length; i < ii; i++) { 4126 if (typeof data[i] === "string") { 4127 tmpObj = {}; 4128 tmpObj[display] = data[i]; 4129 data[i] = tmpObj; 4130 } 4131 data[i].group = group; 4132 } 4133 4134 if (!this.options.dynamic && this.dropdownFilter.dynamic.length) { 4135 4136 var key, 4137 value, 4138 tmpValues = {}; 4139 4140 for (var i = 0, ii = data.length; i < ii; i++) { 4141 for (var k = 0, kk = this.dropdownFilter.dynamic.length; k < kk; k++) { 4142 key = this.dropdownFilter.dynamic[k].key; 4143 4144 value = data[i][key]; 4145 if (!value) continue; 4146 if (!this.dropdownFilter.dynamic[k].value) { 4147 this.dropdownFilter.dynamic[k].value = []; 4148 } 4149 if (!tmpValues[key]) { 4150 tmpValues[key] = []; 4151 } 4152 if (!~tmpValues[key].indexOf(value.toLowerCase())) { 4153 tmpValues[key].push(value.toLowerCase()); 4154 this.dropdownFilter.dynamic[k].value.push(value); 4155 } 4156 } 4157 } 4158 } 4159 4160 if (this.options.correlativeTemplate) { 4161 4162 var template = groupSource.template || this.options.template, 4163 compiledTemplate = ""; 4164 4165 if (typeof template === "function") { 4166 template = template(); 4167 } 4168 4169 if (!template) { 4170 // {debug} 4171 if (this.options.debug) { 4172 _debug.log({ 4173 'node': this.node.selector, 4174 'function': 'populateSource()', 4175 'arguments': JSON.stringify(group), 4176 'message': 'WARNING - this.options.correlativeTemplate is enabled but no template was found.' 4177 }); 4178 4179 _debug.print(); 4180 } 4181 // {/debug} 4182 } else { 4183 4184 // #109 correlativeTemplate can be an array of display keys instead of the complete template 4185 if (Array.isArray(this.options.correlativeTemplate)) { 4186 for (var i = 0, ii = this.options.correlativeTemplate.length; i < ii; i++) { 4187 compiledTemplate += "{{" + this.options.correlativeTemplate[i] + "}} " 4188 } 4189 } else { 4190 compiledTemplate = template 4191 .replace(/<.+?>/g, ''); 4192 } 4193 4194 for (var i = 0, ii = data.length; i < ii; i++) { 4195 data[i]['compiled'] = compiledTemplate.replace(/\{\{([\w\-\.]+)(?:\|(\w+))?}}/g, function (match, index) { 4196 return scope.helper.namespace(index, data[i], 'get', ''); 4197 } 4198 ).trim(); 4199 } 4200 4201 if (groupSource.display) { 4202 if (!~groupSource.display.indexOf('compiled')) { 4203 groupSource.display.unshift('compiled'); 4204 } 4205 } else if (!~this.options.display.indexOf('compiled')) { 4206 this.options.display.unshift('compiled'); 4207 } 4208 4209 } 4210 } 4211 4212 if (this.options.callback.onPopulateSource) { 4213 data = this.helper.executeCallback.call(this, this.options.callback.onPopulateSource, [this.node, data, group, path]); 4214 4215 // {debug} 4216 if (!data || !Array.isArray(data)) { 4217 _debug.log({ 4218 'node': this.node.selector, 4219 'function': 'callback.populateSource()', 4220 'message': 'callback.onPopulateSource must return the "data" parameter' 4221 }); 4222 4223 _debug.print(); 4224 } 4225 // {/debug} 4226 } 4227 4228 // Save the data inside a tmpSource var to later have the right order once every request are completed 4229 this.tmpSource[group] = data; 4230 4231 if (this.options.cache && !window[this.options.cache].getItem('TYPEAHEAD_' + this.node.selector + ":" + group)) { 4232 4233 if (this.options.callback.onCacheSave) { 4234 data = this.helper.executeCallback.call(this, this.options.callback.onCacheSave, [this.node, data, group, path]); 4235 4236 // {debug} 4237 if (!data || !Array.isArray(data)) { 4238 _debug.log({ 4239 'node': this.node.selector, 4240 'function': 'callback.populateSource()', 4241 'message': 'callback.onCacheSave must return the "data" parameter' 4242 }); 4243 4244 _debug.print(); 4245 } 4246 // {/debug} 4247 } 4248 4249 var storage = JSON.stringify({ 4250 data: data, 4251 ttl: new Date().getTime() + this.options.ttl 4252 }); 4253 4254 if (this.options.compression) { 4255 storage = LZString.compressToUTF16(storage); 4256 } 4257 4258 window[this.options.cache].setItem( 4259 'TYPEAHEAD_' + this.node.selector + ":" + group, 4260 storage 4261 ); 4262 } 4263 4264 this.incrementGeneratedGroup(); 4265 4266 }, 4267 4268 incrementGeneratedGroup: function () { 4269 4270 this.generatedGroupCount++; 4271 4272 if (this.groupCount !== this.generatedGroupCount) { 4273 return; 4274 } 4275 4276 this.isGenerated = true; 4277 4278 this.xhr = {}; 4279 4280 var sourceKeys = Object.keys(this.options.source); 4281 4282 for (var i = 0, ii = sourceKeys.length; i < ii; i++) { 4283 this.source[sourceKeys[i]] = this.tmpSource[sourceKeys[i]]; 4284 } 4285 4286 this.tmpSource = {}; 4287 4288 if (!this.options.dynamic) { 4289 this.buildDropdownItemLayout('dynamic'); 4290 } 4291 4292 this.options.loadingAnimation && this.container.removeClass('loading'); 4293 4294 this.node.trigger('dynamic' + this.namespace); 4295 4296 }, 4297 4298 /** 4299 * Key Navigation 4300 * tab 9: @TODO, what should tab do? 4301 * Up 38: select previous item, skip "group" item 4302 * Down 40: select next item, skip "group" item 4303 * Right 39: change charAt, if last char fill hint (if options is true) 4304 * Esc 27: clears input (is not empty) / blur (if empty) 4305 * Enter 13: Select item + submit search 4306 * 4307 * @param {Object} e Event object 4308 * @returns {*} 4309 */ 4310 navigate: function (e) { 4311 4312 this.helper.executeCallback.call(this, this.options.callback.onNavigateBefore, [this.node, this.query, e]); 4313 4314 if (e.keyCode === 27) { 4315 // #166 Different browsers do not have the same behaviors by default, lets enforce what we want instead 4316 e.preventDefault(); 4317 if (this.query.length) { 4318 this.node.val('') 4319 this.node.trigger('input' + this.namespace); 4320 } else { 4321 this.node.blur(); 4322 this.hideLayout(); 4323 } 4324 return; 4325 } 4326 4327 if (!this.isGenerated || !this.result.length) return; 4328 4329 var itemList = this.resultContainer.find('.' + this.options.selector.item), 4330 activeItem = itemList.filter('.active'), 4331 activeItemIndex = activeItem[0] && itemList.index(activeItem) || null, 4332 newActiveItemIndex = null; 4333 4334 if (e.keyCode === 13) { 4335 if (activeItem.length > 0) { 4336 // Prevent form submit if an element is selected 4337 e.preventDefault(); 4338 activeItem.find('a:first')[0].click(); 4339 } 4340 return; 4341 } 4342 4343 if (e.keyCode === 39) { 4344 if (activeItemIndex) { 4345 itemList.eq(activeItemIndex).find('a:first')[0].click(); 4346 } else if (this.options.hint && 4347 this.hint.container.val() !== "" && 4348 this.helper.getCaret(this.node[0]) >= this.query.length) { 4349 4350 itemList.find('a[data-index="' + this.hintIndex + '"]')[0].click(); 4351 4352 } 4353 return; 4354 } 4355 4356 if (itemList.length > 0) { 4357 activeItem.removeClass('active'); 4358 } 4359 4360 if (e.keyCode === 38) { 4361 4362 e.preventDefault(); 4363 4364 if (activeItem.length > 0) { 4365 if (activeItemIndex - 1 >= 0) { 4366 newActiveItemIndex = activeItemIndex - 1; 4367 itemList.eq(newActiveItemIndex).addClass('active'); 4368 } 4369 } else { 4370 newActiveItemIndex = itemList.length - 1; 4371 itemList.last().addClass('active'); 4372 } 4373 4374 } else if (e.keyCode === 40) { 4375 4376 e.preventDefault(); 4377 4378 if (activeItem.length > 0) { 4379 if (activeItemIndex + 1 < itemList.length) { 4380 newActiveItemIndex = activeItemIndex + 1; 4381 itemList.eq(newActiveItemIndex).addClass('active'); 4382 } 4383 } else { 4384 newActiveItemIndex = 0; 4385 itemList.first().addClass('active'); 4386 } 4387 } 4388 4389 // #115 Prevent the input from changing when navigating (arrow up / down) the results 4390 if (e.preventInputChange && ~[38, 40].indexOf(e.keyCode)) { 4391 this.buildHintLayout( 4392 newActiveItemIndex !== null && newActiveItemIndex < this.result.length ? 4393 [this.result[newActiveItemIndex]] : 4394 null 4395 ) 4396 } 4397 4398 if (this.options.hint && this.hint.container) { 4399 this.hint.container.css( 4400 'color', 4401 e.preventInputChange ? 4402 this.hint.css.color : 4403 newActiveItemIndex === null && this.hint.css.color || this.hint.container.css('background-color') || 'fff' 4404 ) 4405 } 4406 4407 this.node.val( 4408 newActiveItemIndex !== null && !e.preventInputChange ? 4409 this.result[newActiveItemIndex][this.result[newActiveItemIndex].matchedKey] : 4410 this.rawQuery 4411 ); 4412 4413 this.helper.executeCallback.call(this, this.options.callback.onNavigateAfter, [ 4414
4414 this.node, 4415 itemList, 4416 newActiveItemIndex !== null && itemList.eq(newActiveItemIndex).find('a:first') || undefined, 4417 newActiveItemIndex !== null && this.result[newActiveItemIndex] || undefined, 4418 this.query, 4419 e 4420 ]); 4421 4422 }, 4423 4424 searchResult: function (preserveItem) { 4425 4426 // #54 In case the item is being clicked, we want to preserve it for onSubmit callback 4427 if (!preserveItem) { 4428 this.item = {}; 4429 } 4430 4431 this.resetLayout(); 4432 4433 if (this.helper.executeCallback.call(this, this.options.callback.onSearch, [this.node, this.query]) === false) return; 4434 4435 if (this.query.length >= this.options.minLength) { 4436 this.searchResultData(); 4437 } 4438 4439 this.helper.executeCallback.call(this, this.options.callback.onResult, [this.node, this.query, this.result, this.resultCount, this.resultCountPerGroup]); 4440 4441 }, 4442 4443 searchResultData: function () { 4444 4445 var scope = this, 4446 group, 4447 groupBy = this.groupBy, 4448 groupReference = null, 4449 item, 4450 match, 4451 comparedDisplay, 4452 comparedQuery = this.query.toLowerCase(), 4453 maxItemPerGroup = this.options.maxItemPerGroup, 4454 hasDynamicFilters = this.filters.dynamic && !this.helper.isEmpty(this.filters.dynamic), 4455 displayKeys, 4456 displayValue, 4457 missingDisplayKey = {}, 4458 groupFilter, 4459 groupFilterResult, 4460 groupMatcher, 4461 groupMatcherResult, 4462 matcher = typeof this.options.matcher === "function" && this.options.matcher, 4463 correlativeMatch, 4464 correlativeQuery, 4465 correlativeDisplay; 4466 4467 if (this.options.accent) { 4468 comparedQuery = this.helper.removeAccent.call(this, comparedQuery); 4469 } 4470 for (group in this.source) { 4471 if (!this.source.hasOwnProperty(group)) continue; 4472 // dropdownFilter by source groups 4473 if (this.filters.dropdown && this.filters.dropdown.key === "group" && this.filters.dropdown.value !== group) continue; 4474 4475 groupFilter = typeof this.options.source[group].filter !== "undefined" ? this.options.source[group].filter : this.options.filter; 4476 groupMatcher = typeof this.options.source[group].matcher === "function" && this.options.source[group].matcher || matcher; 4477 4478 for (var k = 0, kk = this.source[group].length; k < kk; k++) { 4479 if (this.result.length >= this.options.maxItem && !this.options.callback.onResult) break; 4480 if (hasDynamicFilters && !this.dynamicFilter.validate.apply(this, [this.source[group][k]])) continue; 4481 4482 item = this.source[group][k]; 4483 4484 // dropdownFilter by custom groups 4485 if (this.filters.dropdown && (item[this.filters.dropdown.key] || "").toLowerCase() !== (this.filters.dropdown.value || "").toLowerCase()) continue; 4486 4487 groupReference = groupBy === "group" ? group : item[groupBy]; 4488 4489 if (groupReference && !this.result[groupReference]) { 4490 this.result[groupReference] = []; 4491 this.resultCountPerGroup[groupReference] = 0; 4492 } 4493 4494 if (maxItemPerGroup) { 4495 if (groupBy === "group" && this.result[groupReference].length >= maxItemPerGroup && !this.options.callback.onResult) { 4496 break; 4497 } 4498 } 4499 4500 displayKeys = this.options.source[group].display || this.options.display; 4501 4502 for (var i = 0, ii = displayKeys.length; i < ii; i++) { 4503 4504 // #183 Allow searching for deep source object keys 4505 displayValue = /\./.test(displayKeys[i]) ? 4506 this.helper.namespace(displayKeys[i], item) :
4507 item[displayKeys[i]]; 4508 4509 // #182 Continue looping if empty or undefined key 4510 if (typeof displayValue === 'undefined' || displayValue === '') { 4511 // {debug} 4512 if (this.options.debug) { 4513 missingDisplayKey[i] = { 4514 display: displayKeys[i], 4515 data: item 4516 }; 4517 } 4518 // {/debug} 4519 continue; 4520 } 4521 4522 displayValue = this.helper.cleanStringFromScript(displayValue); 4523 4524 if (typeof groupFilter === "function") { 4525 groupFilterResult = groupFilter.call(this, item, displayValue); 4526 4527 // return undefined to skip to next item 4528 // return false to attempt the matching function on the next displayKey 4529 // return true to add the item to the result list 4530 // return item object to modify the item and add it to the result list 4531 4532 if (groupFilterResult === undefined) break; 4533 if (!groupFilterResult) continue; 4534 if (typeof groupFilterResult === "object") { 4535 item = groupFilterResult; 4536 } 4537 } 4538 4539 if (~[undefined, true].indexOf(groupFilter)) { 4540 //comparedDisplay = displayValue; 4541 comparedDisplay = (displayValue ? displayValue : ""); 4542 comparedDisplay = comparedDisplay.toString().toLowerCase(); 4543 4544 if (this.options.accent) { 4545 comparedDisplay = this.helper.removeAccent.call(this, comparedDisplay); 4546 } 4547 4548 match = comparedDisplay.indexOf(comparedQuery); 4549 4550 if (this.options.correlativeTemplate && displayKeys[i] === 'compiled' && match < 0 && /\s/.test(comparedQuery)) { 4551 correlativeMatch = true; 4552 correlativeQuery = comparedQuery.split(' '); 4553 correlativeDisplay = comparedDisplay; 4554 for (var x = 0, xx = correlativeQuery.length; x < xx; x++) { 4555 if (correlativeQuery[x] === "") continue; 4556 if (!~correlativeDisplay.indexOf(correlativeQuery[x])) { 4557 correlativeMatch = false; 4558 break; 4559 } 4560 correlativeDisplay = correlativeDisplay.replace(correlativeQuery[x], ''); 4561 } 4562 } 4563 4564 if (match < 0 && !correlativeMatch) continue; 4565 // @TODO Deprecate these? use matcher instead? 4566 if (this.options.offset && match !== 0) continue; 4567 4568 if (groupMatcher) { 4569 groupMatcherResult = groupMatcher.call(this, item, displayValue); 4570 4571 // return undefined to skip to next item 4572 // return false to attempt the matching function on the next displayKey 4573 // return true to add the item to the result list 4574 // return item object to modify the item and add it to the result list 4575 4576 if (groupMatcherResult === undefined) break; 4577 if (!groupMatcherResult) continue; 4578 if (typeof groupMatcherResult === "object") { 4579 item = groupMatcherResult; 4580 } 4581 } 4582 } 4583 4584 this.resultCount++; 4585 this.resultCountPerGroup[groupReference]++; 4586 4587 if (this.resultItemCount < this.options.maxItem) { 4588 if (maxItemPerGroup && this.result[groupReference].length >= maxItemPerGroup) { 4589 break; 4590 } 4591 4592 item.matchedKey = displayKeys[i]; 4593 4594 this.result[groupReference].push(item); 4595 this.resultItemCount++; 4596 } 4597 break; 4598 } 4599 4600 if (!this.options.callback.onResult) { 4601 if (this.resultItemCount >= this.options.maxItem) { 4602 break; 4603 } 4604 if (maxItemPerGroup && this.result[groupReference].length >= maxItemPerGroup) { 4605 if (groupBy === "group") { 4606 break; 4607 } 4608 } 4609 } 4610 } 4611 } 4612 4613 // {debug} 4614 if (this.options.debug) { 4615 if (!this.helper.isEmpty(missingDisplayKey)) { 4616 _debug.log({ 4617 'node': this.node.selector, 4618 'function': 'searchResult()', 4619 'arguments': JSON.stringify(missingDisplayKey), 4620 'message': 'Missing keys for display, make sure options.display is set properly.' 4621 }); 4622 4623 _debug.print(); 4624 } 4625 } 4626 // {/debug} 4627 4628 if (this.options.order) { 4629 4630 var displayKeys = [], 4631 displayKey; 4632 4633 for (var group in this.result) { 4634 if (!this.result.hasOwnProperty(group)) continue; 4635 for (var i = 0, ii = this.result[group].length; i < ii; i++) { 4636 displayKey = this.options.source[this.result[group][i].group].display || this.options.display; 4637 if (!~displayKeys.indexOf(displayKey[0])) { 4638 displayKeys.push(displayKey[0]); 4639 } 4640 } 4641 this.result[group].sort( 4642 scope.helper.sort( 4643 displayKeys, 4644 scope.options.order === "asc", 4645 function (a) { 4646 //return a.toString().toUpperCase(); 4647 return (a ? a : "").toString().toUpperCase(); 4648 } 4649 ) 4650 ); 4651 } 4652 4653 } 4654 4655 var concatResults = [], 4656 groupOrder; 4657 4658 if (typeof this.options.groupOrder === "function") { 4659 groupOrder = this.options.groupOrder.apply(this, [this.node, this.query, this.result, this.resultCount, this.resultCountPerGroup]); 4660 } else if (Array.isArray(this.options.groupOrder)) { 4661 groupOrder = this.options.groupOrder; 4662 } else if (typeof this.options.groupOrder === "string" && ~["asc", "desc"].indexOf(this.options.groupOrder)) { 4663 groupOrder = Object.keys(this.result).sort( 4664 scope.helper.sort( 4665 [], 4666 scope.options.groupOrder === "asc", 4667 function (a) { 4668 return a.toString().toUpperCase() 4669 } 4670 ) 4671 ); 4672 } else { 4673 groupOrder = Object.keys(this.result); 4674 } 4675 4676 this.groups = groupOrder; 4677 4678 for (var i = 0, ii = groupOrder.length; i < ii; i++) { 4679 concatResults = concatResults.concat(this.result[groupOrder[i]] || []); 4680 } 4681 4682 this.result = concatResults; 4683 4684 }, 4685 4686 buildLayout: function () { 4687 4688 this.buildHtmlLayout(); 4689 4690 this.buildBackdropLayout(); 4691 4692 this.buildHintLayout(); 4693 4694 if (this.options.callback.onLayoutBuiltBefore) { 4695 var tmpResultHtml = this.helper.executeCallback.call(this, this.options.callback.onLayoutBuiltBefore, [this.node, this.query, this.result, this.resultHtml]); 4696 4697 if (tmpResultHtml instanceof $) { 4698 this.resultHtml = tmpResultHtml; 4699 } 4700 // {debug} 4701 else { 4702 if (this.options.debug) { 4703 _debug.log({ 4704 'node': this.node.selector, 4705 'function': 'callback.onLayoutBuiltBefore()', 4706 'message': 'Invalid returned value - You must return resultHtmlList jQuery Object' 4707 }); 4708 4709 _debug.print(); 4710 } 4711 } 4712 // {/debug} 4713 } 4714 4715 this.resultHtml && this.resultContainer.html(this.resultHtml); 4716 4717 if (this.options.callback.onLayoutBuiltAfter) { 4718 this.helper.executeCallback.call(this, this.options.callback.onLayoutBuiltAfter, [this.node, this.query, this.result]); 4719 } 4720 }, 4721 4722 buildHtmlLayout: function () { 4723 // #150 Add the option to have no resultList but still perform the search and trigger the callbacks 4724 if (this.options.resultContainer === false) return; 4725 4726 if (!this.resultContainer) { 4727 this.resultContainer = $("<div/>", { 4728 "class": this.options.selector.result 4729 }); 4730 4731 this.container.append(this.resultContainer); 4732 } 4733 4734 var emptyTemplate; 4735 if (!this.result.length) { 4736 if (this.options.emptyTemplate) { 4737 emptyTemplate = typeof this.options.emptyTemplate === "function" ? 4738 this.options.emptyTemplate.call(this, this.query) : 4739 this.options.emptyTemplate.replace(/\{\{query}}/gi, this.helper.cleanStringFromScript(this.query)); 4740 4741 } else { 4742 return; 4743 } 4744 } 4745 4746 var _query = this.query.toLowerCase(); 4747 if (this.options.accent) { 4748 _query = this.helper.removeAccent.call(this, _query
4748); 4749 } 4750 4751 var scope = this, 4752 groupTemplate = this.groupTemplate || '<ul></ul>', 4753 hasEmptyTemplate = false; 4754 4755 if (this.groupTemplate) { 4756 groupTemplate = $(groupTemplate.replace(/<([^>]+)>\{\{(.+?)}}<\/[^>]+>/g, function (match, tag, group, offset, string) { 4757 var template = '', 4758 groups = group === "group" ? scope.groups : [group]; 4759 4760 if (!scope.result.length) { 4761 if (hasEmptyTemplate === true) return ''; 4762 hasEmptyTemplate = true; 4763 4764 return '<' + tag + ' class="' + scope.options.selector.empty + '"><a href="javascript:;">' + emptyTemplate + '</a></' + tag + '>'; 4765 } 4766 4767 for (var i = 0, ii = groups.length; i < ii; ++i) { 4768 template += '<' + tag + ' data-group-template="' + groups[i] + '"><ul></ul></' + tag + '>'; 4769 } 4770 4771 return template; 4772 })); 4773 } else { 4774 groupTemplate = $(groupTemplate); 4775 if (!this.result.length) { 4776 groupTemplate.append( 4777 emptyTemplate instanceof $ ? 4778 emptyTemplate : 4779 '<li class="' + scope.options.selector.empty + '"><a href="javascript:;">' + emptyTemplate + '</a></li>' 4780 ); 4781 } 4782 } 4783 4784 groupTemplate.addClass(this.options.selector.list + (this.helper.isEmpty(this.result) ? ' empty' : '')); 4785 4786 var _group, 4787 _groupTemplate, 4788 _item, 4789 _href, 4790 _liHtml, 4791 _template, 4792 _aHtml, 4793 _display, 4794 _displayKeys, 4795 _displayValue, 4796 _unusedGroups = this.groupTemplate && this.result.length && scope.groups || [], 4797 _tmpIndexOf; 4798 4799 for (var i = 0, ii = this.result.length; i < ii; ++i) { 4800 4801 _item = this.result[i]; 4802 _group = _item['group']; 4803 _href = this.options.source[_item.group].href || this.options.href; 4804 _display = []; 4805 _displayKeys = this.options.source[_item.group].display || this.options.display; 4806 4807 if (this.options.group) { 4808 _group = _item[this.options.group.key]; 4809 if (this.options.group.template) { 4810 if (typeof this.options.group.template === "function") { 4811 _groupTemplate = this.options.group.template(_item); 4812 } else if (typeof this.options.template === "string") { 4813 _groupTemplate = this.options.group.template.replace(/\{\{([\w\-\.]+)}}/gi, function (match, index) { 4814 return scope.helper.namespace(index, _item, 'get', ''); 4815 }); 4816 } 4817 } 4818 4819 if (!groupTemplate.find('[data-search-group="' + _group + '"]')[0]) { 4820 (this.groupTemplate ? groupTemplate.find('[data-group-template="' + _group + '"] ul') : groupTemplate).append( 4821 $("<li/>", { 4822 "class": scope.options.selector.group, 4823 "html": $("<a/>", { 4824 "href": "javascript:;", 4825 "html": _groupTemplate || _group, 4826 "tabindex": -1 4827 }), 4828 "data-search-group": _group 4829 }) 4830 ); 4831 } 4832 } 4833 4834 if (this.groupTemplate && _unusedGroups.length) { 4835 _tmpIndexOf = _unusedGroups.indexOf(_group || _item.group) 4836 if (~_tmpIndexOf) { 4837 _unusedGroups.splice(_tmpIndexOf, 1) 4838 } 4839 } 4840 4841 _liHtml = $("<li/>", { 4842 "class": scope.options.selector.item, 4843 "html": $("<a/>", { 4844 // #190 Strange JS-code fragment in href attribute using jQuery version below 1.10 4845 "href": (function () { 4846 if (_href) { 4847 if (typeof _href === "string") { 4848 _href = _href.replace(/\{\{([^\|}]+)(?:\|([^}]+))*}}/gi, function (match, index, options) { 4849 4850 var value = scope.helper.namespace(index, _item, 'get', ''); 4851 4852 // #151 Slugify should be an option, not enforced 4853 options = options && options.split("|") || []; 4854 if (~options.indexOf('slugify')) { 4855 value = scope.helper.slugify.call(scope, value); 4856 } 4857 4858 return value; 4859 }); 4860 } else if (typeof _href === "function") { 4861 _href = _href(_item); 4862 } 4863 _item.href = _href; 4864 } 4865 return _href || "javascript:;"; 4866 }()), 4867 "data-group": _group, 4868 "data-index": i, 4869 "html": function () { 4870 4871 _template = (_item.group && scope.options.source[_item.group].template) || scope.options.template; 4872 4873 if (_template) { 4874 if (typeof _template === "function") { 4875 _template = _template.call(scope, scope.query, _item); 4876 } 4877 4878 _aHtml = _template.replace(/\{\{([^\|}]+)(?:\|([^}]+))*}}/gi, function (match, index, options) { 4879 4880 var value = scope.helper.cleanStringFromScript(String(scope.helper.namespace(index, _item, 'get', ''))); 4881 4882 // #151 Slugify should be an option, not enforced 4883 options = options && options.split("|") || []; 4884 if (~options.indexOf('slugify')) { 4885 value = scope.helper.slugify.call(scope, value); 4886 } 4887 4888 if (!~options.indexOf('raw')) { 4889 if (scope.options.highlight === true && _query && ~_displayKeys.indexOf(index)) { 4890 value = scope.helper.highlight.call(scope, value, _query.split(" "), scope.options.accent) 4891 } 4892 } 4893 return value; 4894 }); 4895 } else { 4896 for (var i = 0, ii = _displayKeys.length; i < ii; i++) { 4897 _displayValue = /\./.test(_dis
4897playKeys[i]) ? 4898 scope.helper.namespace(_displayKeys[i], _item) : 4899 _item[_displayKeys[i]]; 4900 4901 if (typeof _displayValue === 'undefined' || _displayValue === '') continue; 4902 4903 _display.push(_displayValue); 4904 } 4905 4906 _aHtml = '<span class="' + scope.options.selector.display + '">' + scope.helper.cleanStringFromScript(String(_display.join(" "))) + '</span>'; 4907 } 4908 4909 if ((scope.options.highlight === true && _query && !_template) || scope.options.highlight === "any") { 4910 _aHtml = scope.helper.highlight.call(scope, _aHtml, _query.split(" "), scope.options.accent) 4911 } 4912 4913 $(this).append(_aHtml); 4914 4915 } 4916 }) 4917 }); 4918 4919 (function (i, item, liHtml) { 4920 liHtml.on('click', function (e) { 4921 if (scope.options.mustSelectItem && scope.helper.isEmpty(item)) { 4922 e.preventDefault(); 4923 return; 4924 } 4925 4926 scope.item = item; 4927 4928 if (scope.helper.executeCallback.call(scope, scope.options.callback.onClickBefore, [scope.node, $(this), item, e]) === false) return; 4929 if ((e.originalEvent && e.originalEvent.defaultPrevented) || e.isDefaultPrevented()) { 4930 return; 4931 } 4932 4933 scope.query = scope.rawQuery = item[item.matchedKey].toString(); 4934 4935 scope.focusOnly = true; 4936 scope.node.val(scope.query).focus(); 4937 4938 scope.searchResult(true); 4939 scope.buildLayout(); 4940 scope.hideLayout(); 4941 4942 scope.helper.executeCallback.call(scope, scope.options.callback.onClickAfter, [scope.node, $(this), item, e]); 4943 }); 4944 liHtml.on('mouseenter', function (e) { 4945 scope.helper.executeCallback.call(scope, scope.options.callback.onMouseEnter, [scope.node, $(this), item, e]); 4946 }); 4947 liHtml.on('mouseleave', function (e) { 4948 scope.helper.executeCallback.call(scope, scope.options.callback.onMouseLeave, [scope.node, $(this), item, e]); 4949 }); 4950 }(i, _item, _liHtml)); 4951 4952 (this.groupTemplate ? groupTemplate.find('[data-group-template="' + _group + '"] ul') : groupTemplate).append(_liHtml); 4953 } 4954 4955 if (this.result.length && _unusedGroups.length) { 4956 for (var i = 0, ii = _unusedGroups.length; i < ii; ++i) { 4957 groupTemplate.find('[data-group-template="' + _unusedGroups[i] + '"]').remove(); 4958 } 4959 } 4960 4961 this.resultHtml = groupTemplate; 4962 4963 }, 4964 4965 buildBackdropLayout: function () { 4966 4967 if (!this.options.backdrop) return; 4968 4969 if (!this.backdrop.container) { 4970 this.backdrop.css = $.extend( 4971 { 4972 "opacity": 0.6, 4973 "filter": 'alpha(opacity=60)', 4974 "position": 'fixed', 4975 "top": 0, 4976 "right": 0, 4977 "bottom": 0, 4978 "left": 0, 4979 "z-index": 1040, 4980 "background-color": "#000" 4981 }, 4982 this.options.backdrop 4983 ); 4984 4985 this.backdrop.container = $("<div/>", { 4986 "class": this.options.selector.backdrop, 4987 "css": this.backdrop.css 4988 }).insertAfter(this.container); 4989 4990 } 4991 this.container 4992 .addClass('backdrop') 4993 .css({ 4994 "z-index": this.backdrop.css["z-index"] + 1, 4995 "position": "relative" 4996 }); 4997 4998 }, 4999 5000 buildHintLayout: function (result) { 5001 if (!this.options.hint) return; 5002 // #144 hint doesn't overlap with the input when the query is too long 5003 if (this.node[0].scrollWidth > Math.ceil(this.node.innerWidth())) { 5004 this.hint.container && this.hint.container.val(""); 5005 return; 5006 } 5007 5008 var scope = this, 5009 hint = "", 5010 result = result || this.result, 5011 query = this.query.toLowerCase(); 5012 5013 if (this.options.accent) { 5014 query = this.helper.removeAccent.call(this, query); 5015 } 5016 5017 this.hintIndex = null; 5018 5019 if (this.query.length >= this.options.minLength) { 5020 5021 if (!this.hint.container) { 5022 5023 this.hint.css = $.extend({ 5024 "border-color": "transparent", 5025 "position": "absolute",
5026 "top": 0, 5027 "display": "inline", 5028 "z-index": -1, 5029 "float": "none", 5030 "color": "silver", 5031 "box-shadow": "none", 5032 "cursor": "default", 5033 "-webkit-user-select": "none", 5034 "-moz-user-select": "none", 5035 "-ms-user-select": "none", 5036 "user-select": "none" 5037 }, 5038 this.options.hint 5039 ); 5040 5041 this.hint.container = $('<input/>', { 5042 'type': this.node.attr('type'), 5043 'class': this.node.attr('class'), 5044 'readonly': true, 5045 'unselectable': 'on', 5046 'aria-hidden': 'true', 5047 'tabindex': -1, 5048 'click': function () { 5049 // IE8 Fix 5050 scope.node.focus(); 5051 } 5052 }).addClass(this.options.selector.hint) 5053 .css(this.hint.css) 5054 .insertAfter(this.node) 5055 5056 this.node.parent().css({ 5057 "position": "relative" 5058 }); 5059 } 5060 5061 this.hint.container.css('color', this.hint.css.color) 5062 5063 // Do not display hint for empty query 5064 if (query) { 5065 var _displayKeys, 5066 _group, 5067 _comparedValue; 5068 5069 for (var i = 0, ii = result.length; i < ii; i++) { 5070 5071 _group = result[i].group; 5072 _displayKeys = this.options.source[_group].display || this.options.display; 5073 5074 for (var k = 0, kk = _displayKeys.length; k < kk; k++) { 5075 5076 _comparedValue = String(result[i][_displayKeys[k]]).toLowerCase(); 5077 if (this.options.accent) { 5078 _comparedValue = this.helper.removeAccent.call(this, _comparedValue); 5079 } 5080 5081 if (_comparedValue.indexOf(query) === 0) { 5082 hint = String(result[i][_displayKeys[k]]); 5083 this.hintIndex = i; 5084 break; 5085 } 5086 } 5087 if (this.hintIndex !== null) { 5088 break; 5089 } 5090 } 5091 } 5092 5093 this.hint.container 5094 .val(hint.length > 0 && this.rawQuery + hint.substring(this.query.length) || ""); 5095 5096 } 5097 5098 }, 5099 5100 buildDropdownLayout: function () { 5101 5102 if (!this.options.dropdownFilter) { 5103 return; 5104 } 5105 5106 var scope = this; 5107 5108 $('<span/>', { 5109 "class": this.options.selector.filter, 5110 "html": function () { 5111 5112 $(this).append( 5113 $('<button/>', { 5114 "type": "button", 5115 "class": scope.options.selector.filterButton, 5116 "style": "display: none;", 5117 "click": function (e) { 5118 e.stopPropagation(); 5119 scope.container.toggleClass('filter'); 5120 5121 var _ns = scope.namespace + '-dropdown-filter'; 5122 5123 $('html').off(_ns); 5124 5125 if (scope.container.hasClass('filter')) { 5126 $('html').on("click" + _ns + " touchend" + _ns, function (e) { 5127 if ($(e.target).closest('.' + scope.options.selector.filter)[0] || scope.hasDragged) return; 5128 scope.container.removeClass('filter'); 5129 }); 5130 } 5131 } 5132 }) 5133 ); 5134 5135 $(this).append( 5136 $('<ul/>', { 5137 "class": scope.options.selector.dropdown 5138 }) 5139 ); 5140 } 5141 }).insertAfter(scope.container.find('.' + scope.options.selector.query)); 5142 5143 }, 5144 5145 buildDropdownItemLayout: function (type) { 5146 5147 var scope = this, 5148 template, 5149 all = typeof this.options.dropdownFilter === 'string' && this.options.dropdownFilter || 'All',
5150 ulScope = this.container.find('.' + this.options.selector.dropdown), 5151 filter; 5152 5153 // Use regular groups defined in options.source 5154 if (type === 'static' && this.options.dropdownFilter === true || typeof this.options.dropdownFilter === 'string') { 5155 this.dropdownFilter.static.push({ 5156 key: 'group', 5157 template: '{{group}}', 5158 all: all, 5159 value: Object.keys(this.options.source) 5160 }); 5161 } 5162 5163 for (var i = 0, ii = this.dropdownFilter[type].length; i < ii; i++) { 5164 5165 filter = this.dropdownFilter[type][i]; 5166 5167 if (!Array.isArray(filter.value)) { 5168 filter.value = [filter.value]; 5169 } 5170 5171 if (filter.all) { 5172 this.dropdownFilterAll = filter.all; 5173 } 5174 5175 for (var k = 0, kk = filter.value.length; k <= kk; k++) { 5176 5177 // Only add "all" at the last filter iteration 5178 if (k === kk && (i !== ii - 1)) { 5179 continue; 5180 } else if (k === kk && (i === ii - 1)) { 5181 if (type === 'static' && this.dropdownFilter['dynamic'].length) { 5182 continue; 5183 } 5184 } 5185 5186 template = this.dropdownFilterAll || all; 5187 if (filter.value[k]) { 5188 if (filter.template) { 5189 template = filter.template.replace(new RegExp('\{\{' + filter.key + '}}', 'gi'), filter.value[k]) 5190 } else { 5191 template = filter.value[k] 5192 } 5193 } else { 5194 this.container.find('.' + scope.options.selector.filterButton).html(template) 5195 } 5196 5197 (function (k, filter, template) { 5198 5199 ulScope.append( 5200 $("<li/>", { 5201 "class": scope.options.selector.dropdownItem + ' ' + scope.helper.slugify.call(scope, filter.key + '-' + (filter.value[k] || all)), 5202 "html": $("<a/>", { 5203 "href": "javascript:;", 5204 "html": template, 5205 "click": function (e) { 5206 e.preventDefault(); 5207 _selectFilter.call(scope, { 5208 key: filter.key, 5209 value: filter.value[k] || '*', 5210 template: template 5211 }); 5212 } 5213 }) 5214 }) 5215 ); 5216 5217 }(k, filter, template)); 5218 } 5219 } 5220 5221 if (this.dropdownFilter[type].length) { 5222 this.container.find('.' + scope.options.selector.filterButton).removeAttr('style'); 5223 } 5224 5225 /** 5226 * @private 5227 * Select the filter and rebuild the result group 5228 * 5229 * @param {object} item 5230 */ 5231 function _selectFilter(item) { 5232 if (item.value === "*") { 5233 delete this.filters.dropdown; 5234 } else { 5235 this.filters.dropdown = item; 5236 } 5237 5238 this.container 5239 .removeClass('filter') 5240 .find('.' + this.options.selector.filterButton) 5241 .html(item.template); 5242 5243 this.node.trigger('dynamic' + this.namespace); 5244 5245 this.node.focus(); 5246 } 5247 }, 5248 5249 dynamicFilter: { 5250 isEnabled: false, 5251 init: function () { 5252 5253 if (!this.options.dynamicFilter) return; 5254
5255 this.dynamicFilter.bind.call(this); 5256 this.dynamicFilter.isEnabled = true; 5257 5258 }, 5259 5260 validate: function (item) { 5261 5262 var isValid, 5263 softValid = null, 5264 hardValid = null, 5265 itemValue; 5266 5267 for (var key in this.filters.dynamic) { 5268 if (!this.filters.dynamic.hasOwnProperty(key)) continue; 5269 if (!!~key.indexOf('.')) { 5270 itemValue = this.helper.namespace(key, item, 'get'); 5271 } else { 5272 itemValue = item[key]; 5273 } 5274 5275 if (this.filters.dynamic[key].modifier === '|' && !softValid) { 5276 softValid = itemValue == this.filters.dynamic[key].value || false; 5277 } 5278 5279 if (this.filters.dynamic[key].modifier === '&') { 5280 // Leaving "==" in case of comparing number with string 5281 if (itemValue == this.filters.dynamic[key].value) { 5282 hardValid = true; 5283 } else { 5284 hardValid = false; 5285 break; 5286 } 5287 } 5288 } 5289 5290 isValid = softValid; 5291 if (hardValid !== null) { 5292 isValid = hardValid; 5293 if (hardValid === true && softValid !== null) { 5294 isValid = softValid; 5295 } 5296 } 5297 5298 return !!isValid; 5299 5300 }, 5301 5302 set: function (key, value) { 5303 5304 var matches = key.match(/^([|&])?(.+)/); 5305 5306 if (!value) { 5307 delete this.filters.dynamic[matches[2]]; 5308 } else { 5309 this.filters.dynamic[matches[2]] = { 5310 modifier: matches[1] || '|', 5311 value: value 5312 }; 5313 } 5314 5315 if (this.dynamicFilter.isEnabled) { 5316 this.searchResult(); 5317 this.buildLayout(); 5318 } 5319 5320 }, 5321 bind: function () { 5322 5323 var scope = this, 5324 filter; 5325 5326 for (var i = 0, ii = this.options.dynamicFilter.length; i < ii; i++) { 5327 5328 filter = this.options.dynamicFilter[i]; 5329 5330 if (typeof filter.selector === "string") { 5331 filter.selector = $(filter.selector); 5332 } 5333 5334 if (!(filter.selector instanceof $) || !filter.selector[0] || !filter.key) { 5335 // {debug} 5336 if (this.options.debug) { 5337 _debug.log({ 5338 'node': this.node.selector, 5339 'function': 'buildDynamicLayout()', 5340 'message': 'Invalid jQuery selector or jQuery Object for "filter.selector" or missing filter.key' 5341 }); 5342 5343 _debug.print(); 5344 } 5345 // {/debug} 5346 continue; 5347 } 5348 5349 (function (filter) { 5350 filter.selector.off(scope.namespace).on('change' + scope.namespace, function () { 5351 scope.dynamicFilter.set.apply(scope, [filter.key, scope.dynamicFilter.getValue(this)]); 5352 }).trigger('change' + scope.namespace); 5353 }(filter)); 5354 5355 } 5356 }, 5357 5358 getValue: function (tag) { 5359 var value; 5360 if (tag.tagName === "SELECT") { 5361 value = tag.value; 5362 } else if (tag.tagName === "INPUT") { 5363 if (tag.type === "checkbox") { 5364 value = tag.checked && tag.getAttribute('value') || tag.checked || null; 5365 } else if (tag.type === "radio" && tag.checked) { 5366 value = tag.value; 5367 } 5368 } 5369 return value; 5370 } 5371 }, 5372 5373 showLayout: function () { 5374 5375 // Means the container is already visible 5376 if (this.container.hasClass('result')) return; 5377
5378 // Do not add display classes if there are no results 5379 if (!this.result.length && !this.options.emptyTemplate && !this.options.backdropOnFocus) { 5380 return; 5381 } 5382 5383 var scope = this; 5384 5385 $('html').off(this.namespace) 5386 .on("click" + this.namespace + " touchend" + this.namespace, function (e) { 5387 if ($(e.target).closest(scope.container)[0] || scope.hasDragged) return; 5388 scope.hideLayout(); 5389 }); 5390 5391 this.container.addClass([ 5392 this.result.length || (this.options.emptyTemplate && this.query.length >= this.options.minLength) ? 'result ' : '', 5393 this.options.hint && this.query.length >= this.options.minLength ? 'hint' : '', 5394 this.options.backdrop || this.options.backdropOnFocus ? 'backdrop' : ''].join(' ') 5395 ); 5396 5397 this.helper.executeCallback.call(this, this.options.callback.onShowLayout, [this.node, this.query]); 5398 5399 }, 5400 5401 hideLayout: function () { 5402 5403 // Means the container is already hidden 5404 if (!this.container.hasClass('result') && !this.container.hasClass('backdrop')) return; 5405 5406 this.container.removeClass('result hint filter' + (this.options.backdropOnFocus && $(this.node).is(':focus') ? '' : ' backdrop')); 5407 5408 if (this.options.backdropOnFocus && this.container.hasClass('backdrop')) return; 5409 5410 // Make sure the event gets cleared in case of "ESC" 5411 $('html').off(this.namespace); 5412 5413 this.helper.executeCallback.call(this, this.options.callback.onHideLayout, [this.node, this.query]); 5414 5415 }, 5416 5417 resetLayout: function () { 5418 5419 this.result = {}; 5420 this.resultCount = 0; 5421 this.resultCountPerGroup = {}; 5422 this.resultItemCount = 0; 5423 this.resultHtml = null; 5424 5425 if (this.options.hint && this.hint.container) { 5426 this.hint.container.val('') 5427 } 5428 5429 }, 5430 5431 buildCancelButtonLayout: function () { 5432 if (!this.options.cancelButton) return; 5433 var scope = this; 5434 5435 $('<span/>', { 5436 "class": this.options.selector.cancelButton, 5437 "mousedown": function (e) { 5438 // Don't blur the input 5439 e.stopImmediatePropagation(); 5440 e.preventDefault(); 5441 5442 scope.node.val(''); 5443 scope.node.trigger('input' + scope.namespace); 5444 } 5445 }).insertBefore(this.node); 5446 5447 }, 5448 5449 toggleCancelButton: function () { 5450 this.container.toggleClass('cancel', !!this.query.length); 5451 }, 5452 5453 __construct: function () { 5454 this.extendOptions(); 5455 5456 if (!this.unifySourceFormat()) { 5457 return; 5458 } 5459
5460 this.dynamicFilter.init.apply(this); 5461 5462 this.init(); 5463 this.delegateEvents(); 5464 this.buildCancelButtonLayout(); 5465 this.buildDropdownLayout(); 5466 this.buildDropdownItemLayout('static'); 5467 5468 this.helper.executeCallback.call(this, this.options.callback.onReady, [this.node]); 5469 }, 5470 5471 helper: { 5472 5473 isEmpty: function (obj) { 5474 for (var prop in obj) { 5475 if (obj.hasOwnProperty(prop)) 5476 return false; 5477 } 5478 5479 return true; 5480 }, 5481 5482 /** 5483 * Remove every accent(s) from a string 5484 * 5485 * @param {String} string 5486 * @returns {*} 5487 */ 5488 removeAccent: function (string) { 5489 if (typeof string !== "string") { 5490 return; 5491 } 5492 var accent = this.options.accent || _accent; 5493 5494 string = string.toLowerCase().replace(new RegExp('[' + accent.from + ']', 'g'), function (match) { 5495 return accent.to[accent.from.indexOf(match)]; 5496 }); 5497 5498 return string; 5499 }, 5500 5501 /** 5502 * Creates a valid url from string 5503 * 5504 * @param {String} string 5505 * @returns {string} 5506 */ 5507 slugify: function (string) { 5508 5509 string = String(string); 5510 5511 if (string !== "") { 5512 string = this.helper.removeAccent.call(this, string); 5513 string = string.replace(/[^-a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, ''); 5514 } 5515 5516 return string; 5517 }, 5518 5519 /** 5520 * Sort list of object by key 5521 * 5522 * @param {String|Array} field 5523 * @param {Boolean} reverse 5524 * @param {Function} primer 5525 * @returns {Function} 5526 */ 5527 sort: function (field, reverse, primer) { 5528 var key = function (x) { 5529 for (var i = 0, ii = field.length; i < ii; i++) { 5530 if (typeof x[field[i]] !== 'undefined') { 5531 return primer(x[field[i]]) 5532 } 5533 } 5534 return x; 5535 }; 5536 5537 reverse = [-1, 1][+!!reverse]; 5538 5539 return function (a, b) { 5540 return a = key(a), b = key(b), reverse * ((a > b) - (b > a)); 5541 } 5542 }, 5543 5544 /** 5545 * Replace a string from-to index 5546 * 5547 * @param {String} string The complete string to replace into 5548 * @param {Number} offset The cursor position to start replacing from 5549 * @param {Number} length The length of the replacing string 5550 * @param {String} replace The replacing string 5551 * @returns {String} 5552 */ 5553 replaceAt: function (string, offset, length, replace) { 5554 return string.substring(0, offset) + replace + string.substring(offset + length); 5555 }, 5556 5557 /** 5558 * Adds <strong> html around a matched string 5559 * 5560 * @param {String} string The complete string to match from 5561 * @param {String} key 5562 * @param {Boolean} [accents] 5563 * @returns {*} 5564 */ 5565 highlight: function (string, keys, accents) { 5566 5567 string = String(string); 5568 5569 var searchString = accents && this.helper.removeAccent.call(this, string) || string, 5570 matches = []; 5571 5572 if (!Array.isArray(keys)) { 5573 keys = [keys]; 5574 } 5575 5576 keys.sort(function (a, b) { 5577 return b.length - a.length; 5578 }); 5579 5580 // Make sure the '|' join will be safe! 5581 for (var i = keys.length - 1; i >= 0; i--) { 5582 if (keys[i].trim() === "") { 5583 keys.splice(i, 1); 5584 continue; 5585 } 5586 keys[i] = keys[i].replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") 5587 } 5588 5589 searchString.replace( 5590 new RegExp('(?:' + keys.join('|') + ')(?!([^<]+)?>
5590)', 'gi'), 5591 function (match, index, offset) { 5592 matches.push({ 5593 offset: offset, 5594 length: match.length 5595 }); 5596 } 5597 ); 5598 5599 for (var i = matches.length - 1; i >= 0; i--) { 5600 string = this.helper.replaceAt( 5601 string, 5602 matches[i].offset, 5603 matches[i].length, 5604 "<strong>" + string.substr(matches[i].offset, matches[i].length) + "</strong>" 5605 ); 5606 } 5607 5608 return string; 5609 }, 5610 5611 /** 5612 * Get carret position, mainly used for right arrow navigation 5613 * @param element 5614 * @returns {*} 5615 */ 5616 getCaret: function (element) { 5617 if (element.selectionStart) { 5618 return element.selectionStart; 5619 } else if (document.selection) { 5620 element.focus(); 5621 5622 var r = document.selection.createRange(); 5623 if (r == null) { 5624 return 0; 5625 } 5626 5627 var re = element.createTextRange(), 5628 rc = re.duplicate(); 5629 re.moveToBookmark(r.getBookmark()); 5630 rc.setEndPoint('EndToStart', re); 5631 5632 return rc.text.length; 5633 } 5634 return 0; 5635 }, 5636 5637 /** 5638 * Clean strings from possible XSS (script and iframe tags) 5639 * @param string 5640 * @returns {string} 5641 */ 5642 cleanStringFromScript: function (string) { 5643 return typeof string === "string" && 5644 string.replace(/<\/?(?:script|iframe)\b[^>]*>/gm, '') || 5645 string; 5646 }, 5647 5648 /** 5649 * Executes an anonymous function or a string reached from the window scope. 5650 * 5651 * @example 5652 * Note: These examples works with every configuration callbacks 5653 * 5654 * // An anonymous function inside the "onInit" option 5655 * onInit: function() { console.log(':D'); }; 5656 * 5657 * // myFunction() located on window.coucou scope 5658 * onInit: 'window.coucou.myFunction' 5659 * 5660 * // myFunction(a,b) located on window.coucou scope passing 2 parameters 5661 * onInit: ['window.coucou.myFunction', [':D', ':)']]; 5662 * 5663 * // Anonymous function to execute a local function 5664 * onInit: function () { myFunction(':D'); } 5665 * 5666 * @param {String|Array} callback The function to be called 5667 * @param {Array} [extraParams] In some cases the function can be called with Extra parameters (onError) 5668 * @returns {*} 5669 */ 5670 executeCallback: function (callback, extraParams) { 5671 5672 if (!callback) { 5673 return; 5674 } 5675 5676 var _callback; 5677 5678 if (typeof callback === "function") { 5679 5680 _callback = callback; 5681 5682 } else if (typeof callback === "string" || Array.isArray(callback)) { 5683 5684 if (typeof callback === "string") { 5685 callback = [callback, []]; 5686 } 5687 5688 _callback = this.helper.namespace(callback[0], window); 5689 5690 if (typeof _callback !== "function") { 5691 // {debug} 5692 if (this.options.debug) { 5693 _debug.log({ 5694 'node': this.selector, 5695 'function': 'executeCallback()', 5696 'arguments': JSON.stringify(callback), 5697 'message': 'WARNING - Invalid callback function"' 5698 }); 5699 5700 _debug.print(); 5701 } 5702 // {/debug} 5703 return; 5704 } 5705 5706 } 5707 5708 return _callback.apply(this, (callback[1] || []).concat(extraParams ? extraParams : [])); 5709 5710 }, 5711 5712 namespace: function (namespaceString, objectReference, method, objectValue) { 5713 5714 if (typeof namespaceString !== "string" || namespaceString === "") { 5715 // {debug} 5716 if (this.options.debug) { 5717 _debug.log({ 5718 'node': _node.selector, 5719 'function': 'namespace()', 5720 'arguments': namespaceString, 5721 'message': 'ERROR - Missing namespaceString"' 5722 }); 5723 5724 _debug.print(); 5725 } 5726 // {/debug} 5727 return false; 5728 } 5729 5730 var parts = namespaceString.split('.'), 5731 parent = objectReference || window, 5732 method = method || 'get', 5733 value = objectValue || {}, 5734 currentPart = ''; 5735 5736 for (var i = 0, length = parts.length; i < length; i++) { 5737 currentPart = parts[i];
5738 5739 if (typeof parent[currentPart] === "undefined") { 5740 if (~['get', 'delete'].indexOf(method)) { 5741 return typeof objectValue !== "undefined" ? objectValue : undefined; 5742 } 5743 parent[currentPart] = {}; 5744 } 5745 5746 if (~['set', 'create', 'delete'].indexOf(method)) { 5747 if (i === length - 1) { 5748 if (method === 'set' || method === 'create') { 5749 parent[currentPart] = value; 5750 } else { 5751 5752 delete parent[currentPart]; 5753 return true; 5754 } 5755 } 5756 } 5757 5758 parent = parent[currentPart]; 5759 5760 } 5761 return parent; 5762 }, 5763 5764 typeWatch: (function () { 5765 var timer = 0; 5766 return function (callback, ms) { 5767 clearTimeout(timer); 5768 timer = setTimeout(callback, ms); 5769 } 5770 })() 5771 5772 } 5773 }; 5774 5775 /** 5776 * @public 5777 * Implement Typeahead on the selected input node. 5778 * 5779 * @param {Object} options 5780 * @return {Object} Modified DOM element 5781 */ 5782 $.fn.typeahead = $.typeahead = function (options) { 5783 return _api.typeahead(this, options); 5784 }; 5785 5786 /** 5787 * @private 5788 * API to handles Typeahead methods via jQuery. 5789 */ 5790 var _api = { 5791 5792 /** 5793 * Enable Typeahead 5794 * 5795 * @param {Object} node 5796 * @param {Object} options 5797 * @returns {*} 5798 */ 5799 typeahead: function (node, options) { 5800 5801 if (!options || !options.source || typeof options.source !== 'object') { 5802 5803 // {debug} 5804 _debug.log({ 5805 'node': node.selector || options && options.input, 5806 'function': '$.typeahead()', 5807 'arguments': JSON.stringify(options && options.source || ''), 5808 'message': 'Undefined "options" or "options.source" or invalid source type - Typeahead dropped' 5809 }); 5810 5811 _debug.print(); 5812 // {/debug} 5813 5814 return; 5815 } 5816 5817 if (typeof node === "function") { 5818 if (!options.input) { 5819 5820 // {debug} 5821 _debug.log({ 5822 'node': node.selector, 5823 'function': '$.typeahead()', 5824 //'arguments': JSON.stringify(options), 5825 'message': 'Undefined "options.input" - Typeahead dropped' 5826 }); 5827 5828 _debug.print(); 5829 // {/debug} 5830 5831 return; 5832 } 5833 5834 node = $(options.input); 5835 } 5836 5837 if (!node.length || node[0].nodeName !== "INPUT") { 5838 5839 // {debug} 5840 _debug.log({ 5841 'node': node.selector, 5842 'function': '$.typeahead()', 5843 'arguments': JSON.stringify(options.input), 5844 'message': 'Unable to find jQuery input element - Typeahead dropped' 5845 }); 5846 5847 _debug.print(); 5848 // {/debug} 5849 5850 return; 5851 } 5852 5853 return window.Typeahead[options.input || node.selector] = new Typeahead(node, options); 5854 5855 } 5856 5857 }; 5858 5859// {debug} 5860 var _debug = { 5861 5862 table: {}, 5863 log: function (debugObject) { 5864 5865 if (!debugObject.message || typeof debugObject.message !== "string") { 5866 return; 5867 } 5868 5869 this.table[debugObject.message] = $.extend({ 5870 'node': '', 5871 'function': '', 5872 'arguments': '' 5873 }, debugObject) 5874 5875 }, 5876 print: function () { 5877 5878 if (Typeahead.prototype.helper.isEmpty(this.table) || !console || !console.table) { 5879 return; 5880 } 5881 5882 if (console.group !== undefined || console.table !== undefined) { 5883 console.groupCollapsed('--- jQuery Typeahead Debug ---'); 5884 console.table(this.table); 5885 console.groupEnd(); 5886 } 5887 5888 this.table = {}; 5889 5890 } 5891 5892 }; 5893 _debug.log({ 5894 'message': 'WARNING - You are using the DEBUG version. Use /dist/jquery.typeahead.min.js in production.' 5895 });
5896 5897 _debug.print(); 5898// {/debug} 5899 5900// IE8 Shims 5901 window.console = window.console || { 5902 log: function () { 5903 } 5904 }; 5905 5906 if (!Array.isArray) { 5907 Array.isArray = function (arg) { 5908 return Object.prototype.toString.call(arg) === '[object Array]'; 5909 }; 5910 } 5911 5912 if (!('trim' in String.prototype)) { 5913 String.prototype.trim = function () { 5914 return this.replace(/^\s+/, '').replace(/\s+$/, ''); 5915 }; 5916 } 5917 if (!('indexOf' in Array.prototype)) { 5918 Array.prototype.indexOf = function (find, i /*opt*/) { 5919 if (i === undefined) i = 0; 5920 if (i < 0) i += this.length; 5921 if (i < 0) i = 0; 5922 for (var n = this.length; i < n; i++) 5923 if (i in this && this[i] === find) 5924 return i; 5925 return -1; 5926 }; 5927 } 5928 if (!Object.keys) { 5929 Object.keys = function (obj) { 5930 var keys = [], 5931 k; 5932 for (k in obj) { 5933 if (Object.prototype.hasOwnProperty.call(obj, k)) { 5934 keys.push(k); 5935 } 5936 } 5937 return keys; 5938 }; 5939 } 5940 5941 return Typeahead; 5942 5943}));; 5944/** 5945 * jQuery number plug-in 2.1.5 5946 * Copyright 2012, Digital Fusion 5947 * Licensed under the MIT license. 5948 * http://opensource.teamdf.com/license/ 5949 * 5950 * A jQuery plugin which implements a permutation of phpjs.org's number_format to provide 5951 * simple number formatting, insertion, and as-you-type masking of a number. 5952 * 5953 * @author Sam Sehnert 5954 * @docs http://www.teamdf.com/web/jquery-number-format-redux/196/ 5955 */ 5956(function ($) { 5957 5958 "use strict"; 5959 5960 /** 5961 * Method for selecting a range of characters in an input/textarea. 5962 * 5963 * @param int rangeStart : Where we want the selection to start. 5964 * @param int rangeEnd : Where we want the selection to end. 5965 * 5966 * @return void; 5967 */ 5968 function setSelectionRange(rangeStart, rangeEnd) { 5969 // Check which way we need to define the text range. 5970 if (this.createTextRange) { 5971 var range = this.createTextRange(); 5972 range.collapse(true); 5973 range.moveStart('character', rangeStart); 5974 range.moveEnd('character', rangeEnd - rangeStart); 5975 range.select(); 5976 } 5977 5978 // Alternate setSelectionRange method for supporting browsers. 5979 else if (this.setSelectionRange) { 5980 this.focus(); 5981 this.setSelectionRange(rangeStart, rangeEnd); 5982 } 5983 } 5984 5985 /** 5986 * Get the selection position for the given part. 5987 * 5988 * @param string part : Options, 'Start' or 'End'. The selection position to get. 5989 * 5990 * @return int : The index position of the selection part. 5991 */ 5992 function getSelection(part) { 5993 var pos = this.value.length; 5994 5995 // Work out the selection part. 5996 part = (part.toLowerCase() == 'start' ? 'Start' : 'End'); 5997 5998 if (document.selection) { 5999 // The current selection 6000 var range = document.selection.createRange(), stored_range, selectionStart, selectionEnd; 6001 // We'll use this as a 'dummy' 6002 stored_range = range.duplicate(); 6003 // Select all text 6004 //stored_range.moveToElementText( this ); 6005 stored_range.expand('textedit'); 6006 // Now move 'dummy' end point to end point of original range 6007 stored_range.setEndPoint('EndToEnd', range); 6008 // Now we can calculate start and end points 6009 selectionStart = stored_range.text.length - range.text.length; 6010 selectionEnd = selectionStart + range.text.length; 6011 return part == 'Start' ? selectionStart : selectionEnd; 6012 } 6013 6014 else if (typeof (this['selection' + part]) != "undefined") { 6015 pos = this['selection' + part]; 6016 } 6017 return pos; 6018 } 6019 6020 /** 6021 * Substitutions for keydown keycodes. 6022 * Allows conversion from e.which to ascii characters. 6023 */ 6024 var _keydown = { 6025 codes: { 6026 46: 127, 6027 188: 44,
vendor: 26,444 bytes, lines 6028-6579
6028 109: 45, 6029 190: 46, 6030 191: 47, 6031 192: 96, 6032 220: 92, 6033 222: 39, 6034 221: 93, 6035 219: 91, 6036 173: 45, 6037 187: 61, //IE Key codes 6038 186: 59, //IE Key codes 6039 189: 45, //IE Key codes 6040 110: 46 //IE Key codes 6041 }, 6042 shifts: { 6043 96: "~", 6044 49: "!", 6045 50: "@", 6046 51: "#", 6047 52: "$", 6048 53: "%", 6049 54: "^", 6050 55: "&", 6051 56: "*", 6052 57: "(", 6053 48: ")", 6054 45: "_", 6055 61: "+", 6056 91: "{", 6057 93: "}", 6058 92: "|", 6059 59: ":", 6060 39: "\"", 6061 44: "<", 6062 46: ">", 6063 47: "?" 6064 } 6065 }; 6066 6067 /** 6068 * jQuery number formatter plugin. This will allow you to format numbers on an element. 6069 * 6070 * @params proxied for format_number method. 6071 * 6072 * @return : The jQuery collection the method was called with. 6073 */ 6074 $.fn.number = function (number, decimals, dec_point, thousands_sep) { 6075 6076 // Enter the default thousands separator, and the decimal placeholder. 6077 thousands_sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep; 6078 dec_point = (typeof dec_point === 'undefined') ? '.' : dec_point; 6079 decimals = (typeof decimals === 'undefined') ? 0 : decimals; 6080 6081 // Work out the unicode character for the decimal placeholder. 6082 var u_dec = ('\\u' + ('0000' + (dec_point.charCodeAt(0).toString(16))).slice(-4)), 6083 regex_dec_num = new RegExp('[^' + u_dec + '0-9]', 'g'), 6084 regex_dec = new RegExp(u_dec, 'g'); 6085 6086 // If we've specified to take the number from the target element, 6087 // we loop over the collection, and get the number. 6088 if (number === true) { 6089 // If this element is a number, then we add a keyup 6090 if (this.is('input:text')) { 6091 // Return the jquery collection. 6092 return this.on({ 6093 6094 /** 6095 * Handles keyup events, re-formatting numbers. 6096 * 6097 * Uses 'data' object to keep track of important information. 6098 * 6099 * data.c 6100 * This variable keeps track of where the caret *should* be. It works out the position as 6101 * the number of characters from the end of the string. E.g., '1^,234.56' where ^ denotes the caret, 6102 * would be index -7 (e.g., 7 characters from the end of the string). At the end of both the key down 6103 * and key up events, we'll re-position the caret to wherever data.c tells us the cursor should be. 6104 * This gives us a mechanism for incrementing the cursor position when we come across decimals, commas 6105 * etc. This figure typically doesn't increment for each keypress when to the left of the decimal, 6106 * but does when to the right of the decimal. 6107 * 6108 * @param object e : the keyup event object.s 6109 * 6110 * @return void; 6111 */ 6112 'keydown.format': function (e) { 6113 6114 // Define variables used in the code below. 6115 var $this = $(this), 6116 data = $this.data('numFormat'), 6117 code = (e.keyCode ? e.keyCode : e.which), 6118 chara = '', //unescape(e.originalEvent.keyIdentifier.replace('U+','%u')), 6119 start = getSelection.apply(this, ['start']), 6120 end = getSelection.apply(this, ['end']), 6121 val = '', 6122 setPos = false; 6123 6124 // Webkit (Chrome & Safari) on windows screws up the keyIdentifier detection 6125 // for numpad characters. I've disabled this for now, because while keyCode munging 6126 // below is hackish and ugly, it actually works cross browser & platform. 6127 6128 // if( typeof e.originalEvent.keyIdentifier !== 'undefined' ) 6129 // { 6130 // chara = unescape(e.originalEvent.keyIdentifier.replace('U+','%u')); 6131 // } 6132 // else 6133 // { 6134 if (_keydown.codes.hasOwnProperty(code)) { 6135 code = _keydown.codes[code]; 6136 } 6137 if (!e.shiftKey && (code >= 65 && code <= 90)) { 6138 code += 32; 6139 } else if (!e.shiftKey && (code >= 69 && code <= 105)) { 6140 code -= 48; 6141 } else if (e.shiftKey && _keydown.shifts.hasOwnProperty(code)) { 6142 //get shifted keyCode value 6143 chara = _keydown.shifts[code]; 6144 } 6145 6146 if (chara == '') chara = String.fromCharCode(code); 6147 // } 6148 6149 6150 6151 6152 // Stop executing if the user didn't type a number key, a decimal character, backspace, or delete. 6153 if (code != 8 && code != 45 && code != 127 && chara != dec_point && !chara.match(/[0-9]/)) { 6154 // We need the original keycode now... 6155 var key = (e.keyCode ? e.keyCode : e.which); 6156 if ( // Allow control keys to go through... (delete, backspace, tab, enter, escape etc) 6157 key == 46 || key == 8 || key == 127 || key == 9 || key == 27 || key == 13 || 6158 // Allow: Ctrl+A, Ctrl+R, Ctrl+P, Ctrl+S, Ctrl+F, Ctrl+H, Ctrl+B, Ctrl+J, Ctrl+T, Ctrl+Z, Ctrl++, Ctrl+-, Ctrl+0 6159 ((key == 65 || key == 82 || key == 80 || key == 83 || key == 70 || key == 72 || key == 66 || key == 74 || key == 84 || key == 90 || key == 61 || key == 173 || key == 48) && (e.ctrlKey || e.metaKey) === true) || 6160 // Allow: Ctrl+V, Ctrl+C, Ctrl+X 6161 ((key == 86 || key == 67 || key == 88) && (e.ctrlKey || e.metaKey) === true) || 6162 // Allow: home, end, left, right 6163 ((key >= 35 && key <= 39)) || 6164 // Allow: F1-F12 6165 ((key >= 112 && key <= 123)) 6166 ) { 6167 return; 6168 } 6169 // But prevent all other keys. 6170 e.preventDefault(); 6171 return false; 6172 } 6173 6174 // The whole lot has been selected, or if the field is empty... 6175 if (start == 0 && end == this.value.length) //|| $this.val() == 0 ) 6176 { 6177 if (code == 8) // Backspace 6178 { 6179 // Blank out the field, but only if the data object has already been instantiated. 6180 start = end = 1; 6181 this.value = ''; 6182 6183 // Reset the cursor position. 6184 data.init = (decimals > 0 ? -1 : 0); 6185 data.c = (decimals > 0 ? -(decimals + 1) : 0); 6186 setSelectionRange.apply(this, [0, 0]); 6187 } 6188 else if (chara == dec_point) { 6189 start = end = 1; 6190 let deci = ''; 6191 for (let i = 0; i < decimals; i++) { 6192 deci += '0'; 6193 } 6194 //this.value = '0' + dec_point + (new Array(decimals + 1).join('0')); 6195 this.value = '0' + (deci === ''? '' : dec_point) + deci; 6196 // Reset the cursor position. 6197 data.init = (decimals > 0 ? 1 : 0); 6198 data.c = (decimals > 0 ? -(decimals + 1) : 0); 6199 } 6200 else if (code == 45) // Negative sign 6201 { 6202 start = end = 2; 6203 this.value = '-0' + dec_point + (new Array(decimals + 1).join('0')); 6204 6205 // Reset the cursor position. 6206 data.init = (decimals > 0 ? 1 : 0); 6207 data.c = (decimals > 0 ? -(decimals + 1) : 0); 6208 6209 setSelectionRange.apply(this, [2, 2]); 6210 } 6211 else { 6212 // Reset the cursor position. 6213 data.init = (decimals > 0 ? -1 : 0); 6214 data.c = (decimals > 0 ? -(decimals) : 0); 6215 } 6216 } 6217 6218 // Otherwise, we need to reset the caret position 6219 // based on the users selection. 6220 else { 6221 data.c = end - this.value.length; 6222 } 6223 6224 // Track if partial selection was used 6225 data.isPartialSelection = start == end ? false : true; 6226 6227 // If the start position is before the decimal point, 6228 // and the user has typed a decimal point, we need to move the caret 6229 // past the decimal place. 6230 if (decimals > 0 && chara == dec_point && start == this.value.length - decimals - 1) { 6231 data.c++; 6232 data.init = Math.max(0, data.init); 6233 e.preventDefault(); 6234 6235 // Set the selection position. 6236 setPos = this.value.length + data.c; 6237 } 6238 6239 // Ignore negative sign unless at beginning of number (and it's not already present) 6240 else if (code == 45 && (start != 0 || this.value.indexOf('-') == 0)) { 6241 e.preventDefault(); 6242 } 6243 6244 // If the user is just typing the decimal place, 6245 // we simply ignore it. 6246 else if (chara == dec_point) { 6247 data.init = Math.max(0, data.init); 6248 e.preventDefault(); 6249 } 6250 6251 // If hitting the delete key, and the cursor is before a decimal place, 6252 // we simply move the cursor to the other side of the decimal place. 6253 else if (decimals > 0 && code == 127 && start == this.value.length - decimals - 1) { 6254 // Just prevent default but don't actually move the caret here because it's done in the keyup event 6255 e.preventDefault(); 6256 } 6257 6258 // If hitting the backspace key, and the cursor is behind a decimal place, 6259 // we simply move the cursor to the other side of the decimal place. 6260 else if (decimals > 0 && code == 8 && start == this.value.length - decimals) { 6261 e.preventDefault(); 6262 data.c--; 6263 6264 // Set the selection position. 6265 setPos = this.value.length + data.c; 6266 } 6267 6268 // If hitting the delete key, and the cursor is to the right of the decimal 6269 // we replace the character after the caret with a 0. 6270 else if (decimals > 0 && code == 127 && start > this.value.length - decimals - 1) { 6271 if (this.value === '') return; 6272 6273 // If the character following is not already a 0, 6274 // replace it with one. 6275 if (this.value.slice(start, start + 1) != '0') { 6276 val = this.value.slice(0, start) + '0' + this.value.slice(start + 1); 6277 // The regex replacement below removes negative sign from numbers... 6278 // not sure why they're necessary here when none of the other cases use them 6279 //$this.val(val.replace(regex_dec_num,'').replace(regex_dec,dec_point)); 6280 $this.val(val); 6281 } 6282 6283 e.preventDefault(); 6284 6285 // Set the selection position. 6286 setPos = this.value.length + data.c; 6287 } 6288 6289 // If hitting the backspace key, and the cursor is to the right of the decimal 6290 // (but not directly to the right) we replace the character preceding the 6291 // caret with a 0. 6292 else if (decimals > 0 && code == 8 && start > this.value.length - decimals) { 6293 if (this.value === '') return; 6294 6295 // If the character preceding is not already a 0, 6296 // replace it with one. 6297 if (this.value.slice(start - 1, start) != '0') { 6298 val = this.value.slice(0, start - 1) + '0' + this.value.slice(start); 6299 // The regex replacement below removes negative sign from numbers... 6300 // not sure why they're necessary here when none of the other cases use them 6301 //$this.val(val.replace(regex_dec_num,'').replace(regex_dec,dec_point)); 6302 $this.val(val); 6303 } 6304 6305 e.preventDefault(); 6306 data.c--; 6307 6308 // Set the selection position. 6309 setPos = this.value.length + data.c; 6310 } 6311 6312 // If the delete key was pressed, and the character immediately 6313 // after the caret is a thousands_separator character, simply 6314 // step over it. 6315 else if (code == 127 && this.value.slice(start, start + 1) == thousands_sep) { 6316 // Just prevent default but don't actually move the caret here because it's done in the keyup event 6317 e.preventDefault(); 6318 } 6319 6320 // If the backspace key was pressed, and the character immediately 6321 // before the caret is a thousands_separator character, simply 6322 // step over it. 6323 else if (code == 8 && this.value.slice(start - 1, start) == thousands_sep) { 6324 e.preventDefault(); 6325 data.c--; 6326 6327 // Set the selection position. 6328 setPos = this.value.length + data.c; 6329 } 6330 6331 // If the caret is to the right of the decimal place, and the user is entering a 6332 // number, remove the following character before putting in the new one. 6333 else if ( 6334 decimals > 0 && 6335 start == end && 6336 this.value.length > decimals + 1 && 6337 start > this.value.length - decimals - 1 && isFinite(+chara) && 6338 !e.metaKey && !e.ctrlKey && !e.altKey && chara.length === 1 6339 ) { 6340 // If the character preceding is not already a 0, 6341 // replace it with one. 6342 if (end === this.value.length) { 6343 val = this.value.slice(0, start - 1); 6344 } 6345 else { 6346 val = this.value.slice(0, start) + this.value.slice(start + 1); 6347 } 6348 6349 // Reset the position. 6350 this.value = val; 6351 setPos = start; 6352 } 6353 6354 // If we need to re-position the characters. 6355 if (setPos !== false) { 6356 //console.log('Setpos keydown: ', setPos ); 6357 setSelectionRange.apply(this, [setPos, setPos]); 6358 } 6359 6360 // Store the data on the element. 6361 $this.data('numFormat', data); 6362 6363 }, 6364 6365 /** 6366 * Handles keyup events, re-formatting numbers. 6367 * 6368 * @param object e : the keyup event object.s 6369 * 6370 * @return void; 6371 */ 6372 'keyup.format': function (e) { 6373 6374 // Store these variables for use below. 6375 var $this = $(this), 6376 data = $this.data('numFormat'), 6377 code = (e.keyCode ? e.keyCode : e.which), 6378 start = getSelection.apply(this, ['start']), 6379 end = getSelection.apply(this, ['end']), 6380 setPos; 6381 6382 //console.log('1 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6383 6384 // Check for negative characters being entered at the start of the string. 6385 // If there's any kind of selection, just ignore the input. 6386 if (start === 0 && end === 0 && (code === 189 || code === 109)) { 6387 $this.val('-' + $this.val()); 6388 6389 start = 1; 6390 data.c = 1 - this.value.length; 6391 data.init = 1; 6392 6393 $this.data('numFormat', data); 6394 6395 setPos = this.value.length + data.c; 6396 setSelectionRange.apply(this, [setPos, setPos]); 6397 //console.log('2 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6398 6399 } 6400 6401 // Stop executing if the user didn't type a number key, a decimal, or a comma. 6402 if (this.value === '' || (code < 48 || code > 57) && (code < 96 || code > 105) && code !== 8 && code !== 46 && code !== 110) return; 6403 6404 // Re-format the textarea. 6405 $this.val($this.val()); 6406 6407 if (decimals > 0) { 6408 // If we haven't marked this item as 'initialized' 6409 // then do so now. It means we should place the caret just 6410 // before the decimal. This will never be un-initialized before 6411 // the decimal character itself is entered. 6412 if (data.init < 1) { 6413 start = this.value.length - decimals - (data.init < 0 ? 1 : 0); 6414 data.c = start - this.value.length; 6415 data.init = 1; 6416 //console.log('3.1 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6417 6418 $this.data('numFormat', data); 6419 } 6420 6421 // Increase the cursor position if the caret is to the right 6422 // of the decimal place, and the character pressed isn't the backspace key. 6423 else if (start > this.value.length - decimals && code != 8) { 6424 data.c++; 6425 6426 // Store the data, now that it's changed. 6427 $this.data('numFormat', data); 6428 //console.log('3.2 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6429 } 6430 6431 } 6432 6433 // Move caret to the right after delete key pressed 6434 if (code == 46 && !data.isPartialSelection) { 6435 data.c++; 6436 6437 // Store the data, now that it's changed. 6438 $this.data('numFormat', data); 6439 //console.log('4 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6440 6441 } 6442 6443 //console.log('10 Setting pos start: ' + start + " decimals " + decimals + " lengthData " + this.value.length + data.c + " length " + this.value.length + " data.c " + data.c); 6444 var length = this.value.length; 6445 var c = data.c; 6446 if (data.c == 1) 6447 { 6448 c = start - length; 6449 } 6450 // Set the selection position. 6451 setPos = length + c; 6452 setSelectionRange.apply(this, [setPos, setPos]); 6453 }, 6454 6455 /** 6456 * Reformat when pasting into the field. 6457 * 6458 * @param object e : jQuery event object. 6459 * 6460 * @return false : prevent default action. 6461 */ 6462 'paste.format': function (e) { 6463 6464 // Defint $this. It's used twice!. 6465 var $this = $(this), 6466 original = e.originalEvent, 6467 val = null; 6468 6469 // Get the text content stream. 6470 if (window.clipboardData && window.clipboardData.getData) { // IE 6471 val = window.clipboardData.getData('Text'); 6472 } else if (original.clipboardData && original.clipboardData.getData) { 6473 val = original.clipboardData.getData('text/plain'); 6474 } 6475 6476 // Do the reformat operation. 6477 $this.val(val); 6478 6479 // Stop the actual content from being pasted. 6480 e.preventDefault(); 6481 return false; 6482 } 6483 6484 }) 6485 6486 // Loop each element (which isn't blank) and do the format. 6487 .each(function () { 6488 6489 var $this = $(this).data('numFormat', { 6490 c: -(decimals + 1), 6491 decimals: decimals, 6492 thousands_sep: thousands_sep, 6493 dec_point: dec_point, 6494 regex_dec_num: regex_dec_num, 6495 regex_dec: regex_dec, 6496 init: this.value.indexOf('.') ? true : false 6497 }); 6498 6499 // Return if the element is empty. 6500 if (this.value === '') return; 6501 6502 // Otherwise... format!! 6503 $this.val($this.val()); 6504 }); 6505 } 6506 else { 6507 // return the collection. 6508 return this.each(function () { 6509 var $this = $(this), num = +$this.text().replace(regex_dec_num, '').replace(regex_dec, '.'); 6510 $this.number(!isFinite(num) ? 0 : +num, decimals, dec_point, thousands_sep); 6511 }); 6512 } 6513 } 6514 6515 // Add this number to the element as text. 6516 return this.text($.number.apply(window, arguments)); 6517 }; 6518 6519 // 6520 // Create .val() hooks to get and set formatted numbers in inputs. 6521 // 6522 6523 // We check if any hooks already exist, and cache 6524 // them in case we need to re-use them later on. 6525 var origHookGet = null, origHookSet = null; 6526 6527 // Check if a text valHook already exists. 6528 if ($.isPlainObject($.valHooks.text)) { 6529 // Preserve the original valhook function 6530 // we'll call this for values we're not 6531 // explicitly handling. 6532 if ($.isFunction($.valHooks.text.get)) origHookGet = $.valHooks.text.get; 6533 if ($.isFunction($.valHooks.text.set)) origHookSet = $.valHooks.text.set; 6534 } 6535 else { 6536 // Define an object for the new valhook. 6537 $.valHooks.text = {}; 6538 } 6539 6540 /** 6541 * Define the valHook to return normalised field data against an input 6542 * which has been tagged by the number formatter. 6543 * 6544 * @param object el : The raw DOM element that we're getting the value from. 6545 * 6546 * @return mixed : Returns the value that was written to the element as a 6547 * javascript number, or undefined to let jQuery handle it normally. 6548 */ 6549 $.valHooks.text.get = function (el) { 6550 6551 // Get the element, and its data. 6552 var $this = $(el), num, negative, 6553 data = $this.data('numFormat'); 6554 6555 // Does this element have our data field? 6556 if (!data) { 6557 // Check if the valhook function already existed 6558 if ($.isFunction(origHookGet)) { 6559 // There was, so go ahead and call it 6560 return origHookGet(el); 6561 } 6562 else { 6563 // No previous function, return undefined to have jQuery 6564 // take care of retrieving the value 6565 return undefined; 6566 } 6567 } 6568 else { 6569 // Remove formatting, and return as number. 6570 if (el.value === '') return ''; 6571 6572 6573 // Convert to a number. 6574 num = +(el.value 6575 .replace(data.regex_dec_num, '') 6576 .replace(data.regex_dec, '.')); 6577 6578 // If we've got a finite number, return it. 6579 // Otherwise, simply return 0.
6580 // Return as a string... thats what we're 6581 // used to with .val() 6582 return (el.value.indexOf('-') === 0 ? '-' : '') + (isFinite(num) ? num : 0); 6583 } 6584 }; 6585 6586 /** 6587 * A valhook which formats a number when run against an input 6588 * which has been tagged by the number formatter. 6589 * 6590 * @param object el : The raw DOM element (input element). 6591 * @param float : The number to set into the value field. 6592 * 6593 * @return mixed : Returns the value that was written to the element, 6594 * or undefined to let jQuery handle it normally. 6595 */ 6596 $.valHooks.text.set = function (el, val) { 6597 // Get the element, and its data. 6598 var $this = $(el), 6599 data = $this.data('numFormat'); 6600 6601 // Does this element have our data field? 6602 if (!data) { 6603 6604 // Check if the valhook function already exists 6605 if ($.isFunction(origHookSet)) { 6606 // There was, so go ahead and call it 6607 return origHookSet(el, val); 6608 } 6609 else { 6610 // No previous function, return undefined to have jQuery 6611 // take care of retrieving the value 6612 return undefined; 6613 } 6614 } 6615 else { 6616 var num = $.number(val, data.decimals, data.dec_point, data.thousands_sep); 6617 6618 // Make sure empties are set with correct signs. 6619 // if(val.indexOf('-') === 0 && +num === 0) 6620 // { 6621 // num = '-'+num; 6622 // } 6623 6624 return $.isFunction(origHookSet) ? origHookSet(el, num) : el.value = num; 6625 } 6626 }; 6627 6628 /** 6629 * The (modified) excellent number formatting method from PHPJS.org. 6630 * http://phpjs.org/functions/number_format/ 6631 * 6632 * @modified by Sam Sehnert (teamdf.com) 6633 * - don't redefine dec_point, thousands_sep... just overwrite with defaults. 6634 * - don't redefine decimals, just overwrite as numeric. 6635 * - Generate regex for normalizing pre-formatted numbers. 6636 * 6637 * @param float number : The number you wish to format, or TRUE to use the text contents 6638 * of the element as the number. Please note that this won't work for 6639 * elements which have child nodes with text content. 6640 * @param int decimals : The number of decimal places that should be displayed. Defaults to 0. 6641 * @param string dec_point : The character to use as a decimal point. Defaults to '.'. 6642 * @param string thousands_sep : The character to use as a thousands separator. Defaults to ','. 6643 * 6644 * @return string : The formatted number as a string. 6645 */ 6646 $.number = function (number, decimals, dec_point, thousands_sep) { 6647 // Set the default values here, instead so we can use them in the replace below. 6648 thousands_sep = (typeof thousands_sep === 'undefined') ? (new Number(1000).toLocaleString() !== '1000' ? new Number(1000).toLocaleString().charAt(1) : '') : thousands_sep; 6649 dec_point = (typeof dec_point === 'undefined') ? new Number(0.1).toLocaleString().charAt(1) : dec_point; 6650 decimals = !isFinite(+decimals) ? 0 : Math.abs(decimals); 6651 6652 // Work out the unicode representation for the decimal place and thousand sep. 6653 var u_dec = ('\\u' + ('0000' + (dec_point.charCodeAt(0).toString(16))).slice(-4)); 6654 var u_sep = ('\\u' + ('0000' + (thousands_sep.charCodeAt(0).toString(16))).slice(-4)); 6655 6656 // Fix the number, so that it's an actual number. 6657 number = (number + '') 6658 .replace('\.', dec_point) // because the number if passed in as a float (having . as decimal point per definition) we need to replace this with the passed in decimal point character 6659 .replace(new RegExp(u_sep, 'g'), '') 6660 .replace(new RegExp(u_dec, 'g'), '.') 6661 .replace(new RegExp('[^0-9+\-Ee.]', 'g'), ''); 6662 6663 var n = !isFinite(+number) ? 0 : +number, 6664 s = '', 6665 toFixedFix = function (n, decimals) { 6666 return '' + (+(Math.round(n + 'e+' + decimals) + 'e-' + decimals)); 6667 }; 6668 6669 // Fix for IE parseFloat(0.55).toFixed(0) = 0; 6670 s = (decimals ? toFixedFix(n, decimals) : '' + Math.round(n)).split('.'); 6671 if (s[0].length > 3) { 6672 s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, thousands_sep); 6673 } 6674 if ((s[1] || '').length < decimals) { 6675 s[1] = s[1] || ''; 6676 s[1] += new Array(decimals - s[1].length + 1).join('0'); 6677 } 6678 return s.join(dec_point); 6679 } 6680 6681})(jQuery); 6682; 6683if("undefined"==typeof jQuery)throw new Error("BootstrapValidator's JavaScript requires jQuery");!function(a){var b=function(b,c){this.$form=a(b),this.options=a.extend({},a.fn.bootstrapValidator.DEFAULT_OPTIONS,c),this.$invalidFields=a([]),this.$submitButton=null,this.$hiddenButton=null,this.STATUS_NOT_VALIDATED="NOT_VALIDATED",this.STATUS_VALIDATING="VALIDATING",this.STATUS_INVALID="INVALID",this.STATUS_VALID="VALID";var d=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="<!--[if gt IE "+ ++a+"]><br><![endif]-->",c[0];);return a>4?a:!a}(),e=document.createElement("div");this._changeEvent=9!==d&&"oninput"in e?"input":"keyup",this._submitIfValid=null,this._cacheFields={},this._init()};b.prototype={constructor:b,_init:function(){var b=this,c={container:this.$form.attr("data-bv-container"),events:{formInit:this.$form.attr("data-bv-events-form-init"),formError:this.$form.attr("data-bv-events-form-error"),formSuccess:this.$form.attr("data-bv-events-form-success"),fieldAdded:this.$form.attr("data-bv-events-field-added"),fieldRemoved:this.$form.attr("data-bv-events-field-removed"),fieldInit:this.$form.attr("data-bv-events-field-init"),fieldError:this.$form.attr("data-bv-events-field-error"),fieldSuccess:this.$form.attr("data-bv-events-field-success"),fieldStatus:this.$form.attr("data-bv-events-field-status"),validatorError:this.$form.attr("data-bv-events-vali
6683dator-error"),validatorSuccess:this.$form.attr("data-bv-events-validator-success")},excluded:this.$form.attr("data-bv-excluded"),feedbackIcons:{valid:this.$form.attr("data-bv-feedbackicons-valid"),invalid:this.$form.attr("data-bv-feedbackicons-invalid"),validating:this.$form.attr("data-bv-feedbackicons-validating")},group:this.$form.attr("data-bv-group"),live:this.$form.attr("data-bv-live"),message:this.$form.attr("data-bv-message"),onError:this.$form.attr("data-bv-onerror"),onSuccess:this.$form.attr("data-bv-onsuccess"),submitButtons:this.$form.attr("data-bv-submitbuttons"),threshold:this.$form.attr("data-bv-threshold"),trigger:this.$form.attr("data-bv-trigger"),verbose:this.$form.attr("data-bv-verbose"),fields:{}};this.$form.attr("novalidate","novalidate").addClass(this.options.elementClass).on("submit.bv",function(a){a.preventDefault(),b.validate()}).on("click.bv",this.options.submitButtons,function(){b.$submitButton=a(this),b._submitIfValid=!0}).find("[name], [data-bv-field]").each(function(){var d=a(this),e=d.attr("name")||d.attr("data-bv-field"),f=b._parseOptions(d);f&&(d.attr("data-bv-field",e),c.fields[e]=a.extend({},f,c.fields[e]))}),this.options=a.extend(!0,this.options,c),this.$hiddenButton=a("<button/>").attr("type","submit").prependTo(this.$form).addClass("bv-hidden-submit").css({display:"none",width:0,height:0}),this.$form.on("click.bv",'[type="submit"]',function(c){if(!c.isDefaultPrevented()){var d=a(c.target),e=d.is('[type="submit"]')?d.eq(0):d.parent('[type="submit"]').eq(0);!b.options.submitButtons||e.is(b.options.submitButtons)||e.is(b.$hiddenButton)||b.$form.off("submit.bv").submit()}});for(var d in this.options.fields)this._initField(d);this.$form.trigger(a.Event(this.options.events.formInit),{bv:this,options:this.options}),this.options.onSuccess&&this.$form.on(this.options.events.formSuccess,function(c){a.fn.bootstrapValidator.helpers.call(b.options.onSuccess,[c])}),this.options.onError&&this.$form.on(this.options.events.formError,function(c){a.fn.bootstrapValidator.helpers.call(b.options.onError,[c])})},_parseOptions:function(b){var c,d,e,f,g,h,i,j=b.attr("name")||b.attr("data-bv-field"),k={};for(d in a.fn.bootstrapValidator.validators)if(c=a.fn.bootstrapValidator.validators[d],e=b.attr("data-bv-"+d.toLowerCase())+"",i="function"==typeof c.enableByHtml5?c.enableByHtml5(b):null,i&&"false"!==e||i!==!0&&(""===e||"true"===e)){c.html5Attributes=a.extend({},{message:"message",onerror:"onError",onsuccess:"onSuccess"},c.html5Attributes),k[d]=a.extend({},i===!0?{}:i,k[d]);for(h in c.html5Attributes)f=c.html5Attributes[h],g=b.attr("data-bv-"+d.toLowerCase()+"-"+h),g&&("true"===g?g=!0:"false"===g&&(g=!1),k[d][f]=g)}var l={container:b.attr("data-bv-container"),excluded:b.attr("data-bv-excluded"),feedbackIcons:b.attr("data-bv-feedbackicons"),group:b.attr("data-bv-group"),message:b.attr("data-bv-message"),onError:b.attr("data-bv-onerror"),onStatus:b.attr("data-bv-onstatus"),onSuccess:b.attr("data-bv-onsuccess"),selector:b.attr("data-bv-selector"),threshold:b.attr("data-bv-threshold"),trigger:b.attr("data-bv-trigger"),verbose:b.attr("data-bv-verbose"),validators:k},m=a.isEmptyObject(l),n=a.isEmptyObject(k);return!n||!m&&this.options.fields&&this.options.fields[j]?(l.validators=k,l):null},_initField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b),c.attr("data-bv-field",b)}if(0!==c.length&&null!==this.options.fields[b]&&null!==this.options.fields[b].validators){var d;for(d in this.options.fields[b].validators)a.fn.bootstrapValidator.validators[d]||delete this.options.fields[b].validators[d];null===this.options.fields[b].enabled&&(this.options.fields[b].enabled=!0);for(var e=this,f=c.length,g=c.attr("type"),h=1===f||"radio"===g||"checkbox"===g,i="radio"===g||"checkbox"===g||"file"===g||"SELECT"===c.eq(0).get(0).tagName?"change":this._changeEvent,j=(this.options.fields[b].trigger||this.options.trigger||i).split(" "),k=a.map(j,function(a){return a+".update.bv"}).join(" "),l=0;f>l;l++){var m=c.eq(l),n=this.options.fields[b].group||this.options.group,o=m.parents(n),p="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,m,this):this.options.fields[b].container||this.options.container,q=p&&"tooltip"!==p&&"popover"!==p?a(p):this._getMessageContainer(m,n);p&&"tooltip"!==p&&"popover"!==p&&q.addClass("has-error"),q.find('.help-block[data-bv-validator][data-bv-for="'+b+'"]').remove(),o.find('i[data-bv-icon-for="'+b+'"]').remove(),m.off(k).on(k,function(){e.updateStatus(a(this),e.STATUS_NOT_VALIDATED)}),m.data("bv.messages",q);for(d in this.options.fields[b].validators)m.data("bv.result."+d,this.STATUS_NOT_VALIDATED),h&&l!==f-1||a("<small/>").css("display","none").addClass("help-block").attr("data-bv-validator",d).attr("data-bv-for",b).attr("data-bv-result",this.STATUS_NOT_VALIDATED).html(this._getMessage(b,d)).appendTo(q),"function"==typeof a.fn.bootstrapValidator.validators[d].init&&a.fn.bootstrapValidator.validators[d].init(this,m,this.options.fields[b].validators[d]);if(this.options.fields[b].feedbackIcons!==!1&&"false"!==this.options.fields[b].feedbackIcons&&this.options.feedbackIcons&&this.options.feedbackIcons.validating&&this.options.feedbackIcons.invalid&&this.options.feedbackIcons.valid&&(!h||l===f-1)){o.addClass("has-feedback");var r=a("<i/>").css("display","none").addClass("form-control-feedback").attr("data-bv-icon-for",b).insertAfter(m);if("checkbox"===g||"radio"===g){var s=m.parent();s.hasClass(g)?r.insertAfter(s):s.parent().hasClass(g)&&r.insertAfter(s.parent())}0===o.find("label").length&&r.addClass("bv-no-label"),0!==o.find(".input-group").length&&r.addClass("bv-icon-input-group").insertAfter(o.find(".input-group").eq(0)),p&&m.off("focus.bv").on("focus.bv",function(){switch(p){case"tooltip":r.tooltip("show");break;case"popover":r.popover("show")}}).off("blur.bv").on("blur.bv",function(){switch(p){case"tooltip":r.tooltip("hide");break;case"popover":r.popover("hide")}})}}switch(c.on(this.options.events.fieldSuccess,function(b,c){var d=e.getOptions(c.field,null,"onSuccess");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.fieldError,function(b,c){var d=e.getOptions(c.field,null,"onError");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.fieldStatus,function(b,c){var d=e.getOptions(c.field,null,"onStatus");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.validatorError,function(b,c){var d=e.getOptions(c.field,c.validator,"onError");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.validatorSuccess,function(b,c){var d=e.getOptions(c.field,c.validator,"onSuccess");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}),k=a.map(j,function(a){return a+".live.bv"}).join(" "),this.options.live){case"submitted":break;case"disabled":c.off(k);break;case"enabled":default:c.off(k).on(k,function(){e._exceedThreshold(a(this))&&e.validateField(a(this))})}c.trigger(a.Event(this.options.events.fieldInit),{bv:this,field:b,element:c})}},_getMessage:function(b,c){if(!(this.options.fields[b]&&a.fn.bootstrapValidator.validators[c]&&this.options.fields[b].validators&&this.options.fields[b].validators[c]))return"";var d=this.options.fields[b].validators[c];switch(!0){case!!d.message:return d.message;case!!this.options.fields[b].message:return this.options.fields[b].message;case!!a.fn.bootstrapValidator.i18n[c]:return a.fn.bootstrapValidator.i18n[c]["default"];default:return this.options.message}},_getMessageContainer:function(a,b){var c=a.parent();if(c.is(b))return c;var d=c.attr("class");if(!d)return this._getMessageContainer(c,b);d=d.split(" ");for(var e=d.length,f=0;e>f;f++)if(/^col-(xs|sm|md|lg)-\d+$/.test(d[f])||/^col-(xs|sm|md|lg)-offset-\d+$/.test(d[f]))return c;return this._getMessageContainer(c,b)},_submit:function(){var b=this.isValid(),c=b?this.options.events.formSuccess:this.options.events.formError,d=a.Event(c);this.$form.trigger(d),this.$submitButton&&(b?this._onSuccess(d):this._onError(d))},_isExcluded:function(b){var c=b.attr("data-bv-excluded"),d=b.attr("data-bv-field")||b.attr("name");switch(!0){case!!d&&this.options.fields&&this.options.fields[d]&&("true"===this.options.fields[d].excluded||this.options.fields[d].excluded===!0):case"true"===c:case""===c:return!0;case!!d&&this.options.fields&&this.options.fields[d]&&("false"===this.options.fields[d].excluded||this.options.fields[d].excluded===!1):case"false"===c:return!1;default:if(this.options.excluded){"string"==typeof this.options.excluded&&(this.options.excluded=a.map(this.options.excluded.split(","),function(b){return a.trim(b)}));for(var e=this.options.excluded.length,f=0;e>f;f++)if("string"==typeof this.options.excluded[f]&&b.is(this.options.excluded[f])||"function"==typeof this.options.excluded[f]&&this.options.excluded[f].call(this,b,this)===!0)return!0}return!1}},_exceedThreshold:function(b){var c=b.attr("data-bv-field"),d=this.options.fields[c].threshold||this.options.threshold;if(!d)return!0;var e=-1!==a.inArray(b.attr("type"),["button","checkbox","file","hidden","image","radio","reset","submit"]);return e||b.val().length>=d}
6683,_onError:function(b){if(!b.isDefaultPrevented()){if("submitted"===this.options.live){this.options.live="enabled";var c=this;for(var d in this.options.fields)!function(b){var e=c.getFieldElements(b);if(e.length){var f=a(e[0]).attr("type"),g="radio"===f||"checkbox"===f||"file"===f||"SELECT"===a(e[0]).get(0).tagName?"change":c._changeEvent,h=c.options.fields[d].trigger||c.options.trigger||g,i=a.map(h.split(" "),function(a){return a+".live.bv"}).join(" ");e.off(i).on(i,function(){c._exceedThreshold(a(this))&&c.validateField(a(this))})}}(d)}var e=this.$invalidFields.eq(0);if(e){var f,g=e.parents(".tab-pane");g&&(f=g.attr("id"))&&a('a[href="#'+f+'"][data-toggle="tab"]').tab("show"),e.focus()}}},_onSuccess:function(a){a.isDefaultPrevented()||this.disableSubmitButtons(!0).defaultSubmit()},_onFieldValidated:function(b,c){var d=b.attr("data-bv-field"),e=this.options.fields[d].validators,f={},g=0,h={bv:this,field:d,element:b,validator:c,result:b.data("bv.response."+c)};if(c)switch(b.data("bv.result."+c)){case this.STATUS_INVALID:b.trigger(a.Event(this.options.events.validatorError),h);break;case this.STATUS_VALID:b.trigger(a.Event(this.options.events.validatorSuccess),h)}f[this.STATUS_NOT_VALIDATED]=0,f[this.STATUS_VALIDATING]=0,f[this.STATUS_INVALID]=0,f[this.STATUS_VALID]=0;for(var i in e)if(e[i].enabled!==!1){g++;var j=b.data("bv.result."+i);j&&f[j]++}f[this.STATUS_VALID]===g?(this.$invalidFields=this.$invalidFields.not(b),b.trigger(a.Event(this.options.events.fieldSuccess),h)):0===f[this.STATUS_NOT_VALIDATED]&&0===f[this.STATUS_VALIDATING]&&f[this.STATUS_INVALID]>0&&(this.$invalidFields=this.$invalidFields.add(b),b.trigger(a.Event(this.options.events.fieldError),h))},getFieldElements:function(b){return this._cacheFields[b]||(this._cacheFields[b]=this.options.fields[b]&&this.options.fields[b].selector?a(this.options.fields[b].selector):this.$form.find('[name="'+b+'"]')),this._cacheFields[b]},getOptions:function(a,b,c){if(!a)return this.options;if("object"==typeof a&&(a=a.attr("data-bv-field")),!this.options.fields[a])return null;var d=this.options.fields[a];return b?d.validators&&d.validators[b]?c?d.validators[b][c]:d.validators[b]:null:c?d[c]:d},disableSubmitButtons:function(a){return a?"disabled"!==this.options.live&&this.$form.find(this.options.submitButtons).attr("disabled","disabled"):this.$form.find(this.options.submitButtons).removeAttr("disabled"),this},validate:function(){if(!this.options.fields)return this;this.disableSubmitButtons(!0);for(var a in this.options.fields)this.validateField(a);return this._submit(),this},validateField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b)}if(0===c.length||this.options.fields[b]&&this.options.fields[b].enabled===!1)return this;for(var d,e,f=this,g=c.attr("type"),h="radio"===g||"checkbox"===g?1:c.length,i="radio"===g||"checkbox"===g,j=this.options.fields[b].validators,k="true"===this.options.fields[b].verbose||this.options.fields[b].verbose===!0||"true"===this.options.verbose||this.options.verbose===!0,l=0;h>l;l++){var m=c.eq(l);if(!this._isExcluded(m)){var n=!1;for(d in j){if(m.data("bv.dfs."+d)&&m.data("bv.dfs."+d).reject(),n)break;var o=m.data("bv.result."+d);if(o!==this.STATUS_VALID&&o!==this.STATUS_INVALID)if(j[d].enabled!==!1){if(m.data("bv.result."+d,this.STATUS_VALIDATING),e=a.fn.bootstrapValidator.validators[d].validate(this,m,j[d]),"object"==typeof e&&e.resolve)this.updateStatus(i?b:m,this.STATUS_VALIDATING,d),m.data("bv.dfs."+d,e),e.done(function(a,b,c){a.removeData("bv.dfs."+b).data("bv.response."+b,c),c.message&&f.updateMessage(a,b,c.message),f.updateStatus(i?a.attr("data-bv-field"):a,c.valid?f.STATUS_VALID:f.STATUS_INVALID,b),c.valid&&f._submitIfValid===!0?f._submit():c.valid||k||(n=!0)});else if("object"==typeof e&&void 0!==e.valid&&void 0!==e.message){if(m.data("bv.response."+d,e),this.updateMessage(i?b:m,d,e.message),this.updateStatus(i?b:m,e.valid?this.STATUS_VALID:this.STATUS_INVALID,d),!e.valid&&!k)break}else if("boolean"==typeof e&&(m.data("bv.response."+d,e),this.updateStatus(i?b:m,e?this.STATUS_VALID:this.STATUS_INVALID,d),!e&&!k))break}else this.updateStatus(i?b:m,this.STATUS_VALID,d);else this._onFieldValidated(m,d)}}}return this},updateMessage:function(b,c,d){var e=a([]);switch(typeof b){case"object":e=b,b=b.attr("data-bv-field");break;case"string":e=this.getFieldElements(b)}e.each(function(){a(this).data("bv.messages").find('.help-block[data-bv-validator="'+c+'"][data-bv-for="'+b+'"]').html(d)})},updateStatus:function(b,c,d){var e=a([]);switch(typeof b){case"object":e=b,b=b.attr("data-bv-field");break;case"string":e=this.getFieldElements(b)}c===this.STATUS_NOT_VALIDATED&&(this._submitIfValid=!1);for(var f=this,g=e.attr("type"),h=this.options.fields[b].group||this.options.group,i="radio"===g||"checkbox"===g?1:e.length,j=0;i>j;j++){var k=e.eq(j);if(!this._isExcluded(k)){var l=k.parents(h),m=k.data("bv.messages"),n=m.find('.help-block[data-bv-validator][data-bv-for="'+b+'"]'),o=d?n.filter('[data-bv-validator="'+d+'"]'):n,p=l.find('.form-control-feedback[data-bv-icon-for="'+b+'"]'),q="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,k,this):this.options.fields[b].container||this.options.container,r=null;if(d)k.data("bv.result."+d,c);else for(var s in this.options.fields[b].validators)k.data("bv.result."+s,c);o.attr("data-bv-result",c);var t,u,v=k.parents(".tab-pane");switch(v&&(t=v.attr("id"))&&(u=a('a[href="#'+t+'"][data-toggle="tab"]').parent()),c){case this.STATUS_VALIDATING:r=null,this.disableSubmitButtons(!0),l.removeClass("has-success").removeClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).addClass(this.options.feedbackIcons.validating).show(),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error");break;case this.STATUS_INVALID:r=!1,this.disableSubmitButtons(!0),l.removeClass("has-success").addClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.validating).addClass(this.options.feedbackIcons.invalid).show(),u&&u.removeClass("bv-tab-success").addClass("bv-tab-error");break;case this.STATUS_VALID:r=0===n.filter('[data-bv-result="'+this.STATUS_NOT_VALIDATED+'"]').length?n.filter('[data-bv-result="'+this.STATUS_VALID+'"]').length===n.length:null,null!==r&&(this.disableSubmitButtons(this.$submitButton?!this.isValid():!r),p&&p.removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).removeClass(this.options.feedbackIcons.valid).addClass(r?this.options.feedbackIcons.valid:this.options.feedbackIcons.invalid).show()),l.removeClass("has-error has-success").addClass(this.isValidContainer(l)?"has-success":"has-error"),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error").addClass(this.isValidContainer(v)?"bv-tab-success":"bv-tab-error");break;case this.STATUS_NOT_VALIDATED:default:r=null,this.disableSubmitButtons(!1),l.removeClass("has-success").removeClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).hide(),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error")}switch(!0){case p&&"tooltip"===q:r===!1?p.css("cursor","pointer").tooltip("destroy").tooltip({container:"body",html:!0,placement:"top",title:n.filter('[data-bv-result="'+f.STATUS_INVALID+'"]').eq(0).html()}):p.tooltip("hide");break;case p&&"popover"===q:r===!1?p.css("cursor","pointer").popover("destroy").popover({container:"body",content:n.filter('[data-bv-result="'+f.STATUS_INVALID+'"]').eq(0).html(),html:!0,placement:"top",trigger:"hover click"}):p.popover("hide");break;default:c===this.STATUS_INVALID?o.show():o.hide()}k.trigger(a.Event(this.options.events.fieldStatus),{bv:this,field:b,element:k,status:c}),this._onFieldValidated(k,d)}}return this},isValid:function(){for(var a in this.options.fields)if(!this.isValidField(a))return!1;return!0},isValidField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b)}if(0===c.length||null===this.options.fields[b]||this.options.fields[b].enabled===!1)return!0;for(var d,e,f,g=c.attr("type"),h="radio"===g||"checkbox"===g?1:c.length,i=0;h>i;i++)if(d=c.eq(i),!this._isExcluded(d))for(e in this.options.fields[b].validators)if(this.options.fields[b].validators[e].enabled!==!1&&(f=d.data("bv.result."+e),f!==this.STATUS_VALID))return!1;return!0},isValidContainer:function(b){var c=this,d={},e="string"==typeof b?a(b):b;if(0===e.length)return!0;e.find("[data-bv-field]").each(function(){var b=a(this),e=b.attr("data-bv-field");c._isExcluded(b)||d[e]||(d[e]=b)});for(var f in d){var g=d[f];if(g.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="'+f+'"]').filter('[data-bv-result="'+this.STATUS_INVALID+'"]').length>0)return!1}return!0},defaultSubmit:function(){this.$submitButton&&a("<input/>").attr("type","hidden").attr("data-bv-submit-hidden","").attr("name",this.$submitButton.attr("name")).val(this.$submitButton.val()).appendTo(this.$form),this.$form.off("submit.bv").submit()},getInvalidFields:function(){return this.$invalidFields},getSubmitButton:function(){return this.$submitButton},getMessages:function(b,c){var d=this,e=[],f=a([]);switch(!0){case b&&"object"==typeof b:f=b;break;case b&&"string"==typeof b:var g=this.getFieldElements(b);if(g.length>0){var h=g.attr("type");f="radio"===h||"checkbox"===h?g.eq(0):g}break;default:f=this.$invalidFields}var i=c?'[data-bv-validator="'+c+'"]':"";return f.each(function(){e=e.concat(a(this).data("bv.messages").find('.help-block[data-bv-for="'+a(this).attr("data-bv-field")+'"][data-bv-result="'+d.STATUS_INVALID+'"]'+i).map(function(){var b=a(this).attr("data-bv-validator"),c=a(this).attr("data-bv-for");return d.options.fields[c].validators[b].enabled===!1?"":a(this).html()}).get())}),e},updateOption:function(a,b,c,d){return"object"==typeof a&&(a=a.attr("data-bv-field")),this.options.fields[a]&&this.options.fields[a].validators[b]&&(this.options.fields[a].validators[b][c]=d,this.updateStatus(a,this.STATUS_NOT_VALIDATED,b)),this},addField:function(b,c){var d=a([]);switch(typeof b){case"object":d=b,b=b.attr("data-bv-field")||b.attr("name");break;case"string":delete this._cacheFields[b],d=this.getFieldElements(b)}d.attr("data-bv-field",b);for(var e=d.attr("type"),f="radio"===e||"checkbox"===e?1:d.length,g=0;f>g;g++){var h=d.eq(g),i=this._parseOptions(h);i=null===i?c:a.extend(!0,c,i),this.options.fields[b]=a.extend(!0,this.options.fields[b],i),this._cacheFields[b]=this._cacheFields[b]?this._cacheFields[b].add(h):h,this._initField("checkbox"===e||"radio"===e?b:h)}return this.disableSubmitButtons(!1),this.$form.trigger(a.Event(this.options.events.fieldAdded),{field:b,element:d,options:this.options.fields[b]}),this},removeField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field")||b.attr("name"),c.attr("data-bv-field",b);break;case"string":c=this.getFieldElements(b)}if(0===c.length)return this;for(var d=c.attr("type"),e="radio"===d||"checkbox"===d?1:c.length,f=0;e>f;f++){var g=c.eq(f);this.$invalidFields=this.$invalidFields.not(g),this._cacheFields[b]=this._cacheFields[b].not(g)}return this._cacheFields[b]&&0!==this._cacheFields[b].length||delete this.options.fields[b],("checkbox"===d||"radio"===d)&&this._initField(b),this.disableSubmitButtons(!1),this.$form.trigger(a.Event(this.options.events.fieldRemoved),{field:b,element:c}),this},resetField:function(b,c){var d=a([]);switch(typeof b){case"object":d=b,b=b.attr("data-bv-field");break;case"string":d=this.getFieldElements(b)}var e=d.length;if(this.options.fields[b])for(var f=0;e>f;f++)for(var g in this.options.fields[b].validators)d.eq(f).removeData("bv.dfs."+g);if(this.updateStatus(b,this.STATUS_NOT_VALIDATED),c){var h=d.attr("type");"radio"===h||"checkbox"===h?d.removeAttr("checked").removeAttr("selected"):d.val("")}return this},resetForm:function(b){for(var c in this.options.fields)this.resetField(c,b);return this.$invalidFields=a([]),this.$submitButton=null,this.disableSubmitButtons(!1),this},revalidateField:function(a){return this.updateStatus(a,this.STATUS_NOT_VALIDATED).validateField(a),this},enableFieldValidators:function(a,b,c){var d=this.options.fields[a].validators;if(c&&d&&d[c]&&d[c].enabled!==b)this.options.fields[a].validators[c].enabled=b,this.updateStatus(a,this.STATUS_NOT_VALIDATED,c);else if(!c&&this.options.fields[a].enabled!==b){this.options.fields[a].enabled=b;
6683for(var e in d)this.enableFieldValidators(a,b,e)}return this},getDynamicOption:function(b,c){var d="string"==typeof b?this.getFieldElements(b):b,e=d.val();if("function"==typeof c)return a.fn.bootstrapValidator.helpers.call(c,[e,this,d]);if("string"==typeof c){var f=this.getFieldElements(c);return f.length?f.val():a.fn.bootstrapValidator.helpers.call(c,[e,this,d])||c}return null},destroy:function(){var b,c,d,e,f,g;for(b in this.options.fields){c=this.getFieldElements(b),g=this.options.fields[b].group||this.options.group;for(var h=0;h<c.length;h++){if(d=c.eq(h),d.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="'+b+'"]').remove().end().end().removeData("bv.messages").parents(g).removeClass("has-feedback has-error has-success").end().off(".bv").removeAttr("data-bv-field"),f=d.parents(g).find('i[data-bv-icon-for="'+b+'"]')){var i="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,d,this):this.options.fields[b].container||this.options.container;switch(i){case"tooltip":f.tooltip("destroy").remove();break;case"popover":f.popover("destroy").remove();break;default:f.remove()}}for(e in this.options.fields[b].validators)d.data("bv.dfs."+e)&&d.data("bv.dfs."+e).reject(),d.removeData("bv.result."+e).removeData("bv.response."+e).removeData("bv.dfs."+e),"function"==typeof a.fn.bootstrapValidator.validators[e].destroy&&a.fn.bootstrapValidator.validators[e].destroy(this,d,this.options.fields[b].validators[e])}}this.disableSubmitButtons(!1),this.$hiddenButton.remove(),this.$form.removeClass(this.options.elementClass).off(".bv").removeData("bootstrapValidator").find("[data-bv-submit-hidden]").remove().end().find('[type="submit"]').off("
6683click.bv")}},a.fn.bootstrapValidator=function(c){var d=arguments;return this.each(function(){var e=a(this),f=e.data("bootstrapValidator"),g="object"==typeof c&&c;f||(f=new b(this,g),e.data("bootstrapValidator",f)),"string"==typeof c&&f[c].apply(f,Array.prototype.slice.call(d,1))})},a.fn.bootstrapValidator.DEFAULT_OPTIONS={elementClass:"bv-form",message:"This value is not valid",group:".form-group",container:null,threshold:null,excluded:[":disabled",":hidden",":not(:visible)"],feedbackIcons:{valid:null,invalid:null,validating:null},submitButtons:'[type="submit"]',live:"enabled",fields:null,events:{formInit:"init.form.bv",formError:"error.form.bv",formSuccess:"success.form.bv",fieldAdded:"added.field.bv",fieldRemoved:"removed.field.bv",fieldInit:"init.field.bv",fieldError:"error.field.bv",fieldSuccess:"success.field.bv",fieldStatus:"status.field.bv",validatorError:"error.validator.bv",validatorSuccess:"success.validator.bv"},verbose:!0},a.fn.bootstrapValidator.validators={},a.fn.bootstrapValidator.i18n={},a.fn.bootstrapValidator.Constructor=b,a.fn.bootstrapValidator.helpers={call:function(a,b){if("function"==typeof a)return a.apply(this,b);if("string"==typeof a){"()"===a.substring(a.length-2)&&(a=a.substring(0,a.length-2));for(var c=a.split("."),d=c.pop(),e=window,f=0;f<c.length;f++)e=e[c[f]];return"undefined"==typeof e[d]?null:e[d].apply(this,b)}},format:function(b,c){a.isArray(c)||(c=[c]);for(var d in c)b=b.replace("%s",c[d]);return b},date:function(a,b,c,d){if(isNaN(a)||isNaN(b)||isNaN(c))return!1;if(c.length>2||b.length>2||a.length>4)return!1;if(c=parseInt(c,10),b=parseInt(b,10),a=parseInt(a,10),1e3>a||a>9999||0>=b||b>12)return!1;var e=[31,28,31,30,31,30,31,31,30,31,30,31];if((a%400===0||a%100!==0&&a%4===0)&&(e[1]=29),0>=c||c>e[b-1])return!1;if(d===!0){var f=new Date,g=f.getFullYear(),h=f.getMonth(),i=f.getDate();return g>a||a===g&&h>b-1||a===g&&b-1===h&&i>c}return!0},luhn:function(a){for(var b=a.length,c=0,d=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],e=0;b--;)e+=d[c][parseInt(a.charAt(b),10)],c^=1;return e%10===0&&e>0},mod11And10:function(a){for(var b=5,c=a.length,d=0;c>d;d++)b=(2*(b||10)%11+parseInt(a.charAt(d),10))%10;return 1===b},mod37And36:function(a,b){b=b||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";for(var c=b.length,d=a.length,e=Math.floor(c/2),f=0;d>f;f++)e=(2*(e||c)%(c+1)+b.indexOf(a.charAt(f)))%c;return 1===e}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.base64=a.extend(a.fn.bootstrapValidator.i18n.base64||{},{"default":"Please enter a valid base 64 encoded"}),a.fn.bootstrapValidator.validators.base64={validate:function(a,b){var c=b.val();return""===c?!0:/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.between=a.extend(a.fn.bootstrapValidator.i18n.between||{},{"default":"Please enter a value between %s and %s",notInclusive:"Please enter a value between %s and %s strictly"}),a.fn.bootstrapValidator.validators.between={html5Attributes:{message:"message",min:"min",max:"max",inclusive:"inclusive"},enableByHtml5:function(a){return"range"===a.attr("type")?{min:a.attr("min"),max:a.attr("max")}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(!a.isNumeric(e))return!1;var f=a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min),g=a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:e>=f&&g>=e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.between["default"],[f,g])}:{valid:e>f&&g>e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.between.notInclusive,[f,g])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.validators.blank={validate:function(){return!0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.callback=a.extend(a.fn.bootstrapValidator.i18n.callback||{},{"default":"Please enter a valid value"}),a.fn.bootstrapValidator.validators.callback={html5Attributes:{message:"message",callback:"callback"},validate:function(b,c,d){var e=c.val(),f=new a.Deferred,g={valid:!0};if(d.callback){var h=a.fn.bootstrapValidator.helpers.call(d.callback,[e,b,c]);g="boolean"==typeof h?{valid:h}:h}return f.resolve(c,"callback",g),f}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.choice=a.extend(a.fn.bootstrapValidator.i18n.choice||{},{"default":"Please enter a valid value",less:"Please choose %s options at minimum",more:"Please choose %s options at maximum",between:"Please choose %s - %s options"}),a.fn.bootstrapValidator.validators.choice={html5Attributes:{message:"message",min:"min",max:"max"},validate:function(b,c,d){var e=c.is("select")?b.getFieldElements(c.attr("data-bv-field")).find("option").filter(":selected").length:b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length,f=d.min?a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min):null,g=d.max?a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max):null,h=!0,i=d.message||a.fn.bootstrapValidator.i18n.choice["default"];switch((f&&e<parseInt(f,10)||g&&e>parseInt(g,10))&&(h=!1),!0){case!!f&&!!g:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.between,[parseInt(f,10),parseInt(g,10)]);break;case!!f:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.less,parseInt(f,10));break;case!!g:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.more,parseInt(g,10))}return{valid:h,message:i}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.creditCard=a.extend(a.fn.bootstrapValidator.i18n.creditCard||{},{"default":"Please enter a valid credit card number"}),a.fn.bootstrapValidator.validators.creditCard={validate:function(b,c){var d=c.val();if(""===d)return!0;
vendor: 6,135 bytes, lines 6683-6684
6683if(/[^0-9-\s]+/.test(d))return!1;if(d=d.replace(/\D/g,""),!a.fn.bootstrapValidator.helpers.luhn(d))return!1;var e,f,g={AMERICAN_EXPRESS:{length:[15],prefix:["34","37"]},DINERS_CLUB:{length:[14],prefix:["300","301","302","303","304","305","36"]},DINERS_CLUB_US:{length:[16],prefix:["54","55"]},DISCOVER:{length:[16],prefix:["6011","622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925","644","645","646","647","648","649","65"]},JCB:{length:[16],prefix:["3528","3529","353","354","355","356","357","358"]},LASER:{length:[16,17,18,19],prefix:["6304","6706","6771","6709"]},MAESTRO:{length:[12,13,14,15,16,17,18,19],prefix:["5018","5020","5038","6304","6759","6761","6762","6763","6764","6765","6766"]},MASTERCARD:{length:[16],prefix:["51","52","53","54","55"]},SOLO:{length:[16,18,19],prefix:["6334","6767"]},UNIONPAY:{length:[16,17,18,19],prefix:["622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925"]},VISA:{length:[16],prefix:["4"]}}; 6684for(e in g)for(f in g[e].prefix)if(d.substr(0,g[e].prefix[f].length)===g[e].prefix[f]&&-1!==a.inArray(d.length,g[e].length))return!0;return!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.cusip=a.extend(a.fn.bootstrapValidator.i18n.cusip||{},{"default":"Please enter a valid CUSIP number"}),a.fn.bootstrapValidator.validators.cusip={validate:function(b,c){var d=c.val();if(""===d)return!0;if(d=d.toUpperCase(),!/^[0-9A-Z]{9}$/.test(d))return!1;for(var e=a.map(d.split(""),function(a){var b=a.charCodeAt(0);return b>="A".charCodeAt(0)&&b<="Z".charCodeAt(0)?b-"A".charCodeAt(0)+10:a}),f=e.length,g=0,h=0;f-1>h;h++){var i=parseInt(e[h],10);h%2!==0&&(i*=2),i>9&&(i-=9),g+=i}return g=(10-g%10)%10,g===e[f-1]}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.cvv=a.extend(a.fn.bootstrapValidator.i18n.cvv||{},{"default":"Please enter a valid CVV number"}),a.fn.bootstrapValidator.validators.cvv={html5Attributes:{message:"message",ccfield:"creditCardField"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(!/^[0-9]{3,4}$/.test(e))return!1;if(!d.creditCardField)return!0;var f=b.getFieldElements(d.creditCardField).val();if(""===f)return!0;f=f.replace(/\D/g,"");var g,h,i={AMERICAN_EXPRESS:{length:[15],prefix:["34","37"]},DINERS_CLUB:{length:[14],prefix:["300","301","302","303","304","305","36"]},DINERS_CLUB_US:{length:[16],prefix:["54","55"]},DISCOVER:{length:[16],prefix:["6011","622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925","644","645","646","647","648","649","65"]},JCB:{length:[16],prefix:["3528","3529","353","354","355","356","357","358"]},LASER:{length:[16,17,18,19],prefix:["6304","6706","6771","6709"]},MAESTRO:{length:[12,13,14,15,16,17,18,19],prefix:["5018","5020","5038","6304","6759","6761","6762","6763","6764","6765","6766"]},MASTERCARD:{length:[16],prefix:["51","52","53","54","55"]},SOLO:{length:[16,18,19],prefix:["6334","6767"]},UNIONPAY:{length:[16,17,18,19],prefix:["622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925"]},VISA:{length:[16],prefix:["4"]}},j=null;for(g in i)for(h in i[g].prefix)if(f.substr(0,i[g].prefix[h].length)===i[g].prefix[h]&&-1!==a.inArray(f.length,i[g].length)){j=g;break}return null===j?!1:"AMERICAN_EXPRESS"===j?4===e.length:3===e.length}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.date=a.extend(a.fn.bootstrapValidator.i18n.date||{},{"default":"Please enter a valid date"}),a.fn.bootstrapValidator.validators.date={html5Attributes:{message:"message",format:"format",separator:"separator"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;d.format=d.format||"MM/DD/YYYY","date"===c.attr("type")&&(d.format="YYYY-MM-DD");var f=d.format.split(" "),g=f[0],h=f.length>1?f[1]:null,i=f.length>2?f[2]:null,j=e.split(" "),k=j[0],l=j.length>1?j[1]:null;if(f.length!==j.length)return!1;var m=d.separator;if(m||(m=-1!==k.indexOf("/")?"/":-1!==k.indexOf("-")?"-":null),null===m||-1===k.indexOf(m))return!1;if(k=k.split(m),g=g.split(m),k.length!==g.length)return!1;var n=k[a.inArray("YYYY",g)],o=k[a.inArray("MM",g)],p=k[a.inArray("DD",g)];if(!n||!o||!p||4!==n.length)return!1;var q=null,r=null,s=null;if(h){if(h=h.split(":"),l=l.split(":"),h.length!==l.length)return!1;if(r=l.length>0?l[0]:null,q=l.length>1?l[1]:null,s=l.length>2?l[2]:null){if(isNaN(s)||s.length>2)return!1;if(s=parseInt(s,10),0>s||s>60)return!1}if(r){if(isNaN(r)||r.length>2)return!1;if(r=parseInt(r,10),0>r||r>=24||i&&r>12)return!1}if(q){if(isNaN(q)||q.length>2)return!1;if(q=parseInt(q,10),0>q||q>59)return!1}}return a.fn.bootstrapValidator.helpers.date(n,o,p)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.different=a.extend(a.fn.bootstrapValidator.i18n.different||{},{"default":"Please enter a different value"}),a.fn.bootstrapValidator.validators.different={html5Attributes:{message:"message",field:"field"},validate:function(a,b,c){var d=b.val();if(""===d)return!0;for(var e=c.field.split(","),f=!0,g=0;g<e.length;g++){var h=a.getFieldElements(e[g]);if(null!=h&&0!==h.length){var i=h.val();d===i?f=!1:""!==i&&a.updateStatus(h,a.STATUS_VALID,"different")}}return f}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.digits=a.extend(a.fn.bootstrapValidator.i18n.digits||{},{"default":"Please enter only digits"}),a.fn.bootstrapValidator.validators.digits={validate:function(a,b){var c=b.val();return""===c?!0:/^\d+$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ean=a.extend(a.fn.bootstrapValidator.i18n.ean||{},{"default":"Please enter a valid EAN number"}),a.fn.bootstrapValidator.validators.ean={validate:function(a,b){var c=b.val();if(""===c)return!0;
6684if(!/^(\d{8}|\d{12}|\d{13})$/.test(c))return!1;for(var d=c.length,e=0,f=8===d?[3,1]:[1,3],g=0;d-1>g;g++)e+=parseInt(c.charAt(g),10)*f[g%2];return e=(10-e%10)%10,e+""===c.charAt(d-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.emailAddress=a.extend(a.fn.bootstrapValidator.i18n.emailAddress||{},{"default":"Please enter a valid email address"}),a.fn.bootstrapValidator.validators.emailAddress={html5Attributes:{message:"message",multiple:"multiple",separator:"separator"},enableByHtml5:function(a){return"email"===a.attr("type")},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,f=c.multiple===!0||"true"===c.multiple;if(f){for(var g=c.separator||/[,;]/,h=this._splitEmailAddresses(d,g),i=0;i<h.length;i++)if(!e.test(h[i]))return!1;return!0}return e.test(d)},_splitEmailAddresses:function(a,b){for(var c=a.split(/"/),d=c.length,e=[],f="",g=0;d>g;g++)if(g%2===0){var h=c[g].split(b),i=h.length;if(1===i)f+=h[0];else{e.push(f+h[0]);for(var j=1;i-1>j;j++)e.push(h[j]);f=h[i-1]}}else f+='"'+c[g],d-1>g&&(f+='"');return e.push(f),e}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.file=a.extend(a.fn.bootstrapValidator.i18n.file||{},{"default":"Please choose a valid file"}),a.fn.bootstrapValidator.validators.file={html5Attributes:{extension:"extension",maxsize:"maxSize",minsize:"minSize",message:"message",type:"type"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f,g=d.extension?d.extension.toLowerCase().split(","):null,h=d.type?d.type.toLowerCase().split(","):null,i=window.File&&window.FileList&&window.FileReader;if(i)for(var j=c.get(0).files,k=j.length,l=0;k>l;l++){if(d.minSize&&j[l].size<parseInt(d.minSize,10))return!1;if(d.maxSize&&j[l].size>parseInt(d.maxSize,10))return!1;if(f=j[l].name.substr(j[l].name.lastIndexOf(".")+1),g&&-1===a.inArray(f.toLowerCase(),g))return!1;if(j[l].type&&h&&-1===a.inArray(j[l].type.toLowerCase(),h))return!1}else if(f=e.substr(e.lastIndexOf(".")+1),g&&-1===a.inArray(f.toLowerCase(),g))return!1;return!0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.greaterThan=a.extend(a.fn.bootstrapValidator.i18n.greaterThan||{},{"default":"Please enter a value greater than or equal to %s",notInclusive:"Please enter a value greater than %s"}),a.fn.bootstrapValidator.validators.greaterThan={html5Attributes:{message:"message",value:"value",inclusive:"inclusive"},enableByHtml5:function(a){var b=a.attr("type"),c=a.attr("min");return c&&"date"!==b?{value:c}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(!a.isNumeric(e))return!1;var f=a.isNumeric(d.value)?d.value:b.getDynamicOption(c,d.value);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:e>=f,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.greaterThan["default"],f)}:{valid:e>f,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.greaterThan.notInclusive,f)}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.grid=a.extend(a.fn.bootstrapValidator.i18n.grid||{},{"default":"Please enter a valid GRId number"}),a.fn.bootstrapValidator.validators.grid={validate:function(b,c){var d=c.val();return""===d?!0:(d=d.toUpperCase(),/^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(d)?(d=d.replace(/\s/g,"").replace(/-/g,""),"GRID:"===d.substr(0,5)&&(d=d.substr(5)),a.fn.bootstrapValidator.helpers.mod37And36(d)):!1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.hex=a.extend(a.fn.bootstrapValidator.i18n.hex||{},{"default":"Please enter a valid hexadecimal number"}),a.fn.bootstrapValidator.validators.hex={validate:function(a,b){var c=b.val();return""===c?!0:/^[0-9a-fA-F]+$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.hexColor=a.extend(a.fn.bootstrapValidator.i18n.hexColor||{},{"default":"Please enter a valid hex color"}),a.fn.bootstrapValidator.validators.hexColor={enableByHtml5:function(a){return"color"===a.attr("type")},validate:function(a,b){var c=b.val();return""===c?!0:/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.iban=a.extend(a.fn.bootstrapValidator.i18n.iban||{},{"default":"Please enter a valid IBAN number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid IBAN number in %s",countries:{AD:"Andorra",AE:"United Arab Emirates",AL:"Albania",AO:"Angola",AT:"Austria",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BR:"Brazil",CH:"Switzerland",CI:"Ivory Coast",CM:"Cameroon",CR:"Costa Rica",CV:"Cape Verde",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",DO:"Dominica",DZ:"Algeria",EE:"Estonia",ES:"Spain",FI:"Finland",FO:"Faroe Islands",FR:"France",GB:"United Kingdom",GE:"Georgia",GI:"Gibraltar",GL:"Greenland",GR:"Greece",GT:"Guatemala",HR:"Croatia",HU:"Hungary",IE:"Ireland",IL:"Israel",IR:"Iran",IS:"Iceland",IT:"Italy",JO:"Jordan",KW:"Kuwait",KZ:"Kazakhstan",LB:"Lebanon",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",MC:"Monaco",MD:"Moldova",ME:"Montenegro",MG:"Mad
6684agascar",MK:"Macedonia",ML:"Mali",MR:"Mauritania",MT:"Malta",MU:"Mauritius",MZ:"Mozambique",NL:"Netherlands",NO:"Norway",PK:"Pakistan",PL:"Poland",PS:"Palestine",PT:"Portugal",QA:"Qatar",RO:"Romania",RS:"Serbia",SA:"Saudi Arabia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",SM:"San Marino",SN:"Senegal",TN:"Tunisia",TR:"Turkey",VG:"Virgin Islands, British"}}),a.fn.bootstrapValidator.validators.iban={html5Attributes:{message:"message",country:"country"},REGEX:{AD:"AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}",AE:"AE[0-9]{2}[0-9]{3}[0-9]{16}",AL:"AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}",AO:"AO[0-9]{2}[0-9]{21}",AT:"AT[0-9]{2}[0-9]{5}[0-9]{11}",AZ:"AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}",BA:"BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}",BE:"BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}",BF:"BF[0-9]{2}[0-9]{23}",BG:"BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}",BH:"BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}",BI:"BI[0-9]{2}[0-9]{12}",BJ:"BJ[0-9]{2}[A-Z]{1}[0-9]{23}",BR:"BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]",CH:"CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}",CI:"CI[0-9]{2}[A-Z]{1}[0-9]{23}",CM:"CM[0-9]{2}[0-9]{23}",CR:"CR[0-9]{2}[0-9]{3}[0-9]{14}",CV:"CV[0-9]{2}[0-9]{21}",CY:"CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}",CZ:"CZ[0-9]{2}[0-9]{20}",DE:"DE[0-9]{2}[0-9]{8}[0-9]{10}",DK:"DK[0-9]{2}[0-9]{14}",DO:"DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}",DZ:"DZ[0-9]{2}[0-9]{20}",EE:"EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}",ES:"ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}",FI:"FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}",FO:"FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",FR:"FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",GB:"GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",GE:"GE[0-9]{2}[A-Z]{2}[0-9]{16}",GI:"GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}",GL:"GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",GR:"GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}",GT:"GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}",HR:"HR[0-9]{2}[0-9]{7}[0-9]{10}",HU:"HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}",IE:"IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",IL:"IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}",IR:"IR[0-9]{2}[0-9]{22}",IS:"IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}",IT:"IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",JO:"JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}",KW:"KW[0-9]{2}[A-Z]{4}[0-9]{22}",KZ:"KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}",LB:"LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}",LI:"LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}",LT:"LT[0-9]{2}[0-9]{5}[0-9]{11}",LU:"LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}",LV:"LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}",MC:"MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",MD:"MD[0-9]{2}[A-Z0-9]{20}",ME:"ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",MG:"MG[0-9]{2}[0-9]{23}",MK:"MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}",ML:"ML[0-9]{2}[A-Z]{1}[0-9]{23}",MR:"MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}",MT:"MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}",MU:"MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}",MZ:"MZ[0-9]{2}[0-9]{21}",NL:"NL[0-9]{2}[A-Z]{4}[0-9]{10}",NO:"NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}",PK:"PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",PL:"PL[0-9]{2}[0-9]{8}[0-9]{16}",PS:"PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",PT:"PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}",QA:"QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",RO:"RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",RS:"RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",SA:"SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}",SE:"SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}",SI:"SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}",SK:"SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}",SM:"SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",SN:"SN[0-9]{2}[A-Z]{1}[0-9]{23}",TN:"TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",TR:"TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}",VG:"VG[0-9]{2}[A-Z]{4}[0-9]{16}"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;e=e.replace(/[^a-zA-Z0-9]/g,"").toUpperCase();var f=d.country;if(f?"string"==typeof f&&this.REGEX[f]||(f=b.getDynamicOption(c,f)):f=e.substr(0,2),!this.REGEX[f])return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.iban.countryNotSupported,f)};if(!new RegExp("^"+this.REGEX[f]+"$").test(e))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.iban.country,a.fn.bootstrapValidator.i18n.iban.countries[f])};e=e.substr(4)+e.substr(0,4),e=a.map(e.split(""),function(a){var b=a.charCo
vendor: 30,093 bytes, lines 6684-6685
6684deAt(0);return b>="A".charCodeAt(0)&&b<="Z".charCodeAt(0)?b-"A".charCodeAt(0)+10:a}),e=e.join("");for(var g=parseInt(e.substr(0,1),10),h=e.length,i=1;h>i;++i)g=(10*g+parseInt(e.substr(i,1),10))%97;return{valid:1===g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.iban.country,a.fn.bootstrapValidator.i18n.iban.countries[f])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.id=a.extend(a.fn.bootstrapValidator.i18n.id||{},{"default":"Please enter a valid identification number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid identification number in %s",countries:{BA:"Bosnia and Herzegovina",BG:"Bulgaria",BR:"Brazil",CH:"Switzerland",CL:"Chile",CN:"China",CZ:"Czech Republic",DK:"Denmark",EE:"Estonia",ES:"Spain",FI:"Finland",HR:"Croatia",IE:"Ireland",IS:"Iceland",LT:"Lithuania",LV:"Latvia",ME:"Montenegro",MK:"Macedonia",NL:"Netherlands",RO:"Romania",RS:"Serbia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",SM:"San Marino",TH:"Thailand",ZA:"South Africa"}}),a.fn.bootstrapValidator.validators.id={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["BA","BG","BR","CH","CL","CN","CZ","DK","EE","ES","FI","HR","IE","IS","LT","LV","ME","MK","NL","RO","RS","SE","SI","SK","SM","TH","ZA"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(f?("string"!=typeof f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)):f=e.substr(0,2),-1===a.inArray(f,this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.id.countryNotSupported,f)};var g=["_",f.toLowerCase()].join("");return this[g](e)?!0:{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.id.country,a.fn.bootstrapValidator.i18n.id.countries[f.toUpperCase()])}},_validateJMBG:function(a,b){if(!/^\d{13}$/.test(a))return!1;var c=parseInt(a.substr(0,2),10),d=parseInt(a.substr(2,2),10),e=(parseInt(a.substr(4,3),10),parseInt(a.substr(7,2),10)),f=parseInt(a.substr(12,1),10);if(c>31||d>12)return!1;for(var g=0,h=0;6>h;h++)g+=(7-h)*(parseInt(a.charAt(h),10)+parseInt(a.charAt(h+6),10));if(g=11-g%11,(10===g||11===g)&&(g=0),g!==f)return!1;switch(b.toUpperCase()){case"BA":return e>=10&&19>=e;case"MK":return e>=41&&49>=e;case"ME":return e>=20&&29>=e;case"RS":return e>=70&&99>=e;case"SI":return e>=50&&59>=e;default:return!0}},_ba:function(a){return this._validateJMBG(a,"BA")},_mk:function(a){return this._validateJMBG(a,"MK")},_me:function(a){return this._validateJMBG(a,"ME")},_rs:function(a){return this._validateJMBG(a,"RS")},_si:function(a){return this._validateJMBG(a,"SI")},_bg:function(b){if(!/^\d{10}$/.test(b)&&!/^\d{6}\s\d{3}\s\d{1}$/.test(b))return!1;b=b.replace(/\s/g,"");var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(d>40?(c+=100,d-=40):d>20&&(c-=100,d-=20),!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;for(var f=0,g=[2,4,8,5,10,9,7,3,6],h=0;9>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=f%11%10,f+""===b.substr(9,1)},_br:function(a){if(/^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(a))return!1;if(!/^\d{11}$/.test(a)&&!/^\d{3}\.\d{3}\.\d{3}-\d{2}$/.test(a))return!1;a=a.replace(/\./g,"").replace(/-/g,"");for(var b=0,c=0;9>c;c++)b+=(10-c)*parseInt(a.charAt(c),10);if(b=11-b%11,(10===b||11===b)&&(b=0),b+""!==a.charAt(9))return!1;var d=0;for(c=0;10>c;c++)d+=(11-c)*parseInt(a.charAt(c),10);return d=11-d%11,(10===d||11===d)&&(d=0),d+""===a.charAt(10)},_ch:function(a){if(!/^756[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{2}$/.test(a))return!1;a=a.replace(/\D/g,"").substr(3);for(var b=a.length,c=0,d=8===b?[3,1]:[1,3],e=0;b-1>e;e++)c+=parseInt(a.charAt(e),10)*d[e%2];return c=10-c%10,c+""===a.charAt(b-1)},_cl:function(a){if(!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(a))return!1;for(a=a.replace(/\-/g,"");a.length<9;)a="0"+a;for(var b=0,c=[3,2,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,11===b?b=0:10===b&&(b="K"),b+""===a.charAt(8).toUpperCase()},_cn:function(b){if(b=b.trim(),!/^\d{15}$/.test(b)&&!/^\d{17}[\dXx]{1}$/.test(b))return!1;var c={11:{0:[0],1:[[0,9],[11,17]],2:[0,28,29]},12:{0:[0],1:[[0,16]],2:[0,21,23,25]},13:{0:[0],1:[[0,5],7,8,21,[23,33],[81,85]],2:[[0,5],[7,9],[23,25],27,29,30,81,83],3:[[0,4],[21,24]],4:[[0,4],6,21,[23,35],81],5:[[0,3],[21,35],81,82],6:[[0,4],[21,38],[81,84]],7:[[0,3],5,6,[21,33]],8:[[0,4],[21,28]],9:[[0,3],[21,30],[81,84]],10:[[0,3],[22,26],28,81,82],11:[[0,2],[21,28],81,82]},14:{0:[0],1:[0,1,[5,10],[21,23],81],2:[[0,3],11,12,[21,27]],3:[[0,3],11,21,22],4:[[0,2],11,21,[23,31],81],5:[[0,2],21,22,24,25,81],6:[[0,3],[21,24]],7:[[0,2],[21,29],81],8:[[0,2],[21,30],81,82],9:[[0,2],[21,32],81],10:[[0,2],[21,34],81,82],11:[[0,2],[21,30],81,82],23:[[0,3],22,23,[25,30],32,33]},15:{0:[0],1:[[0,5],[21,25]],2:[[0,7],[21,23]],3:[[0,4]],4:[[0,4],[21,26],[28,30]],5:[[0,2],[21,26],81],6:[[0,2],[21,27]],7:[[0,3],[21,27],[81,85]],8:[[0,2],[21,26]],9:[[0,2],[21,29],81],22:[[0,2],[21,24]],25:[[0,2],[22,31]],26:[[0,2],[24,27],[29,32],34],28:[0,1,[22,27]],29:[0,[21,23]]},21:{0:[0],1:[[0,6],[11,14],[22,24],81],2:[[0,4],[11,13],24,[81,83]],3:[[0,4],11,21,23,81],4:[[0,4],11,[21,23]],5:[[0,5],21,22],6:[[0,4],24,81,82],7:[[0,3],11,26,27,81,82],8:[[0,4],11,81,82],9:[[0,5],11,21,22],10:[[0,5],11,21,81],11:[[0,3],21,22],12:[[0,2],4,21,23,24,81,82],13:[[0,3],21,22,24,81,82],14:[[0,4],21,22,81]},22:{0:[0],1:[[0,6],12,22,[81,83]],2:[[0,4],11,21,[81,84]],3:[[0,3],22,23,81,82],4:[[0,3],21,22],5:[[0,3],21,23,24,81,82],6:[[0,2],4,5,[21,23],25,81],7:[[0,2],[21,24],81],8:[[0,2],21,22,81,82],24:[[0,6],24,26]},23:{0:[0],1:[[0,12],21,[23,29],[81,84]],2:[[0,8],21,[23,25],27,[29,31],81],3:[[0,7],21,81,82],4:[[0,7],21,22],5:[[0,3],5,6,[21,24]],6:[[0,6],[21,24]],7:[[0,16],22,81],8:[[0,5],11,22,26,28,33,81,82],9:[[0,4],21],10:[[0,5],24,25,81,[83,85]],11:[[0,2],21,23,24,81,82],12:[[0,2],[21,26],[81,83]],27:[[0,4],[21,23]]},31:{0:[0],1:[0,1,[3,10],[12,20]],2:[0,30]},32:{0:[0],1:[[0,7],11,[13,18],24,25],2:[[0,6],11,81,82],3:[[0,5],11,12,[21,24],81,82],4:[[0,2],4,5,11,12,81,82],5:[[0,9],[81,85]],6:[[0,2],11,12,21,23,[81,84]],7:[0,1,3,5,6,[21,24]],8:[[0,4],11,26,[29,31]],9:[[0,3],[21,25],28,81,82],10:[[0,3],11,12,23,81,84,88],11:[[0,2],11,12,[81,83]],12:[[0,4],[81,84]],13:[[0,2],11,[21,24]]},33:{0:[0],1:[[0,6],[8,10],22,27,82,83,85],2:[0,1,[3,6],11,12,25,26,[81,83]],3:[[0,4],22,24,[26,29],81,82],4:[[0,2],11,21,24,[81,83]],5:[[0,3],[21,23]],6:[[0,2],21,24,[81,83]],7:[[0,3],23,26,27,[81,84]],8:[[0,3],22,24,25,81],9:[[0,3],21,22],10:[[0,4],[21,24],81,82],11:[[0,2],[21,27],81]},34:{0:[0],1:[[0,4],11,[21,24],81],2:[[0,4],7,8,[21,23],25],3:[[0,4],11,[21,23]],4:[[0,6],21],5:[[0,4],6,[21,23]],6:[[0,4],21],7:[[0,3],11,21],8:[[0,3],11,[22,28],81],10:[[0,4],[21,24]],11:[[0,3],22,[24,26],81,82],12:[[0,4],21,22,25,26,82],13:[[0,2],[21,24]],14:[[0,2],[21,24]],15:[[0,3],[21,25]],16:[[0,2],[21,23]],17:[[0,2],[21,23]],18:[[0,2],[21,25],81]},35:{0:[0],1:[[0,5],11,[21,25],28,81,82],2:[[0,6],[11,13]],3:[[0,5],22],4:[[0,3],21,[23,30],81],5:[[0,5],21,[24,27],[81,83]],6:[[0,3],[22,29],81],7:[[0,2],[21,25],[81,84]],8:[[0,2],[21,25],81],9:[[0,2],[21,26],81,82]},36:{0:[0],1:[[0,5],11,[21,24]],2:[[0,3],22,81],3:[[0,2],13,[21,23]],4:[[0,3],21,[23,30],81,82],5:[[0,2],21],6:[[0,2],22,81],7:[[0,2],[21,35],81,82],8:[[0,3],[21,30],81],9:[[0,2],[21,26],[81,83]],10:[[0,2],[21,30]],11:[[0,2],[21,30],81]},37:{0:[0],1:[[0,5],12,13,[24,26],81],2:[[0,3],5,[11,14],[81,85]],3:[[0,6],[21,23]],4:[[0,6],81],5:[[0,3],[21,23]],6:[[0,2],[11,13],34,[81,87]],7:[[0,5],24,25,[81,86]],8:[[0,2],11,[26,32],[81,83]],9:[[0,3],11,21,23,82,83],10:[[0,2],[81,83]],11:[[0,3],21,22],12:[[0,3]],13:[[0,2],11,12,[21,29]],14:[[0,2],[21,28],81,82],15:[[0,2],[21,26],81],16:[[0,2],[21,26]],17:[[0,2],[21,28]]},41:{0:[0],1:[[0,6],8,22,[81,85]],2:[[0,5],11,[21,25]],3:[[0,7],11,[22,29],81],4:[[0,4],11,[21,23],25,81,82],5:[[0,3],5,6,22,23,26,27,81],6:[[0,3],11,21,22],7:[[0,4],11,21,[24,28],81,82],8:[[0,4],11,[21,23],25,[81,83]],9:[[0,2],22,23,[26,28]],10:[[0,2],[23,25],81,82],11:[[0,4],[21,23]],12:[[0,2],21,22,24,81,82],13:[[0,3],[21,30],81],14:[[0,3],[21,26],81],15:[[0,3],[21,28]],16:[[0,2],[21,28],81],17:[[0,2],[21,29]],90:[0,1]},42:{0:[0],1:[[0,7],[11,17]],2:[[0,5],22,81],3:[[0,3],[21,25],81],5:[[0,6],[25,29],[81,83]],6:[[0,2],6,7,[24,26],[82,84]],7:[[0,4]],8:[[0,2],4,21,22,81],9:[[0,2],[21,23],81,82,84],10:[[0,3],[22,24],81,83,87],11:[[0,2],[21,27],81,82],12:[[0,2],[21,24],81],13:[[0,3],21,81],28:[[0,2],22,23,[25,28]],90:[0,[4,6],21]},43:{0:[0],1:[[0,5],11,12,21,22,24,81],2:[[0,4],11,21,[23,25],81],3:[[0,2],4,21,81,82],4:[0,1,[5,8],12,[21,24],26,81,82],5:[[0,3],11,[21,25],[27,29],81],6:[[0,3],11,21,23,24,26,81,82],7:[[0,3],[21,26],81],8:[[0,2],11,21,22],9:[[0,3],[21,23],81],10:[[0,3],[21,28],81],11:[[0,3],[21,29]],12:[[0,2],[21,30],81],13:[[0,2],21,22,81,82],31:[0,1,[22,27],30]},44:{0:[0],1:[[0,7],[11,16],83,84],2:[[0,5],21,22,24,29,32,33,81,82],3:[0,1,[3,8]],4:[[0,4]],5:[0,1,[6,15],23,82,83],6:[0,1,[4,8]],7:[0,1,[3,5],81,[83,85]],8:[[0,4],11,23,25,[81,83]],9:[[0,3],23,[81,83]],12:[[0,3],[23,26],83,84],13:[[0,3],[22,24],81],14:[[0,2],[21,24],26,27,81],15:[[0,2],21,23,81],16:[[0,2],[21,25]],17:[[0,2],21,23,81],18:[[0,3],21,23,[25,27],81,82],19:[0],20:[0],51:[[0,3],21,22],52:[[0,3],21,22,24,81],53:[[0,2],[21,23],81]},45:{0:[0],1:[[0,9],[21,27]],2:[[0,5],[21,26]],3:[[0,5],11,12,[21,32]],4:[0,1,[3,6],11,[21,23],81],5:[[0,3],12,21],6:[[0,3],21,81],7:[[0,3],21,22],8:[[0,4],21,81],9:[[0,3],[21,24],81],10:[[0,2],[21,31]],11:[[0,2],[21,23]],12:[[0,2],[21,29],81],13:[[0,2],[21,24],81],14:[[0,2],[21,25],81]},46:{0:[0],1:[0,1,[5,8]],2:[0,1],3:[0,[21,23]],90:[[0,3],[5,7],[21,39]]},50:{0:[0],1:[[0,19]],2:[0,[22,38],[40,43]],3:[0,[81,84]]},51:{0:[0],1:[0,1,[4,8],[12,15],[21,24],29,31,32,[81,84]],3:[[0,4],11,21,22],4:[[0,3],11,21,22],5:[[0,4],21,22,24,25],6:[0,1,3,23,26,[81,83]],7:[0,1,3,4,[22,27],81],8:[[0,2],11,12,[21,24]],9:[[0,4],[21,23]],10:[[0,2],11,24,25,28],11:[[0,2],[11,13],23,24,26,29,32,33,81],13:[[0,4],[21,25],81],14:[[0,2],[21,25]],15:[[0,3],[21,29]],16:[[0,3],[21,23],81],17:[[0,3],[21,25],81],18:[[0,3],[21,27]],19:[[0,3],[21,23]],20:[[0,2],21,22,81],32:[0,[21,33]],33:[0,[21,38]],34:[0,1,[22,37]]},52:{0:[0],1:[[0,3],[11,15],[21,23],81],2:[0,1,3,21,22],3:[[0,3],[21,30],81,82],4:[[0,2],[21,25]],5:[[0,2],[21,27]],6:[[0,3],[21,28]],22:[0,1,[22,30]],23:[0,1,[22,28]],24:[0,1,[22,28]],26:[0,1,[22,36]],27:[[0,2],22,23,[25,32]]},53:{0:[0],1:[[0,3],[11,14],21,22,[24,29],81],3:[[0,2],[21,26],28,81],4:[[0,2],[21,28]],5:[[0,2],[21,24]],6:[[0,2],[21,30]],7:[[0,2],[21,24]],8:[[0,2],[21,29]],9:[[0,2],[21,27]],23:[0,1,[22,29],31],25:[[0,4],[22,32]],26:[0,1,[21,28]],27:[0,1,[22,30]],28:[0,1,22,23],29:[0,1,[22,32]],31:[0,2,3,[22,24]],34:[0,[21,23]],33:[0,21,[23,25]],35:[0,[21,28]]},54:{0:[0],1:[[0,2],[21,27]],21:[0,[21,29],32,33],22:[0,[21,29],[31,33]],23:[0,1,[22,38]],24:[0,[21,31]],25:[0,[21,27]],26:[0,[21,27]]},61:{0:[0],1:[[0,4],[11,16],22,[24,26]],2:[[0,4],22],3:[[0,4],[21,24],[26,31]],4:[[0,4],[22,31],81],5:[[0,2],[21,28],81,82],6:[[0,2],[21,32]],7:[[0,2],[21,30]],8:[[0,2],[21,31]],9:[[0,2],[21,29]],10:[[0,2],[21,26]]},62:{0:[0],1:[[0,5],11,[21,23]],2:[0,1],3:[[0,2],21],4:[[0,3],[21,23]],5:[[0,3],[21,25]],6:[[0,2],[21,23]],7:[[0,2],[21,25]],8:[[0,2],[21,26]],9:[[0,2],[21,24],81,82],10:[[0,2],[21,27]],11:[[0,2],[21,26]],12:[[0,2],[21,28]],24:[0,21,[24,29]],26:[0,21,[23,30]],29:[0,1,[21,27]],30:[0,1,[21,27]]},63:{0:[0],1:[[0,5],[21,23]],2:[0,2,[21,25]],21:[0,[21,23],[26,28]],22:[0,[21,24]],23:[0,[21,24]],25:[0,[21,25]],26:[0,[21,26]],27:[0,1,[21,26]],28:[[0,2],[21,23]]},64:{0:[0],1:[0,1,[4,6],21,22,81],2:[[0,3],5,[21,23]],3:[[0,3],[21,24],81],4:[[0,2],[21,25]],5:[[0,2],21,22]},65:{0:[0],1:[[0,9],21],2:[[0,5]],21:[0,1,22,23],22:[0,1,22,23],23:[[0,3],[23,25],27,28],28:[0,1,[22,29]],29:[0,1,[22,29]],30:[0,1,[22,24]],31:[0,1,[21,31]],32:[0,1,[21,27]],40:[0,2,3,[21,28]],42:[[0,2],21,[23,26]],43:[0,1,[21,26]],90:[[0,4]],27:[[0,2],22,23]},71:{0:[0]},81:{0:[0]},82:{0:[0]}},d=parseInt(b.substr(0,2),10),e=parseInt(b.substr(2,2),10),f=parseInt(b.substr(4,2),10);if(!c[d]||!c[d][e])return!1;for(var g=!1,h=c[d][e],i=0;i<h.length;i++)if(a.isArray(h[i])&&h[i][0]<=f&&f<=h[i][1]||!a.isArray(h[i])&&f===h[i]){g=!0;break}if(!g)return!1;var j;j=18===b.length?b.substr(6,8):"19"+b.substr(6,6);var k=parseInt(j.substr(0,4),10),l=parseInt(j.substr(4,2),10),m=parseInt(j.substr(6,2),10);if(!a.fn.bootstrapValidator.helpers.date(k,l,m))return!1;if(18===b.length){var n=0,o=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];for(i=0;17>i;i++)n+=parseInt(b.charAt(i),10)*o[i];n=(12-n%11)%11;var p="X"!==b.charAt(17).toUpperCase()?parseInt(b.charAt(17),10):10;return p===n}return!0},_cz:function(b){if(!/^\d{9,10}$/.test(b))return!1;var c=1900+parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10)%50%20,e=parseInt(b.substr(4,2),10);if(9===b.length){if(c>=1980&&(c-=100),c>1953)return!1}else 1954>c&&(c+=100);if(!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;if(10===b.length){var f=parseInt(b.substr(0,9),10)%11;return 1985>c&&(f%=10),f+""===b.substr(9,1)}return!0},_dk:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b))return!1;b=b.replace(/-/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);switch(!0){case-1!=="5678".indexOf(b.charAt(6))&&e>=58:e+=1800;break;case-1!=="0123".indexOf(b.charAt(6)):case-1!=="49".indexOf(b.charAt(6))&&e>=37:e+=1900;break;default:e+=2e3}return a.fn.bootstrapValidator.helpers.date(e,d,c)},_ee:function(a){return this._lt(a)},_es:function(a){if(!/^[0-9A-Z]{8}[-]{0,1}[0-9A-Z]$/.test(a)&&!/^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-Z]$/.test(a))return!1;a=a.replace(/-/g,"");var b="XYZ".indexOf(a.charAt(0));-1!==b&&(a=b+a.substr(1)+"");var c=parseInt(a.substr(0,8),10);return c="TRWAGMYFPDXBNJZSQVHLCKE"[c%23],c===a.substr(8,1)},_fi:function(b){if(!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(b))return!1;var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10),f={"+":1800,"-":1900,A:2e3};if(e=f[b.charAt(6)]+e,!a.fn.bootstrapValidator.helpers.date(e,d,c))return!1;var g=parseInt(b.substr(7,3),10);if(2>g)return!1;var h=b.substr(0,6)+b.substr(7,3)+"";return h=parseInt(h,10),"0123456789ABCDEFHJKLMNPRSTUVWXY".charAt(h%31)===b.charAt(10)},_hr:function(b){return/^[0-9]{11}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_ie:function(a){if(!/^\d{7}[A-W][AHWTX]?$/.test(a))return!1;var b=function(a){for(;a.length<7;)a="0"+a;for(var b="WABCDEFGHIJKLMNOPQRSTUV",c=0,d=0;7>d;d++)c+=parseInt(a.charAt(d),10)*(8-d);return c+=9*b.indexOf(a.substr(7)),b[c%23]};return 9!==a.length||"A"!==a.charAt(8)&&"H"!==a.charAt(8)?a.charAt(7)===b(a.substr(0,7)):a.charAt(7)===b(a.substr(0,7)+a.substr(8)+"")},_is:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b))return!1;b=b.replace(/-/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10),f=parseInt(b.charAt(9),10);if(e=9===f?1900+e:100*(20+f)+e,!a.fn.bootstrapValidator.helpers.date(e,d,c,!0))return!1;for(var g=0,h=[3,2,7,6,5,4,3,2],i=0;8>i;i++)g+=parseInt(b.charAt(i),10)*h[i];return g=11-g%11,g+""===b.charAt(8)},_lt:function(b){if(!/^[0-9]{11}$/.test(b))return!1;var c=parseInt(b.charAt(0),10),d=parseInt(b.substr(1,2),10),e=parseInt(b.substr(3,2),10),f=parseInt(b.substr(5,2),10),g=c%2===0?17+c/2:17+(c+1)/2;if(d=100*g+d,!a.fn.bootstrapValidator.helpers.date(d,e,f,!0))return!1;for(var h=0,i=[1,2,3,4,5,6,7,8,9,1],j=0;10>j;j++)h+=parseInt(b.charAt(j),10)*i[j];if(h%=11,10!==h)return h+""===b.charAt(10);for(h=0,i=[3,4,5,6,7,8,9,1,2,3],j=0;10>j;j++)h+=parseInt(b.charAt(j),10)*i[j];return h%=11,10===h&&(h=0),h+""===b.charAt(10)},_lv:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(b))return!1;b=b.replace(/\D/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(e=e+1800+100*parseInt(b.charAt(6),10),!a.fn.bootstrapValidator.helpers.date(e,d,c,!0))return!1;for(var f=0,g=[10,5,8,4,2,1,6,3,7,9],h=0;10>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=(f+1)%11%10,f+""===b.charAt(10)},_nl:function(a){for(;a.length<9;)a="0"+a;if(!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(a))return!1;if(a=a.replace(/\./g,""),0===parseInt(a,10))return!1;for(var b=0,c=a.length,d=0;c-1>d;d++)b+=(9-d)*parseInt(a.charAt(d),10);return b%=11,10===b&&(b=0),b+""===a.charAt(c-1)},_ro:function(b){if(!/^[0-9]{13}$/.test(b))return!1;var c=parseInt(b.charAt(0),10);if(0===c||7===c||8===c)return!1;var d=parseInt(b.substr(1,2),10),e=parseInt(b.substr(3,2),10),f=parseInt(b.substr(5,2),10),g={1:1900,2:1900,3:1800,4:1800,5:2e3,6:2e3};if(f>31&&e>12)return!1;if(9!==c&&(d=g[c+""]+d,!a.fn.bootstrapValidator.helpers.date(d,e,f)))return!1;for(var h=0,i=[2,7,9,1,4,6,3,5,8,2,7,9],j=b.length,k=0;j-1>k;k++)h+=parseInt(b.charAt(k),10)*i[k];return h%=11,10===h&&(h=1),h+""===b.charAt(j-1)},_se:function(b){if(!/^[0-9]{10}$/.test(b)&&!/^[0-9]{6}[-|+][0-9]{4}$/.test(b))return!1;b=b.replace(/[^0-9]/g,"");var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);return a.fn.bootstrapValidator.helpers.date(c,d,e)?a.fn.bootstrapValidator.helpers.luhn(b):!1},_sk:function(a){return this._cz(a)},_sm:function(a){return/^\d{5}$/.test(a)},_th:function(a){if(13!==a.length)return!1;for(var b=0,c=0;12>c;c++)b+=parseInt(a.charAt(c),10)*(13-c);return(11-b%11)%10===parseInt(a.charAt(12),10)},_za:function(b){if(!/^[0-9]{10}[0|1][8|9][0-9]$/.test(b))return!1;var c=parseInt(b.substr(0,2),10),d=(new Date).getFullYear()%100,e=parseInt(b.substr(2,2),10),f=parseInt(b.substr(4,2),10);return c=c>=d?c+1900:c+2e3,a.fn.bootstrapValidator.helpers.date(c,e,f)?a.fn.bootstrapValidator.helpers.luhn(b):!1 6685}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.identical=a.extend(a.fn.bootstrapValidator.i18n.identical||{},{"default":"Please enter the same value"}),a.fn.bootstrapValidator.validators.identical={html5Attributes:{message:"message",field:"field"},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=a.getFieldElements(c.field);return null===e||0===e.length?!0:d===e.val()?(a.updateStatus(c.field,a.STATUS_VALID,"identical"),!0):!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.imei=a.extend(a.fn.bootstrapValidator.i18n.imei||{},{"default":"Please enter a valid IMEI number"}),a.fn.bootstrapValidator.validators.imei={validate:function(b,c){var d=c.val();if(""===d)return!0;switch(!0){case/^\d{15}$/.test(d):case/^\d{2}-\d{6}-\d{6}-\d{1}$/.test(d):case/^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(d):return d=d.replace(/[^0-9]/g,""),a.fn.bootstrapValidator.helpers.luhn(d);case/^\d{14}$/.test(d):case/^\d{16}$/.test(d):case/^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(d):case/^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(d):return!0;default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.imo=a.extend(a.fn.bootstrapValidator.i18n.imo||{},{"default":"Please enter a valid IMO number"}),a.fn.bootstrapValidator.validators.imo={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^IMO \d{7}$/i.test(c))return!1;for(var d=0,e=c.replace(/^.*(\d{7})$/,"$1"),f=6;f>=1;f--)d+=e.slice(6-f,-f)*(f+1);return d%10===parseInt(e.charAt(6),10)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.integer=a.extend(a.fn.bootstrapValidator.i18n.integer||{},{"default":"Please enter a valid number"}),a.fn.bootstrapValidator.validators.integer={enableByHtml5:function(a){return"number"===a.attr("type")&&(void 0===a.attr("step")||a.attr("step")%1===0)},validate:function(a,b){if(this.enableByHtml5(b)&&b.get(0).validity&&b.get(0).validity.badInput===!0)return!1;var c=b.val();return""===c?!0:/^(?:-?(?:0|[1-9][0-9]*))$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ip=a.extend(a.fn.bootstrapValidator.i18n.ip||{},{"default":"Please enter a valid IP address",ipv4:"Please enter a valid IPv4 address",ipv6:"Please enter a valid IPv6 address"}),a.fn.bootstrapValidator.validators.ip={html5Attributes:{message:"message",ipv4:"ipv4",ipv6:"ipv6"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;d=a.extend({},{ipv4:!0,ipv6:!0},d);var f,g=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,h=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,i=!1;switch(!0){case d.ipv4&&!d.ipv6:i=g.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip.ipv4;break;case!d.ipv4&&d.ipv6:i=h.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip.ipv6;break;case d.ipv4&&d.ipv6:default:i=g.test(e)||h.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip["default"]}return{valid:i,message:f}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.isbn=a.extend(a.fn.bootstrapValidator.i18n.isbn||{},{"default":"Please enter a valid ISBN number"}),a.fn.bootstrapValidator.validators.isbn={validate:function(a,b){var c=b.val();if(""===c)return!0;var d;switch(!0){case/^\d{9}[\dX]$/.test(c):case 13===c.length&&/^(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):case 13===c.length&&/^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):d="ISBN10";break;case/^(978|979)\d{9}[\dX]$/.test(c):case 17===c.length&&/^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):case 17===c.length&&/^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):d="ISBN13";break;default:return!1}c=c.replace(/[^0-9X]/gi,"");var e,f,g=c.split(""),h=g.length,i=0;switch(d){case"ISBN10":for(i=0,e=0;h-1>e;e++)i+=parseInt(g[e],10)*(10-e);return f=11-i%11,11===f?f=0:10===f&&(f="X"),f+""===g[h-1];case"ISBN13":for(i=0,e=0;h-1>e;e++)i+=e%2===0?parseInt(g[e],10):3*parseInt(g[e],10);return f=10-i%10,10===f&&(f="0"),f+""===g[h-1];default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.isin=a.extend(a.fn.bootstrapValidator.i18n.isin||{},{"default":"Please enter a valid ISIN number"}),a.fn.bootstrapValidator.validators.isin={COUNTRY_CODES:"AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW",validate:function(a,b){var c=b.val();if(""===c)return!0;c=c.toUpperCase();var d=new RegExp("^("+this.COUNTRY_CODES+")[0-9A-Z]{10}$");if(!d.test(c))return!1;for(var e="",f=c.length,g=0;f-1>g;g++){var h=c.charCodeAt(g);e+=h>57?(h-55).toString():c.charAt(g)}var i="",j=e.length,k=j%2!==0?0:1;for(g=0;j>g;g++)i+=parseInt(e[g],10)*(g%2===k?2:1)+"";var l=0;for(g=0;g<i.length;g++)l+=parseInt(i.charAt(g),10);return l=(10-l%10)%10,l+""===c.charAt(f-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ismn=a.extend(a.fn.bootstrapValidator.i18n.ismn||{},{"default":"Please enter a valid ISMN number"}),a.fn.bootstrapValidator.validators.ismn={validate:function(a,b){var c=b.val();if(""===c)return!0;var d;switch(!0){case/^M\d{9}$/.test(c):case/^M-\d{4}-\d{4}-\d{1}$/.test(c):case/^M\s\d{4}\s\d{4}\s\d{1}$/.test(c):d="ISMN10";break;case/^9790\d{9}$/.test(c):case/^979-0-\d{4}-\d{4}-\d{1}$/.test(c):case/^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(c):d="ISMN13";break;default:return!1}"ISMN10"===d&&(c="9790"+c.substr(1)),c=c.replace(/[^0-9]/gi,"");for(var e=c.length,f=0,g=[1,3],h=0;e-1>h;h++)f+=parseInt(c.charAt(h),10)*g[h%2];return f=10-f%10,f+""===c.charAt(e-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.issn=a.extend(a.fn.bootstrapValidator.i18n.issn||{},{"default":"Please enter a valid ISSN number"}),a.fn.bootstrapValidator.validators.issn={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^\d{4}\-\d{3}[\dX]$/.test(c))return!1;c=c.replace(/[^0-9X]/gi,"");var d=c.split(""),e=d.length,f=0;"X"===d[7]&&(d[7]=10);for(var g=0;e>g;g++)f+=parseInt(d[g],10)*(8-g);return f%11===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.lessThan=a.extend(a.fn.bootstrapValidator.i18n.lessThan||{},{"default":"Please enter a value less than or equal to %s",notInclusive:"Please enter a value less than %s"}),a.fn.bootstrapValidator.validators.lessThan={html5Attributes:{message:"message",value:"value",inclusive:"inclusive"},enableByHtml5:function(a){var b=a.attr("type"),c=a.attr("max");return c&&"date"!==b?{value:c}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(!a.isNumeric(e))return!1;var f=a.isNumeric(d.value)?d.value:b.getDynamicOption(c,d.value);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:f>=e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.lessThan["default"],f)}:{valid:f>e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.lessThan.notInclusive,f)}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.mac=a.extend(a.fn.bootstrapValidator.i18n.mac||{},{"default":"Please enter a valid MAC address"}),a.fn.bootstrapValidator.validators.mac={validate:function(a,b){var c=b.val();return""===c?!0:/^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.meid=a.extend(a.fn.bootstrapValidator.i18n.meid||{},{"default":"Please enter a valid MEID number"}),a.fn.bootstrapValidator.validators.meid={validate:function(b,c){var d=c.val();if(""===d)return!0;switch(!0){case/^[0-9A-F]{15}$/i.test(d):case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(d):case/^\d{19}$/.test(d):case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(d):var e=d.charAt(d.length-1);if(d=d.replace(/[- ]/g,""),d.match(/^\d*$/i))return a.fn.bootstrapValidator.helpers.luhn(d);d=d.slice(0,-1);for(var f="",g=1;13>=g;g+=2)f+=(2*parseInt(d.charAt(g),16)).toString(16);var h=0;for(g=0;g<f.length;g++)h+=parseInt(f.charAt(g),16);return h%10===0?"0"===e:e===(2*(10*Math.floor((h+10)/10)-h)).toString(16);case/^[0-9A-F]{14}$/i.test(d):case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(d):case/^\d{18}$/.test(d):case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(d):return!0;default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.notEmpty=a.extend(a.fn.bootstrapValidator.i18n.notEmpty||{},{"default":"Please enter a value"}),a.fn.bootstrapValidator.validators.notEmpty={enableByHtml5:function(a){var b=a.attr("required")+"";return"required"===b||"true"===b},validate:function(b,c){var d=c.attr("type");return"radio"===d||"checkbox"===d?b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length>0:"number"===d&&c.get(0).validity&&c.get(0).validity.badInput===!0?!0:""!==a.trim(c.val())}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.numeric=a.extend(a.fn.bootstrapValidator.i18n.numeric||{},{"default":"Please enter a valid float number"}),a.fn.bootstrapValidator.validators.numeric={html5Attributes:{message:"message",separator:"separator"},enableByHtml5:function(a){return"number"===a.attr("type")&&void 0!==a.attr("step")&&a.attr("step")%1!==0},validate:function(a,b,c){if(this.enableByHtml5(b)&&b.get(0).validity&&b.get(0).validity.badInput===!0)return!1;var d=b.val();if(""===d)return!0;var e=c.separator||".";return"."!==e&&(d=d.replace(e,".")),!isNaN(parseFloat(d))&&isFinite(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.phone=a.extend(a.fn.bootstrapValidator.i18n.phone||{},{"default":"Please enter a valid phone number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid phone number in %s",countries:{BR:"Brazil",CN:"China",CZ:"Czech Republic",DK:"Denmark",ES:"Spain",FR:"France",GB:"United Kingdom",MA:"Morocco",PK:"Pakistan",RO:"Romania",RU:"Russia",SK:"Slovakia",TH:"Thailand",US:"USA",VE:"Venezuela"}}),a.fn.bootstrapValidator.validators.phone={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["BR","CN","CZ","DK","ES","FR","GB","MA","PK","RO","RU","SK","TH","US","VE"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(("string"!=typeof f||-1===a.inArray(f,this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)),!f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.phone.countryNotSupported,f)};var g=!0;switch(f.toUpperCase()){case"BR":e=a.trim(e),g=/^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(e);break;case"CN":e=a.trim(e),g=/^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(e);break;case"CZ":g=/^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);break;case"DK":e=a.trim(e),g=/^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(e);break;
6685case"ES":e=a.trim(e),g=/^(?:(?:(?:\+|00)34\D?))?(?:9|6)(?:\d\D?){8}$/.test(e);break;case"FR":e=a.trim(e),g=/^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(e);break;case"GB":e=a.trim(e),g=/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/.test(e);break;case"MA":e=a.trim(e),g=/^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(e);break;case"PK":e=a.trim(e),g=/^0?3[0-9]{2}[0-9]{7}$/.test(e);break;case"RO":g=/^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|\-)?([0-9]{3}(\s|\.|\-|)){2}$/g.test(e);break;case"RU":g=/^((8|\+7|007)[\-\.\/ ]?)?([\(\/\.]?\d{3}[\)\/\.]?[\-\.\/ ]?)?[\d\-\.\/ ]{7,10}$/g.test(e);break;case"SK":g=/^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);break;case"TH":g=/^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(e);break;case"VE":e=a.trim(e),g=/^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(e);break;case"US":default:e=e.replace(/\D/g,""),g=/^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/.test(e)&&10===e.length}return{valid:g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.phone.country,a.fn.bootstrapValidator.i18n.phone.countries[f])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.regexp=a.extend(a.fn.bootstrapValidator.i18n.regexp||{},{"default":"Please enter a value matching the pattern"}),a.fn.bootstrapValidator.validators.regexp={html5Attributes:{message:"message",regexp:"regexp"},enableByHtml5:function(a){var b=a.attr("pattern");return b?{regexp:b}:!1},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e="string"==typeof c.regexp?new RegExp(c.regexp):c.regexp;return e.test(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.remote=a.extend(a.fn.bootstrapValidator.i18n.remote||{},{"default":"Please enter a valid value"}),a.fn.bootstrapValidator.validators.remote={html5Attributes:{message:"message",name:"name",type:"type",url:"url",delay:"delay"},destroy:function(a,b){b.data("bv.remote.timer")&&(clearTimeout(b.data("bv.remote.timer")),b.removeData("bv.remote.timer"))},validate:function(b,c,d){function e(){var b=a.ajax({type:k,headers:l,url:j,dataType:"json",data:i});return b.then(function(a){a.valid=a.valid===!0||"true"===a.valid,g.resolve(c,"remote",a)}),g.fail(function(){b.abort()}),g}var f=c.val(),g=new a.Deferred;if(""===f)return g.resolve(c,"remote",{valid:!0}),g;var h=c.attr("data-bv-field"),i=d.data||{},j=d.url,k=d.type||"GET",l=d.headers||{};return"function"==typeof i&&(i=i.call(this,b)),"function"==typeof j&&(j=j.call(this,b)),i[d.name||h]=f,d.delay?(c.data("bv.remote.timer")&&clearTimeout(c.data("bv.remote.timer")),c.data("bv.remote.timer",setTimeout(e,d.delay)),g):e()}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.rtn=a.extend(a.fn.bootstrapValidator.i18n.rtn||{},{"default":"Please enter a valid RTN number"}),a.fn.bootstrapValidator.validators.rtn={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^\d{9}$/.test(c))return!1;for(var d=0,e=0;e<c.length;e+=3)d+=3*parseInt(c.charAt(e),10)+7*parseInt(c.charAt(e+1),10)+parseInt(c.charAt(e+2),10);return 0!==d&&d%10===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.sedol=a.extend(a.fn.bootstrapValidator.i18n.sedol||{},{"default":"Please enter a valid SEDOL number"}),a.fn.bootstrapValidator.validators.sedol={validate:function(a,b){var c=b.val();if(""===c)return!0;if(c=c.toUpperCase(),!/^[0-9A-Z]{7}$/.test(c))return!1;for(var d=0,e=[1,3,1,7,3,9,1],f=c.length,g=0;f-1>g;g++)d+=e[g]*parseInt(c.charAt(g),36);return d=(10-d%10)%10,d+""===c.charAt(f-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.siren=a.extend(a.fn.bootstrapValidator.i18n.siren||{},{"default":"Please enter a valid SIREN number"}),a.fn.bootstrapValidator.validators.siren={validate:function(b,c){var d=c.val();return""===d?!0:/^\d{9}$/.test(d)?a.fn.bootstrapValidator.helpers.luhn(d):!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.siret=a.extend(a.fn.bootstrapValidator.i18n.siret||{},{"default":"Please enter a valid SIRET number"}),a.fn.bootstrapValidator.validators.siret={validate:function(a,b){var c=b.val();if(""===c)return!0;for(var d,e=0,f=c.length,g=0;f>g;g++)d=parseInt(c.charAt(g),10),g%2===0&&(d=2*d,d>9&&(d-=9)),e+=d;return e%10===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.step=a.extend(a.fn.bootstrapValidator.i18n.step||{},{"default":"Please enter a valid step of %s"}),a.fn.bootstrapValidator.validators.step={html5Attributes:{message:"message",base:"baseValue",step:"step"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;
vendor: 5,171 bytes, line 6685
6685if(d=a.extend({},{baseValue:0,step:1},d),e=parseFloat(e),!a.isNumeric(e))return!1;var f=function(a,b){var c=Math.pow(10,b);a*=c;var d=a>0|-(0>a),e=a%1===.5*d;return e?(Math.floor(a)+(d>0))/c:Math.round(a)/c},g=function(a,b){if(0===b)return 1;var c=(a+"").split("."),d=(b+"").split("."),e=(1===c.length?0:c[1].length)+(1===d.length?0:d[1].length);return f(a-b*Math.floor(a/b),e)},h=g(e-d.baseValue,d.step);return{valid:0===h||h===d.step,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.step["default"],[d.step])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.stringCase=a.extend(a.fn.bootstrapValidator.i18n.stringCase||{},{"default":"Please enter only lowercase characters",upper:"Please enter only uppercase characters"}),a.fn.bootstrapValidator.validators.stringCase={html5Attributes:{message:"message","case":"case"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=(d["case"]||"lower").toLowerCase();return{valid:"upper"===f?e===e.toUpperCase():e===e.toLowerCase(),message:d.message||("upper"===f?a.fn.bootstrapValidator.i18n.stringCase.upper:a.fn.bootstrapValidator.i18n.stringCase["default"])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.stringLength=a.extend(a.fn.bootstrapValidator.i18n.stringLength||{},{"default":"Please enter a value with valid length",less:"Please enter less than %s characters",more:"Please enter more than %s characters",between:"Please enter value between %s and %s characters long"}),a.fn.bootstrapValidator.validators.stringLength={html5Attributes:{message:"message",min:"min",max:"max"},enableByHtml5:function(b){var c={},d=b.attr("maxlength"),e=b.attr("minlength");return d&&(c.max=parseInt(d,10)),e&&(c.min=parseInt(e,10)),a.isEmptyObject(c)?!1:c},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min),g=a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max),h=e.length,i=!0,j=d.message||a.fn.bootstrapValidator.i18n.stringLength["default"];switch((f&&h<parseInt(f,10)||g&&h>parseInt(g,10))&&(i=!1),!0){case!!f&&!!g:j=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.between,[parseInt(f,10),parseInt(g,10)]);break;case!!f:j=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.more,parseInt(f,10));break;case!!g:j=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.less,parseInt(g,10))}return{valid:i,message:j}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.uri=a.extend(a.fn.bootstrapValidator.i18n.uri||{},{"default":"Please enter a valid URI"}),a.fn.bootstrapValidator.validators.uri={html5Attributes:{message:"message",allowlocal:"allowLocal",protocol:"protocol"},enableByHtml5:function(a){return"url"===a.attr("type")},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=c.allowLocal===!0||"true"===c.allowLocal,f=(c.protocol||"http, https, ftp").split(",").join("|").replace(/\s/g,""),g=new RegExp("^(?:(?:"+f+")://)(?:\\S+(?::\\S*)?@)?(?:"+(e?"":"(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})")+"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))"+(e?"?":"")+")(?::\\d{2,5})?(?:/[^\\s]*)?$","i");return g.test(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.uuid=a.extend(a.fn.bootstrapValidator.i18n.uuid||{},{"default":"Please enter a valid UUID number",version:"Please enter a valid UUID version %s number"}),a.fn.bootstrapValidator.validators.uuid={html5Attributes:{message:"message",version:"version"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i},g=d.version?d.version+"":"all";return{valid:null===f[g]?!0:f[g].test(e),message:d.version?a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.uuid.version,d.version):d.message||a.fn.bootstrapValidator.i18n.uuid["default"]}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.vat=a.extend(a.fn.bootstrapValidator.i18n.vat||{},{"default":"Please enter a valid VAT number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid VAT number in %s",countries:{AT:"Austria",BE:"Belgium",BG:"Bulgaria",BR:"Brazil",CH:"Switzerland",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",EE:"Estonia",ES:"Spain",FI:"Finland",FR:"France",GB:"United Kingdom",GR:"Greek",EL:"Greek",HU:"Hungary",HR:"Croatia",IE:"Ireland",IS:"Iceland",IT:"Italy",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",MT:"Malta",NL:"Netherlands",NO:"Norway",PL:"Poland",PT:"Portugal",RO:"Romania",RU:"Russia",RS:"Serb
6685ia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",VE:"Venezuela",ZA:"South Africa"}}),a.fn.bootstrapValidator.validators.vat={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["AT","BE","BG","BR","CH","CY","CZ","DE","DK","EE","EL","ES","FI","FR","GB","GR","HR","HU","IE","IS","IT","LT","LU","LV","MT","NL","NO","PL","PT","RO","RU","RS","SE","SK","SI","VE","ZA"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(f?("string"!=typeof f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)):f=e.substr(0,2),-1===a.inArray(f,this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.vat.countryNotSupported,f)};var g=["_",f.toLowerCase()].join("");return this[g](e)?!0:{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.vat.country,a.fn.bootstrapValidator.i18n.vat.countries[f.toUpperCase()])}},_at:function(a){if(/^ATU[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^U[0-9]{8}$/.test(a))return!1;a=a.substr(1);for(var b=0,c=[1,2,1,2,1,2,1],d=0,e=0;7>e;e++)d=parseInt(a.charAt(e),10)*c[e],d>9&&(d=Math.floor(d/10)+d%10),b+=d;return b=10-(b+4)%10,10===b&&(b=0),b+""===a.substr(7,1)},_be:function(a){if(/^BE[0]{0,1}[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0]{0,1}[0-9]{9}$/.test(a))return!1;if(9===a.length&&(a="0"+a),"0"===a.substr(1,1))return!1;var b=parseInt(a.substr(0,8),10)+parseInt(a.substr(8,2),10);return b%97===0},_bg:function(b){if(/^BG[0-9]{9,10}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{9,10}$/.test(b))return!1;var c=0,d=0;if(9===b.length){for(d=0;8>d;d++)c+=parseInt(b.charAt(d),10)*(d+1);if(c%=11,10===c)for(c=0,d=0;8>d;d++)c+=parseInt(b.charAt(d),10)*(d+3);return c%=10,c+""===b.substr(8)}if(10===b.length){var e=function(b){var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(d>40?(c+=100,d-=40):d>20&&(c-=100,d-=20),!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;for(var f=0,g=[2,4,8,5,10,9,7,3,6],h=0;9>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=f%11%10,f+""===b.substr(9,1)},f=function(a){for(var b=0,c=[21,19,17,13,11,9,7,3,1],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%=10,b+""===a.substr(9,1)},g=function(a){for(var b=0,c=[4,3,2,7,6,5,4,3,2],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b?!1:(11===b&&(b=0),b+""===a.substr(9,1))};return e(b)||f(b)||g(b)}return!1},_br:function(a){if(""===a)return!0;var b=a.replace(/[^\d]+/g,"");if(""===b||14!==b.length)return!1;if("00000000000000"===b||"11111111111111"===b||"22222222222222"===b||"33333333333333"===b||"44444444444444"===b||"55555555555555"===b||"66666666666666"===b||"77777777777777"===b||"88888888888888"===b||"99999999999999"===b)return!1;for(var c=b.length-2,d=b.substring(0,c),e=b.substring(c),f=0,g=c-7,h=c;h>=1;h--)f+=parseInt(d.charAt(c-h),10)*g--,2>g&&(g=9);var i=2>f%11?0:11-f%11;if(i!==parseInt(e.charAt(0),10))return!1;for(c+=1,d=b.substring(0,c),f=0,g=c-7,h=c;h>=1;h--)f+=parseInt(d.charAt(c-h),10)*g--,2>g&&(g=9);return i=2>f%11?0:11-f%11,i===parseInt(e.charAt(1),10)},_ch:function(a){if(/^CHE[0-9]{9}(MWST)?$/.test(a)&&(a=a.substr(2)),!/^E[0-9]{9}(MWST)?$/.test(a))return!1;a=a.substr(1);for(var b=0,c=[5,4,3,2,7,6,5,4],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b?!1:(11===b&&(b=0),b+""===a.substr(8,1))},_cy:function(a){if(/^CY[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a)&&(a=a.substr(2)),!/^[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a))return!1;if("12"===a.substr(0,2))return!1;for(var b=0,c={0:1,1:0,2:5,3:7,4:9,5:13,6:15,7:17,8:19,9:21},d=0;8>d;d++){var e=parseInt(a.charAt(d),10);d%2===0&&(e=c[e+""]),b+=e}return b="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[b%26],b+""===a.substr(8,1)},_cz:function(b){if(/^CZ[0-9]{8,10}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{8,10}$/.test(b))return!1;var c=0,d=0;if(8===b.length){if(b.charAt(0)+""=="9")return!1;for(c=0,d=0;7>d;d++)c+=parseInt(b.charAt(d),10)*(8-d);return c=11-c%11,10===c&&(c=0),11===c&&(c=1),c+""===b.substr(7,1)}if(9===b.length&&b.charAt(0)+""=="6"){for(c=0,d=0;7>d;d++)c+=parseInt(b.charAt(d+1),10)*(8-d);return c=11-c%11,10===c&&(c=0),11===c&&(c=1),c=[8,7,6,5,4,3,2,1,0,9,10][c-1],c+""===b.substr(8,1)}if(9===b.length||10===b.length){var e=1900+parseInt(b.substr(0,2),10),f=parseInt(b.substr(2,2),10)%50%20,g=parseInt(b.substr(4,2),10);if(9===b.length){if(e>
vendor: 8,828 bytes, lines 6685-6686
6685=1980&&(e-=100),e>1953)return!1}else 1954>e&&(e+=100);if(!a.fn.bootstrapValidator.helpers.date(e,f,g))return!1;if(10===b.length){var h=parseInt(b.substr(0,9),10)%11;return 1985>e&&(h%=10),h+""===b.substr(9,1)}return!0}return!1},_de:function(b){return/^DE[0-9]{9}$/.test(b)&&(b=b.substr(2)),/^[0-9]{9}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_dk:function(a){if(/^DK[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[2,7,6,5,4,3,2,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_ee:function(a){if(/^EE[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[3,7,1,3,7,1,3,7,1],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%10===0},_es:function(a){if(/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a)&&(a=a.substr(2)),!/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a))return!1;var b=function(a){var b=parseInt(a.substr(0,8),10);return b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1)},c=function(a){var b=["XYZ".indexOf(a.charAt(0)),a.substr(1)].join("");return b=parseInt(b,10),b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1)},d=function(a){var b,c=a.charAt(0);if(-1!=="KLM".indexOf(c))return b=parseInt(a.substr(1,8),10),b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1);if(-1!=="ABCDEFGHJNPQRSUVW".indexOf(c)){for(var d=0,e=[2,1,2,1,2,1,2],f=0,g=0;7>g;g++)f=parseInt(a.charAt(g+1),10)*e[g],f>9&&(f=Math.floor(f/10)+f%10),d+=f;return d=10-d%10,d+""===a.substr(8,1)||"JABCDEFGHI"[d]===a.substr(8,1)}return!1},e=a.charAt(0);return/^[0-9]$/.test(e)?b(a):/^[XYZ]$/.test(e)?c(a):d(a)},_fi:function(a){if(/^FI[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[7,9,10,5,8,4,2,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_fr:function(b){if(/^FR[0-9A-Z]{2}[0-9]{9}$/.test(b)&&(b=b.substr(2)),!/^[0-9A-Z]{2}[0-9]{9}$/.test(b))return!1;if(!a.fn.bootstrapValidator.helpers.luhn(b.substr(2)))return!1;if(/^[0-9]{2}$/.test(b.substr(0,2)))return b.substr(0,2)===parseInt(b.substr(2)+"12",10)%97+"";var c,d="0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";return c=/^[0-9]{1}$/.test(b.charAt(0))?24*d.indexOf(b.charAt(0))+d.indexOf(b.charAt(1))-10:34*d.indexOf(b.charAt(0))+d.indexOf(b.charAt(1))-100,(parseInt(b.substr(2),10)+1+Math.floor(c/11))%11===c%11},_gb:function(a){if((/^GB[0-9]{9}$/.test(a)||/^GB[0-9]{12}$/.test(a)||/^GBGD[0-9]{3}$/.test(a)||/^GBHA[0-9]{3}$/.test(a)||/^GB(GD|HA)8888[0-9]{5}$/.test(a))&&(a=a.substr(2)),!(/^[0-9]{9}$/.test(a)||/^[0-9]{12}$/.test(a)||/^GD[0-9]{3}$/.test(a)||/^HA[0-9]{3}$/.test(a)||/^(GD|HA)8888[0-9]{5}$/.test(a)))return!1;var b=a.length;if(5===b){var c=a.substr(0,2),d=parseInt(a.substr(2),10);return"GD"===c&&500>d||"HA"===c&&d>=500}if(11===b&&("GD8888"===a.substr(0,6)||"HA8888"===a.substr(0,6)))return"GD"===a.substr(0,2)&&parseInt(a.substr(6,3),10)>=500||"HA"===a.substr(0,2)&&parseInt(a.substr(6,3),10)<500?!1:parseInt(a.substr(6,3),10)%97===parseInt(a.substr(9,2),10);if(9===b||12===b){for(var e=0,f=[8,7,6,5,4,3,2,10,1],g=0;9>g;g++)e+=parseInt(a.charAt(g),10)*f[g];return e%=97,parseInt(a.substr(0,3),10)>=100?0===e||42===e||55===e:0===e}return!0},_gr:function(a){if(/^(GR|EL)[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;8===a.length&&(a="0"+a);for(var b=0,c=[256,128,64,32,16,8,4,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=b%11%10,b+""===a.substr(8,1)},_el:function(a){return this._gr(a)},_hu:function(a){if(/^HU[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[9,7,3,1,9,7,3,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%10===0},_hr:function(b){return/^HR[0-9]{11}$/.test(b)&&(b=b.substr(2)),/^[0-9]{11}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_ie:function(a){if(/^IE[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a))return!1;var b=function(a){for(;a.length<7;)a="0"+a;for(var b="WABCDEFGHIJKLMNOPQRSTUV",c=0,d=0;7>d;d++)c+=parseInt(a.charAt(d),10)*(8-d);return c+=9*b.indexOf(a.substr(7)),b[c%23]};return/^[0-9]+$/.test(a.substr(0,7))?a.charAt(7)===b(a.substr(0,7)+a.substr(8)+""):-1!=="ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".indexOf(a.charAt(1))?a.charAt(7)===b(a.substr(2,5)+a.substr(0,1)+""):!0},_is:function(a){return/^IS[0-9]{5,6}$/.test(a)&&(a=a.substr(2)),/^[0-9]{5,6}$/.test(a)},_it:function(b){if(/^IT[0-9]{11}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{11}$/.test(b))return!1;if(0===parseInt(b.substr(0,7),10))return!1;var c=parseInt(b.substr(7,3),10);return 1>c||c>201&&999!==c&&888!==c?!1:a.fn.bootstrapValidator.helpers.luhn(b)},_lt:function(a){if(/^LT([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a)&&(a=a.substr(2)),!/^([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a))return!1;var b,c=a.length,d=0;for(b=0;c-1>b;b++)d+=parseInt(a.charAt(b),10)*(1+b%9);var e=d%11;if(10===e)for(d=0,b=0;c-1>b;b++)d+=parseInt(a.charAt(b),10)*(1+(b+2)%9);return e=e%11%10,e+""===a.charAt(c-1)},_lu:function(a){return/^LU[0-9]{8}$/.test(a)&&(a=a.substr(2)),/^[0-9]{8}$/.test(a)?parseInt(a.substr(0,6),10)%89+""===a.substr(6,2):!1},_lv:function(b){if(/^LV[0-9]{11}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{11}$/.test(b))return!1;var c,d=parseInt(b.charAt(0),10),e=0,f=[],g=b.length; 6686if(d>3){for(e=0,f=[9,1,4,8,3,10,2,5,7,6,1],c=0;g>c;c++)e+=parseInt(b.charAt(c),10)*f[c];return e%=11,3===e}var h=parseInt(b.substr(0,2),10),i=parseInt(b.substr(2,2),10),j=parseInt(b.substr(4,2),10);if(j=j+1800+100*parseInt(b.charAt(6),10),!a.fn.bootstrapValidator.helpers.date(j,i,h))return!1;for(e=0,f=[10,5,8,4,2,1,6,3,7,9],c=0;g-1>c;c++)e+=parseInt(b.charAt(c),10)*f[c];return e=(e+1)%11%10,e+""===b.charAt(g-1)},_mt:function(a){if(/^MT[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[3,4,6,7,8,9,10,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%37===0},_nl:function(a){if(/^NL[0-9]{9}B[0-9]{2}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}B[0-9]{2}$/.test(a))return!1;for(var b=0,c=[9,8,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%=11,b>9&&(b=0),b+""===a.substr(8,1)},_no:function(a){if(/^NO[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[3,2,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,11===b&&(b=0),b+""===a.substr(8,1)},_pl:function(a){if(/^PL[0-9]{10}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{10}$/.test(a))return!1;for(var b=0,c=[6,5,7,2,3,4,5,6,7,-1],d=0;10>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_pt:function(a){if(/^PT[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[9,8,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,b>9&&(b=0),b+""===a.substr(8,1)},_ro:function(a){if(/^RO[1-9][0-9]{1,9}$/.test(a)&&(a=a.substr(2)),!/^[1-9][0-9]{1,9}$/.test(a))return!1;for(var b=a.length,c=[7,5,3,2,1,7,5,3,2].slice(10-b),d=0,e=0;b-1>e;e++)d+=parseInt(a.charAt(e),10)*c[e];return d=10*d%11%10,d+""===a.substr(b-1,1)},_ru:function(a){if(/^RU([0-9]{10}|[0-9]{12})$/.test(a)&&(a=a.substr(2)),!/^([0-9]{10}|[0-9]{12})$/.test(a))return!1;var b=0;if(10===a.length){var c=0,d=[2,4,10,3,5,9,4,6,8,0];for(b=0;10>b;b++)c+=parseInt(a.charAt(b),10)*d[b];return c%=11,c>9&&(c%=10),c+""===a.substr(9,1)}if(12===a.length){var e=0,f=[7,2,4,10,3,5,9,4,6,8,0],g=0,h=[3,7,2,4,10,3,5,9,4,6,8,0];for(b=0;11>b;b++)e+=parseInt(a.charAt(b),10)*f[b],g+=parseInt(a.charAt(b),10)*h[b];return e%=11,e>9&&(e%=10),g%=11,g>9&&(g%=10),e+""===a.substr(10,1)&&g+""===a.substr(11,1)}return!1},_rs:function(a){if(/^RS[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=10,c=0,d=0;8>d;d++)c=(parseInt(a.charAt(d),10)+b)%10,0===c&&(c=10),b=2*c%11;return(b+parseInt(a.substr(8,1),10))%10===1},_se:function(b){return/^SE[0-9]{10}01$/.test(b)&&(b=b.substr(2)),/^[0-9]{10}01$/.test(b)?(b=b.substr(0,10),a.fn.bootstrapValidator.helpers.luhn(b)):!1},_si:function(a){if(/^SI[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[8,7,6,5,4,3,2],d=0;7>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b&&(b=0),b+""===a.substr(7,1)},_sk:function(a){return/^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a)&&(a=a.substr(2)),/^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a)?parseInt(a,10)%11===0:!1},_ve:function(a){if(/^VE[VEJPG][0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[VEJPG][0-9]{9}$/.test(a))return!1;for(var b={V:4,E:8,J:12,P:16,G:20},c=b[a.charAt(0)],d=[3,2,7,6,5,4,3,2],e=0;8>e;e++)c+=parseInt(a.charAt(e+1),10)*d[e];return c=11-c%11,(11===c||10===c)&&(c=0),c+""===a.substr(9,1)},_za:function(a){return/^ZA4[0-9]{9}$/.test(a)&&(a=a.substr(2)),/^4[0-9]{9}$/.test(a)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.vin=a.extend(a.fn.bootstrapValidator.i18n.vin||{},{"default":"Please enter a valid VIN number"}),a.fn.bootstrapValidator.validators.vin={validate:function(a,b){var c=b.val();if(""===c)return!0;
6686if(!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(c))return!1;c=c.toUpperCase();for(var d={A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,J:1,K:2,L:3,M:4,N:5,P:7,R:9,S:2,T:3,U:4,V:5,W:6,X:7,Y:8,Z:9,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,0:0},e=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],f=0,g=c.length,h=0;g>h;h++)f+=d[c.charAt(h)+""]*e[h];var i=f%11;return 10===i&&(i="X"),i+""===c.charAt(8)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.zipCode=a.extend(a.fn.bootstrapValidator.i18n.zipCode||{},{"default":"Please enter a valid postal code",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid postal code in %s",countries:{BR:"Brazil",CA:"Canada",CZ:"Czech Republic",DK:"Denmark",GB:"United Kingdom",IT:"Italy",MA:"Morocco",NL:"Netherlands",RO:"Romania",RU:"Russia",SE:"Sweden",SG:"Singapore",SK:"Slovakia",US:"USA"}}),a.fn.bootstrapValidator.validators.zipCode={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["BR","CA","CZ","DK","GB","IT","MA","NL","RO","RU","SE","SG","SK","US"],validate:function(b,c,d){var e=c.val();if(""===e||!d.country)return!0;var f=d.country;if(("string"!=typeof f||-1===a.inArray(f,this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)),!f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.zipCode.countryNotSupported,f)};var g=!1;switch(f=f.toUpperCase()){case"BR":g=/^(\d{2})([\.]?)(\d{3})([\-]?)(\d{3})$/.test(e);break;case"CA":g=/^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(e);break;case"CZ":g=/^(\d{3})([ ]?)(\d{2})$/.test(e);break;case"DK":g=/^(DK(-|\s)?)?\d{4}$/i.test(e);break;case"GB":g=this._gb(e);break;case"IT":g=/^(I-|IT-)?\d{5}$/i.test(e);break;case"MA":g=/^[1-9][0-9]{4}$/i.test(e);break;case"NL":g=/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(e);break;case"RO":g=/^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(e);break;case"RU":g=/^[0-9]{6}$/i.test(e);break;case"SE":g=/^(S-)?\d{3}\s?\d{2}$/i.test(e);break;case"SG":g=/^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(e);break;case"SK":g=/^(\d{3})([ ]?)(\d{2})$/.test(e);break;case"US":default:g=/^\d{4,5}([\-]?\d{4})?$/.test(e)}return{valid:g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.zipCode.country,a.fn.bootstrapValidator.i18n.zipCode.countries[f])}},_gb:function(a){for(var b="[ABCDEFGHIJKLMNOPRSTUWYZ]",c="[ABCDEFGHKLMNOPQRSTUVWXY]",d="[ABCDEFGHJKPMNRSTUVWXY]",e="[ABEHMNPRVWXY]",f="[ABDEFGHJLNPQRSTUWXYZ]",g=[new RegExp("^("+b+"{1}"+c+"?[0-9]{1,2})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^("+b+"{1}[0-9]{1}"+d+"{1})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^("+b+"{1}"+c+"{1}?[0-9]{1}"+e+"{1})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$","i"),/^(GIR)(\s*)(0AA)$/i,/^(BFPO)(\s*)([0-9]{1,4})$/i,/^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i,/^([A-Z]{4}
6686)(\s*)(1ZZ)$/i,/^(AI-2640)$/i],h=0;h<g.length;h++)if(g[h].test(a))return!0;return!1}}}(window.jQuery);; 6687(function($) { 6688 $.fn.bootstrapValidator.i18n = $.extend(true, $.fn.bootstrapValidator.i18n, { 6689 base64: { 6690 'default': 'Vui lòng nháºp chuá»i mã hoá base64 hợp lá»' 6691 }, 6692 between: { 6693 'default': 'Vui lòng nháºp giá trá» nằm giữa %s và %s', 6694 notInclusive: 'Vui lòng nháºp giá trá» nằm giữa %s và %s' 6695 }, 6696 callback: { 6697 'default': 'Vui lòng nháºp giá trá» hợp lá»' 6698 }, 6699 choice: { 6700 'default': 'Vui lòng nháºp giá trá» hợp lá»', 6701 less: 'Vui lòng chá»n Ãt nhất %s lá»±a chá»n', 6702 more: 'Vui lòng chá»n nhiá»u nhất %s lá»±a chá»n', 6703 between: 'Vui lòng chá»n %s - %s lá»±a chá»n' 6704 }, 6705 creditCard: { 6706 'default': 'Vui lòng nháºp sá» thẻ tÃn dụng hợp lá»' 6707 }, 6708 cusip: { 6709 'default': 'Vui lòng nháºp sá» CUSIP hợp lá»' 6710 }, 6711 cvv: { 6712 'default': 'Vui lòng nháºp sá» CVV hợp lá»' 6713 }, 6714 date: { 6715 'default': 'Vui lòng nháºp ngà y hợp lá»' 6716 }, 6717 different: { 6718 'default': 'Vui lòng nháºp má»t giá trá» khác' 6719 }, 6720 digits: { 6721 'default': 'Vui lòng chá» nháºp sá»' 6722 }, 6723 ean: { 6724 'default': 'Vui lòng nháºp sá» EAN hợp lá»' 6725 }, 6726 emailAddress: { 6727 'default': 'Vui lòng nháºp Äá»a chá» email hợp lá»' 6728 }, 6729 file: { 6730 'default': 'Vui lòng chá»n file hợp lá»' 6731 }, 6732 greaterThan: { 6733 'default': 'Vui lòng nháºp giá trá» lá»n hÆ¡n hoặc bằng %s', 6734 notInclusive: 'Vui lòng nháºp giá trá» lá»n hÆ¡n %s' 6735 }, 6736 grid: { 6737 'default': 'Vui lòng nháºp sá» GRId hợp lá»' 6738 }, 6739 hex: { 6740 'default': 'Vui lòng nháºp sá» hexa hợp lá»' 6741 }, 6742 hexColor: { 6743 'default': 'Vui lòng nháºp mã mà u hợp lá»' 6744 }, 6745 iban: { 6746 'default': 'Vui lòng nháºp sá» IBAN hợp lá»', 6747 countryNotSupported: 'Mã quá»c gia %s không ÄÆ°á»£c há» trợ', 6748 country: 'Vui lòng nháºp mã IBAN hợp lá» cá»§a %s', 6749 countries: { 6750 AD: 'Andorra', 6751 AE: 'Tiá»u vương quá»c Ả Ráºp thá»ng nhất', 6752 AL: 'Albania', 6753 AO: 'Angola', 6754 AT: 'Ão', 6755 AZ: 'Azerbaijan', 6756 BA: 'Bosnia và Herzegovina', 6757 BE: 'Bá»', 6758 BF: 'Burkina Faso', 6759 BG: 'Bulgaria', 6760 BH: 'Bahrain', 6761 BI: 'Burundi', 6762 BJ: 'Benin', 6763 BR: 'Brazil', 6764 CH: 'Thuỵ SÄ©', 6765 CI: 'Bá» Biá»n Ngà ', 6766 CM: 'Cameroon', 6767 CR: 'Costa Rica', 6768 CV: 'Cape Verde', 6769 CY: 'SÃp', 6770 CZ: 'Séc', 6771 DE: 'Äức', 6772 DK: 'Äan Mạch', 6773 DO: 'Dominican', 6774 DZ: 'Algeria', 6775 EE: 'Estonia', 6776 ES: 'Tây Ban Nha', 6777 FI: 'Phần Lan', 6778 FO: 'Äảo Faroe', 6779 FR: 'Pháp', 6780 GB: 'Vương quá»c Anh', 6781 GE: 'Georgia', 6782 GI: 'Gibraltar', 6783 GL: 'Greenland', 6784 GR: 'Hy Lạp', 6785 GT: 'Guatemala', 6786 HR: 'Croatia', 6787 HU: 'Hungary', 6788 IE: 'Ireland', 6789 IL: 'Israel', 6790 IR: 'Iran', 6791 IS: 'Iceland', 6792 IT: 'Ã', 6793 JO: 'Jordan', 6794 KW: 'Kuwait', 6795 KZ: 'Kazakhstan', 6796 LB: 'Lebanon', 6797 LI: 'Liechtenstein', 6798 LT: 'Lithuania', 6799 LU: 'Luxembourg', 6800 LV: 'Latvia', 6801 MC: 'Monaco', 6802 MD: 'Moldova', 6803 ME: 'Montenegro', 6804 MG: 'Madagascar', 6805 MK: 'Macedonia', 6806 ML: 'Mali', 6807 MR: 'Mauritania', 6808 MT: 'Malta', 6809 MU: 'Mauritius', 6810 MZ: 'Mozambique', 6811 NL: 'Hà Lan', 6812 NO: 'Na Uy', 6813 PK: 'Pakistan', 6814 PL: 'Ba Lan', 6815 PS: 'Palestine', 6816 PT: 'Bá» Äà o Nha', 6817 QA: 'Qatar', 6818 RO: 'Romania', 6819 RS: 'Serbia', 6820 SA: 'Ả Ráºp Xê Ãt', 6821 SE: 'Thuỵ Äiá»n', 6822 SI: 'Slovenia', 6823 SK: 'Slovakia', 6824 SM: 'San Marino', 6825 SN: 'Senegal', 6826 TN: 'Tunisia', 6827 TR: 'Thá» NhÄ© Kỳ', 6828 VG: 'Äảo Virgin, Anh quá»c' 6829 } 6830 }, 6831 id: { 6832 'default': 'Vui lòng nháºp mã ID hợp lá»', 6833 countryNotSupported: 'Mã quá»c gia %s không ÄÆ°á»£c há» trợ', 6834 country: 'Vui lòng nháºp mã ID hợp lá» cá»§a %s', 6835 countries: { 6836 BA: 'Bosnia và Herzegovina', 6837 BG: 'Bulgaria', 6838 BR: 'Brazil', 6839 CH: 'Thuỵ SÄ©', 6840 CL: 'Chi Lê', 6841 CN: 'Trung Quá»c', 6842 CZ: 'Séc', 6843 DK: 'Äan Mạch', 6844 EE: 'Estonia', 6845 ES: 'Tây Ban Nha', 6846 FI: 'Phần Lan', 6847 HR: 'Croatia', 6848 IE: 'Ireland', 6849 IS: 'Iceland', 6850 LT: 'Lithuania', 6851 LV: 'Latvia', 6852 ME: 'Montenegro', 6853 MK: 'Macedonia', 6854 NL: 'Hà Lan', 6855 RO: 'Romania', 6856 RS: 'Serbia', 6857 SE: 'Thuỵ Äiá»n', 6858 SI: 'Slovenia', 6859 SK: 'Slovakia', 6860 SM: 'San Marino', 6861 TH: 'Thái Lan', 6862 ZA: 'Nam Phi' 6863 } 6864 }, 6865 identical: { 6866 'default': 'Vui lòng nháºp cùng giá trá»' 6867 }, 6868 imei: { 6869 'default': 'Vui lòng nháºp sá» IMEI hợp lá»' 6870 }, 6871 imo: { 6872 'default': 'Vui lòng nháºp sá» IMO hợp lá»' 6873 }, 6874 integer: { 6875 'default': 'Vui lòng nháºp sá» hợp lá»' 6876 }, 6877 ip: { 6878 'default': 'Vui lòng nháºp Äá»a chá» IP hợp lá»', 6879 ipv4: 'Vui lòng nháºp Äá»a chá» IPv4 hợp lá»', 6880 ipv6: 'Vui lòng nháºp Äá»a chá» IPv6 hợp lá»' 6881 }, 6882 isbn: { 6883 'default': 'Vui lòng nháºp sá» ISBN hợp lá»' 6884 }, 6885 isin: { 6886 'default': 'Vui lòng nháºp sá» ISIN hợp lá»' 6887 }, 6888 ismn: { 6889 'default': 'Vui lòng nháºp sá» ISMN hợp lá»' 6890 }, 6891 issn: { 6892 'default': 'Vui lòng nháºp sá» ISSN hợp lá»' 6893 }, 6894 lessThan: { 6895 'default': 'Vui lòng nháºp giá trá» nhá» hÆ¡n hoặc bằng %s', 6896 notInclusive: 'Vui lòng nháºp giá trá» nhá» hÆ¡n %s' 6897 }, 6898 mac: { 6899 'default': 'Vui lòng nháºp Äá»a chá» MAC hợp lá»' 6900 }, 6901 meid: { 6902 'default': 'Vui lòng nháºp sá» MEID hợp lá»' 6903 }, 6904 notEmpty: { 6905 'default': 'Vui lòng nháºp giá trá»' 6906 }, 6907 numeric: { 6908 'default': 'Vui lòng nháºp sá» hợp lá»' 6909 }, 6910 phone: { 6911 'default': 'Vui lòng nháºp sá» Äiá»n thoại hợp lá»', 6912 countryNotSupported: 'Mã quá»c gia %s không ÄÆ°á»£c há» trợ', 6913 country: 'Vui lòng nháºp sá» Äiá»n thoại hợp lá» cá»§a %s', 6914 countries: { 6915 BR: 'Brazil', 6916 CN: 'Trung Quá»c', 6917 CZ: 'Séc', 6918 DK: 'Äan Mạch', 6919 ES: 'Tây Ban Nha', 6920 FR: 'Pháp', 6921 GB: 'Vương quá»c Anh', 6922 MA: 'Maroc', 6923 PK: 'Pakistan', 6924 RO: 'Romania', 6925 RU: 'Nga', 6926 SK: 'Slovakia', 6927 TH: 'Thái Lan', 6928 US: 'Mỹ', 6929 VE: 'Venezuela' 6930 } 6931 }, 6932 regexp: { 6933 'default': 'Vui lòng nháºp giá trá» thÃch hợp vá»i biá»u mẫu'
vendor: 17,204 bytes, lines 6934-7489
6934 }, 6935 remote: { 6936 'default': 'Vui lòng nháºp giá trá» hợp lá»' 6937 }, 6938 rtn: { 6939 'default': 'Vui lòng nháºp sá» RTN hợp lá»' 6940 }, 6941 sedol: { 6942 'default': 'Vui lòng nháºp sá» SEDOL hợp lá»' 6943 }, 6944 siren: { 6945 'default': 'Vui lòng nháºp sá» Siren hợp lá»' 6946 }, 6947 siret: { 6948 'default': 'Vui lòng nháºp sá» Siret hợp lá»' 6949 }, 6950 step: { 6951 'default': 'Vui lòng nháºp bưá»c nhảy cá»§a %s' 6952 }, 6953 stringCase: { 6954 'default': 'Vui lòng nháºp ký tá»± thưá»ng', 6955 upper: 'Vui lòng nháºp ký tá»± in hoa' 6956 }, 6957 stringLength: { 6958 'default': 'Vui lòng nháºp giá trá» có Äá» dà i hợp lá»', 6959 less: 'Vui lòng nháºp Ãt hÆ¡n %s ký tá»±', 6960 more: 'Vui lòng nháºp nhiá»u hÆ¡n %s ký tá»±', 6961 between: 'Vui lòng nháºp giá trá» có Äá» dà i trong khoảng %s và %s ký tá»±' 6962 }, 6963 uri: { 6964 'default': 'Vui lòng nháºp Äá»a chá» URI hợp lá»' 6965 }, 6966 uuid: { 6967 'default': 'Vui lòng nháºp sá» UUID hợp lá»', 6968 version: 'Vui lòng nháºp sá» UUID phiên bản %s hợp lá»' 6969 }, 6970 vat: { 6971 'default': 'Vui lòng nháºp sá» VAT hợp lá»', 6972 countryNotSupported: 'Mã quá»c gia %s không ÄÆ°á»£c há» trợ', 6973 country: 'Vui lòng nháºp sá» VAT hợp lá» cá»§a %s', 6974 countries: { 6975 AT: 'Ão', 6976 BE: 'Bá»', 6977 BG: 'Bulgaria', 6978 BR: 'Brazil', 6979 CH: 'Thuỵ SÄ©', 6980 CY: 'SÃp', 6981 CZ: 'Séc', 6982 DE: 'Äức', 6983 DK: 'Äan Mạch', 6984 EE: 'Estonia', 6985 ES: 'Tây Ban Nha', 6986 FI: 'Phần Lan', 6987 FR: 'Pháp', 6988 GB: 'Vương quá»c Anh', 6989 GR: 'Hy Lạp', 6990 EL: 'Hy Lạp', 6991 HU: 'Hungari', 6992 HR: 'Croatia', 6993 IE: 'Ireland', 6994 IS: 'Iceland', 6995 IT: 'Ã', 6996 LT: 'Lithuania', 6997 LU: 'Luxembourg', 6998 LV: 'Latvia', 6999 MT: 'Malta', 7000 NL: 'Hà Lan', 7001 NO: 'Na Uy', 7002 PL: 'Ba Lan', 7003 PT: 'Bá» Äà o Nha', 7004 RO: 'Romania', 7005 RU: 'Nga', 7006 RS: 'Serbia', 7007 SE: 'Thuỵ Äiá»n', 7008 SI: 'Slovenia', 7009 SK: 'Slovakia', 7010 VE: 'Venezuela', 7011 ZA: 'Nam Phi' 7012 } 7013 }, 7014 vin: { 7015 'default': 'Vui lòng nháºp sá» VIN hợp lá»' 7016 }, 7017 zipCode: { 7018 'default': 'Vui lòng nháºp mã bưu Äiá»n hợp lá»', 7019 countryNotSupported: 'Mã quá»c gia %s không ÄÆ°á»£c há» trợ', 7020 country: 'Vui lòng nháºp mã bưu Äiá»n hợp lá» cá»§a %s', 7021 countries: { 7022 BR: 'Brazil', 7023 CA: 'Canada', 7024 CZ: 'Séc', 7025 DK: 'Äan Mạch', 7026 GB: 'Vương quá»c Anh', 7027 IT: 'Ã', 7028 MA: 'Maroc', 7029 NL: 'Hà Lan', 7030 RO: 'Romania', 7031 RU: 'Nga', 7032 SE: 'Thuỵ SÄ©', 7033 SG: 'Singapore', 7034 SK: 'Slovakia', 7035 US: 'Mỹ' 7036 } 7037 } 7038 }); 7039}(window.jQuery)); 7040; 7041//! moment.js 7042//! version : 2.29.1 7043//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 7044//! license : MIT 7045//! momentjs.com 7046 7047;(function (global, factory) { 7048 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 7049 typeof define === 'function' && define.amd ? define(factory) : 7050 global.moment = factory() 7051}(this, (function () { 'use strict'; 7052 7053 var hookCallback; 7054 7055 function hooks() { 7056 return hookCallback.apply(null, arguments); 7057 } 7058 7059 // This is done to register the method called with moment() 7060 // without creating circular dependencies. 7061 function setHookCallback(callback) { 7062 hookCallback = callback; 7063 } 7064 7065 function isArray(input) { 7066 return ( 7067 input instanceof Array || 7068 Object.prototype.toString.call(input) === '[object Array]' 7069 ); 7070 } 7071 7072 function isObject(input) { 7073 // IE8 will treat undefined and null as object if it wasn't for 7074 // input != null 7075 return ( 7076 input != null && 7077 Object.prototype.toString.call(input) === '[object Object]' 7078 ); 7079 } 7080 7081 function hasOwnProp(a, b) { 7082 return Object.prototype.hasOwnProperty.call(a, b); 7083 } 7084 7085 function isObjectEmpty(obj) { 7086 if (Object.getOwnPropertyNames) { 7087 return Object.getOwnPropertyNames(obj).length === 0; 7088 } else { 7089 var k; 7090 for (k in obj) { 7091 if (hasOwnProp(obj, k)) { 7092 return false; 7093 } 7094 } 7095 return true; 7096 } 7097 } 7098 7099 function isUndefined(input) { 7100 return input === void 0; 7101 } 7102 7103 function isNumber(input) { 7104 return ( 7105 typeof input === 'number' || 7106 Object.prototype.toString.call(input) === '[object Number]' 7107 ); 7108 } 7109 7110 function isDate(input) { 7111 return ( 7112 input instanceof Date || 7113 Object.prototype.toString.call(input) === '[object Date]' 7114 ); 7115 } 7116 7117 function map(arr, fn) { 7118 var res = [], 7119 i; 7120 for (i = 0; i < arr.length; ++i) { 7121 res.push(fn(arr[i], i)); 7122 } 7123 return res; 7124 } 7125 7126 function extend(a, b) { 7127 for (var i in b) { 7128 if (hasOwnProp(b, i)) { 7129 a[i] = b[i]; 7130 } 7131 } 7132 7133 if (hasOwnProp(b, 'toString')) { 7134 a.toString = b.toString; 7135 } 7136 7137 if (hasOwnProp(b, 'valueOf')) { 7138 a.valueOf = b.valueOf; 7139 } 7140 7141 return a; 7142 } 7143 7144 function createUTC(input, format, locale, strict) { 7145 return createLocalOrUTC(input, format, locale, strict, true).utc(); 7146 } 7147 7148 function defaultParsingFlags() { 7149 // We need to deep clone this object. 7150 return { 7151 empty: false, 7152 unusedTokens: [], 7153 unusedInput: [], 7154 overflow: -2, 7155 charsLeftOver: 0, 7156 nullInput: false, 7157 invalidEra: null, 7158 invalidMonth: null, 7159 invalidFormat: false, 7160 userInvalidated: false, 7161 iso: false, 7162 parsedDateParts: [], 7163 era: null, 7164 meridiem: null, 7165 rfc2822: false, 7166 weekdayMismatch: false, 7167 }; 7168 } 7169 7170 function getParsingFlags(m) { 7171 if (m._pf == null) { 7172 m._pf = defaultParsingFlags(); 7173 } 7174 return m._pf; 7175 } 7176 7177 var some; 7178 if (Array.prototype.some) { 7179 some = Array.prototype.some; 7180 } else { 7181 some = function (fun) { 7182 var t = Object(this), 7183 len = t.length >>> 0, 7184 i; 7185 7186 for (i = 0; i < len; i++) { 7187 if (i in t && fun.call(this, t[i], i, t)) { 7188 return true; 7189 } 7190 } 7191 7192 return false; 7193 }; 7194 } 7195 7196 function isValid(m) { 7197 if (m._isValid == null) { 7198 var flags = getParsingFlags(m), 7199 parsedParts = some.call(flags.parsedDateParts, function (i) { 7200 return i != null; 7201 }), 7202 isNowValid = 7203 !isNaN(m._d.getTime()) && 7204 flags.overflow < 0 && 7205 !flags.empty && 7206 !flags.invalidEra && 7207 !flags.invalidMonth && 7208 !flags.invalidWeekday && 7209 !flags.weekdayMismatch && 7210 !flags.nullInput && 7211 !flags.invalidFormat && 7212 !flags.userInvalidated && 7213 (!flags.meridiem || (flags.meridiem && parsedParts)); 7214 7215 if (m._strict) { 7216 isNowValid = 7217 isNowValid && 7218 flags.charsLeftOver === 0 && 7219 flags.unusedTokens.length === 0 && 7220 flags.bigHour === undefined; 7221 } 7222 7223 if (Object.isFrozen == null || !Object.isFrozen(m)) { 7224 m._isValid = isNowValid; 7225 } else { 7226 return isNowValid; 7227 } 7228 } 7229 return m._isValid; 7230 } 7231 7232 function createInvalid(flags) { 7233 var m = createUTC(NaN); 7234 if (flags != null) { 7235 extend(getParsingFlags(m), flags); 7236 } else { 7237 getParsingFlags(m).userInvalidated = true; 7238 } 7239 7240 return m; 7241 } 7242 7243 // Plugins that add properties should also add the key here (null value), 7244 // so we can properly clone ourselves. 7245 var momentProperties = (hooks.momentProperties = []), 7246 updateInProgress = false; 7247 7248 function copyConfig(to, from) { 7249 var i, prop, val; 7250 7251 if (!isUndefined(from._isAMomentObject)) { 7252 to._isAMomentObject = from._isAMomentObject; 7253 } 7254 if (!isUndefined(from._i)) { 7255 to._i = from._i; 7256 } 7257 if (!isUndefined(from._f)) { 7258 to._f = from._f; 7259 } 7260 if (!isUndefined(from._l)) { 7261 to._l = from._l; 7262 } 7263 if (!isUndefined(from._strict)) { 7264 to._strict = from._strict; 7265 } 7266 if (!isUndefined(from._tzm)) { 7267 to._tzm = from._tzm; 7268 } 7269 if (!isUndefined(from._isUTC)) { 7270 to._isUTC = from._isUTC; 7271 } 7272 if (!isUndefined(from._offset)) { 7273 to._offset = from._offset; 7274 } 7275 if (!isUndefined(from._pf)) { 7276 to._pf = getParsingFlags(from); 7277 } 7278 if (!isUndefined(from._locale)) { 7279 to._locale = from._locale; 7280 } 7281 7282 if (momentProperties.length > 0) { 7283 for (i = 0; i < momentProperties.length; i++) { 7284 prop = momentProperties[i]; 7285 val = from[prop]; 7286 if (!isUndefined(val)) { 7287 to[prop] = val; 7288 } 7289 } 7290 } 7291 7292 return to; 7293 } 7294 7295 // Moment prototype object 7296 function Moment(config) { 7297 copyConfig(this, config); 7298 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 7299 if (!this.isValid()) { 7300 this._d = new Date(NaN); 7301 } 7302 // Prevent infinite loop in case updateOffset creates new moment 7303 // objects. 7304 if (updateInProgress === false) { 7305 updateInProgress = true; 7306 hooks.updateOffset(this); 7307 updateInProgress = false; 7308 } 7309 } 7310 7311 function isMoment(obj) { 7312 return ( 7313 obj instanceof Moment || (obj != null && obj._isAMomentObject != null) 7314 ); 7315 } 7316 7317 function warn(msg) { 7318 if ( 7319 hooks.suppressDeprecationWarnings === false && 7320 typeof console !== 'undefined' && 7321 console.warn 7322 ) { 7323 console.warn('Deprecation warning: ' + msg); 7324 } 7325 } 7326 7327 function deprecate(msg, fn) { 7328 var firstTime = true; 7329 7330 return extend(function () { 7331 if (hooks.deprecationHandler != null) { 7332 hooks.deprecationHandler(null, msg); 7333 } 7334 if (firstTime) { 7335 var args = [], 7336 arg, 7337 i, 7338 key; 7339 for (i = 0; i < arguments.length; i++) { 7340 arg = ''; 7341 if (typeof arguments[i] === 'object') { 7342 arg += '\n[' + i + '] '; 7343 for (key in arguments[0]) { 7344 if (hasOwnProp(arguments[0], key)) { 7345 arg += key + ': ' + arguments[0][key] + ', '; 7346 } 7347 } 7348 arg = arg.slice(0, -2); // Remove trailing comma and space 7349 } else { 7350 arg = arguments[i]; 7351 } 7352 args.push(arg); 7353 } 7354 warn( 7355 msg + 7356 '\nArguments: ' + 7357 Array.prototype.slice.call(args).join('') + 7358 '\n' + 7359 new Error().stack 7360 ); 7361 firstTime = false; 7362 } 7363 return fn.apply(this, arguments); 7364 }, fn); 7365 } 7366 7367 var deprecations = {}; 7368 7369 function deprecateSimple(name, msg) { 7370 if (hooks.deprecationHandler != null) { 7371 hooks.deprecationHandler(name, msg); 7372 } 7373 if (!deprecations[name]) { 7374 warn(msg); 7375 deprecations[name] = true; 7376 } 7377 } 7378 7379 hooks.suppressDeprecationWarnings = false; 7380 hooks.deprecationHandler = null; 7381 7382 function isFunction(input) { 7383 return ( 7384 (typeof Function !== 'undefined' && input instanceof Function) || 7385 Object.prototype.toString.call(input) === '[object Function]' 7386 ); 7387 } 7388 7389 function set(config) { 7390 var prop, i; 7391 for (i in config) { 7392 if (hasOwnProp(config, i)) { 7393 prop = config[i]; 7394 if (isFunction(prop)) { 7395 this[i] = prop; 7396 } else { 7397 this['_' + i] = prop; 7398 } 7399 } 7400 } 7401 this._config = config; 7402 // Lenient ordinal parsing accepts just a number in addition to 7403 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 7404 // TODO: Remove "ordinalParse" fallback in next major release. 7405 this._dayOfMonthOrdinalParseLenient = new RegExp( 7406 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + 7407 '|' + 7408 /\d{1,2}/.source 7409 ); 7410 } 7411 7412 function mergeConfigs(parentConfig, childConfig) { 7413 var res = extend({}, parentConfig), 7414 prop; 7415 for (prop in childConfig) { 7416 if (hasOwnProp(childConfig, prop)) { 7417 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 7418 res[prop] = {}; 7419 extend(res[prop], parentConfig[prop]); 7420 extend(res[prop], childConfig[prop]); 7421 } else if (childConfig[prop] != null) { 7422 res[prop] = childConfig[prop]; 7423 } else { 7424 delete res[prop]; 7425 } 7426 } 7427 } 7428 for (prop in parentConfig) { 7429 if ( 7430 hasOwnProp(parentConfig, prop) && 7431 !hasOwnProp(childConfig, prop) && 7432 isObject(parentConfig[prop]) 7433 ) { 7434 // make sure changes to properties don't modify parent config 7435 res[prop] = extend({}, res[prop]); 7436 } 7437 } 7438 return res; 7439 } 7440 7441 function Locale(config) { 7442 if (config != null) { 7443 this.set(config); 7444 } 7445 } 7446 7447 var keys; 7448 7449 if (Object.keys) { 7450 keys = Object.keys; 7451 } else { 7452 keys = function (obj) { 7453 var i, 7454 res = []; 7455 for (i in obj) { 7456 if (hasOwnProp(obj, i)) { 7457 res.push(i); 7458 } 7459 } 7460 return res; 7461 }; 7462 } 7463 7464 var defaultCalendar = { 7465 sameDay: '[Today at] LT', 7466 nextDay: '[Tomorrow at] LT', 7467 nextWeek: 'dddd [at] LT', 7468 lastDay: '[Yesterday at] LT', 7469 lastWeek: '[Last] dddd [at] LT', 7470 sameElse: 'L', 7471 }; 7472 7473 function calendar(key, mom, now) { 7474 var output = this._calendar[key] || this._calendar['sameElse']; 7475 return isFunction(output) ? output.call(mom, now) : output; 7476 } 7477 7478 function zeroFill(number, targetLength, forceSign) { 7479 var absNumber = '' + Math.abs(number), 7480 zerosToFill = targetLength - absNumber.length, 7481 sign = number >= 0; 7482 return ( 7483 (sign ? (forceSign ? '+' : '') : '-') + 7484 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + 7485 absNumber 7486 ); 7487 } 7488 7489 var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}
vendor: 8,433 bytes, lines 7489-7784
7489|x|X|zz?|ZZ?|.)/g, 7490 localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, 7491 formatFunctions = {}, 7492 formatTokenFunctions = {}; 7493 7494 // token: 'M' 7495 // padded: ['MM', 2] 7496 // ordinal: 'Mo' 7497 // callback: function () { this.month() + 1 } 7498 function addFormatToken(token, padded, ordinal, callback) { 7499 var func = callback; 7500 if (typeof callback === 'string') { 7501 func = function () { 7502 return this[callback](); 7503 }; 7504 } 7505 if (token) { 7506 formatTokenFunctions[token] = func; 7507 } 7508 if (padded) { 7509 formatTokenFunctions[padded[0]] = function () { 7510 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 7511 }; 7512 } 7513 if (ordinal) { 7514 formatTokenFunctions[ordinal] = function () { 7515 return this.localeData().ordinal( 7516 func.apply(this, arguments), 7517 token 7518 ); 7519 }; 7520 } 7521 } 7522 7523 function removeFormattingTokens(input) { 7524 if (input.match(/\[[\s\S]/)) { 7525 return input.replace(/^\[|\]$/g, ''); 7526 } 7527 return input.replace(/\\/g, ''); 7528 } 7529 7530 function makeFormatFunction(format) { 7531 var array = format.match(formattingTokens), 7532 i, 7533 length; 7534 7535 for (i = 0, length = array.length; i < length; i++) { 7536 if (formatTokenFunctions[array[i]]) { 7537 array[i] = formatTokenFunctions[array[i]]; 7538 } else { 7539 array[i] = removeFormattingTokens(array[i]); 7540 } 7541 } 7542 7543 return function (mom) { 7544 var output = '', 7545 i; 7546 for (i = 0; i < length; i++) { 7547 output += isFunction(array[i]) 7548 ? array[i].call(mom, format) 7549 : array[i]; 7550 } 7551 return output; 7552 }; 7553 } 7554 7555 // format date using native date object 7556 function formatMoment(m, format) { 7557 if (!m.isValid()) { 7558 return m.localeData().invalidDate(); 7559 } 7560 7561 format = expandFormat(format, m.localeData()); 7562 formatFunctions[format] = 7563 formatFunctions[format] || makeFormatFunction(format); 7564 7565 return formatFunctions[format](m); 7566 } 7567 7568 function expandFormat(format, locale) { 7569 var i = 5; 7570 7571 function replaceLongDateFormatTokens(input) { 7572 return locale.longDateFormat(input) || input; 7573 } 7574 7575 localFormattingTokens.lastIndex = 0; 7576 while (i >= 0 && localFormattingTokens.test(format)) { 7577 format = format.replace( 7578 localFormattingTokens, 7579 replaceLongDateFormatTokens 7580 ); 7581 localFormattingTokens.lastIndex = 0; 7582 i -= 1; 7583 } 7584 7585 return format; 7586 } 7587 7588 var defaultLongDateFormat = { 7589 LTS: 'h:mm:ss A', 7590 LT: 'h:mm A', 7591 L: 'MM/DD/YYYY', 7592 LL: 'MMMM D, YYYY', 7593 LLL: 'MMMM D, YYYY h:mm A', 7594 LLLL: 'dddd, MMMM D, YYYY h:mm A', 7595 }; 7596 7597 function longDateFormat(key) { 7598 var format = this._longDateFormat[key], 7599 formatUpper = this._longDateFormat[key.toUpperCase()]; 7600 7601 if (format || !formatUpper) { 7602 return format; 7603 } 7604 7605 this._longDateFormat[key] = formatUpper 7606 .match(formattingTokens) 7607 .map(function (tok) { 7608 if ( 7609 tok === 'MMMM' || 7610 tok === 'MM' || 7611 tok === 'DD' || 7612 tok === 'dddd' 7613 ) { 7614 return tok.slice(1); 7615 } 7616 return tok; 7617 }) 7618 .join(''); 7619 7620 return this._longDateFormat[key]; 7621 } 7622 7623 var defaultInvalidDate = 'Invalid date'; 7624 7625 function invalidDate() { 7626 return this._invalidDate; 7627 } 7628 7629 var defaultOrdinal = '%d', 7630 defaultDayOfMonthOrdinalParse = /\d{1,2}/; 7631 7632 function ordinal(number) { 7633 return this._ordinal.replace('%d', number); 7634 } 7635 7636 var defaultRelativeTime = { 7637 future: 'in %s', 7638 past: '%s ago', 7639 s: 'a few seconds', 7640 ss: '%d seconds', 7641 m: 'a minute', 7642 mm: '%d minutes', 7643 h: 'an hour', 7644 hh: '%d hours', 7645 d: 'a day', 7646 dd: '%d days', 7647 w: 'a week', 7648 ww: '%d weeks', 7649 M: 'a month', 7650 MM: '%d months', 7651 y: 'a year', 7652 yy: '%d years', 7653 }; 7654 7655 function relativeTime(number, withoutSuffix, string, isFuture) { 7656 var output = this._relativeTime[string]; 7657 return isFunction(output) 7658 ? output(number, withoutSuffix, string, isFuture) 7659 : output.replace(/%d/i, number); 7660 } 7661 7662 function pastFuture(diff, output) { 7663 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 7664 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 7665 } 7666 7667 var aliases = {}; 7668 7669 function addUnitAlias(unit, shorthand) { 7670 var lowerCase = unit.toLowerCase(); 7671 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 7672 } 7673 7674 function normalizeUnits(units) { 7675 return typeof units === 'string' 7676 ? aliases[units] || aliases[units.toLowerCase()] 7677 : undefined; 7678 } 7679 7680 function normalizeObjectUnits(inputObject) { 7681 var normalizedInput = {}, 7682 normalizedProp, 7683 prop; 7684 7685 for (prop in inputObject) { 7686 if (hasOwnProp(inputObject, prop)) { 7687 normalizedProp = normalizeUnits(prop); 7688 if (normalizedProp) { 7689 normalizedInput[normalizedProp] = inputObject[prop]; 7690 } 7691 } 7692 } 7693 7694 return normalizedInput; 7695 } 7696 7697 var priorities = {}; 7698 7699 function addUnitPriority(unit, priority) { 7700 priorities[unit] = priority; 7701 } 7702 7703 function getPrioritizedUnits(unitsObj) { 7704 var units = [], 7705 u; 7706 for (u in unitsObj) { 7707 if (hasOwnProp(unitsObj, u)) { 7708 units.push({ unit: u, priority: priorities[u] }); 7709 } 7710 } 7711 units.sort(function (a, b) { 7712 return a.priority - b.priority; 7713 }); 7714 return units; 7715 } 7716 7717 function isLeapYear(year) { 7718 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 7719 } 7720 7721 function absFloor(number) { 7722 if (number < 0) { 7723 // -0 -> 0 7724 return Math.ceil(number) || 0; 7725 } else { 7726 return Math.floor(number); 7727 } 7728 } 7729 7730 function toInt(argumentForCoercion) { 7731 var coercedNumber = +argumentForCoercion, 7732 value = 0; 7733 7734 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 7735 value = absFloor(coercedNumber); 7736 } 7737 7738 return value; 7739 } 7740 7741 function makeGetSet(unit, keepTime) { 7742 return function (value) { 7743 if (value != null) { 7744 set$1(this, unit, value); 7745 hooks.updateOffset(this, keepTime); 7746 return this; 7747 } else { 7748 return get(this, unit); 7749 } 7750 }; 7751 } 7752 7753 function get(mom, unit) { 7754 return mom.isValid() 7755 ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() 7756 : NaN; 7757 } 7758 7759 function set$1(mom, unit, value) { 7760 if (mom.isValid() && !isNaN(value)) { 7761 if ( 7762 unit === 'FullYear' && 7763 isLeapYear(mom.year()) && 7764 mom.month() === 1 && 7765 mom.date() === 29 7766 ) { 7767 value = toInt(value); 7768 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit]( 7769 value, 7770 mom.month(), 7771 daysInMonth(value, mom.month()) 7772 ); 7773 } else { 7774 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); 7775 } 7776 } 7777 } 7778 7779 // MOMENTS 7780 7781 function stringGet(units) { 7782 units = normalizeUnits(units); 7783 if (isFunction(this[units])) { 7784 return this[units]();
vendor: 5,050 bytes, lines 7785-7945
7785 } 7786 return this; 7787 } 7788 7789 function stringSet(units, value) { 7790 if (typeof units === 'object') { 7791 units = normalizeObjectUnits(units); 7792 var prioritized = getPrioritizedUnits(units), 7793 i; 7794 for (i = 0; i < prioritized.length; i++) { 7795 this[prioritized[i].unit](units[prioritized[i].unit]); 7796 } 7797 } else { 7798 units = normalizeUnits(units); 7799 if (isFunction(this[units])) { 7800 return this[units](value); 7801 } 7802 } 7803 return this; 7804 } 7805 7806 var match1 = /\d/, // 0 - 9 7807 match2 = /\d\d/, // 00 - 99 7808 match3 = /\d{3}/, // 000 - 999 7809 match4 = /\d{4}/, // 0000 - 9999 7810 match6 = /[+-]?\d{6}/, // -999999 - 999999 7811 match1to2 = /\d\d?/, // 0 - 99 7812 match3to4 = /\d\d\d\d?/, // 999 - 9999 7813 match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999 7814 match1to3 = /\d{1,3}/, // 0 - 999 7815 match1to4 = /\d{1,4}/, // 0 - 9999 7816 match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999 7817 matchUnsigned = /\d+/, // 0 - inf 7818 matchSigned = /[+-]?\d+/, // -inf - inf 7819 matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z 7820 matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z 7821 matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 7822 // any word (or two) characters or numbers including two/three word month in arabic. 7823 // includes scottish gaelic two word and hyphenated months 7824 matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, 7825 regexes; 7826 7827 regexes = {}; 7828 7829 function addRegexToken(token, regex, strictRegex) { 7830 regexes[token] = isFunction(regex) 7831 ? regex 7832 : function (isStrict, localeData) { 7833 return isStrict && strictRegex ? strictRegex : regex; 7834 }; 7835 } 7836 7837 function getParseRegexForToken(token, config) { 7838 if (!hasOwnProp(regexes, token)) { 7839 return new RegExp(unescapeFormat(token)); 7840 } 7841 7842 return regexes[token](config._strict, config._locale); 7843 } 7844 7845 // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 7846 function unescapeFormat(s) { 7847 return regexEscape( 7848 s 7849 .replace('\\', '') 7850 .replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function ( 7851 matched, 7852 p1, 7853 p2, 7854 p3, 7855 p4 7856 ) { 7857 return p1 || p2 || p3 || p4; 7858 }) 7859 ); 7860 } 7861 7862 function regexEscape(s) { 7863 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 7864 } 7865 7866 var tokens = {}; 7867 7868 function addParseToken(token, callback) { 7869 var i, 7870 func = callback; 7871 if (typeof token === 'string') { 7872 token = [token]; 7873 } 7874 if (isNumber(callback)) { 7875 func = function (input, array) { 7876 array[callback] = toInt(input); 7877 }; 7878 } 7879 for (i = 0; i < token.length; i++) { 7880 tokens[token[i]] = func; 7881 } 7882 } 7883 7884 function addWeekParseToken(token, callback) { 7885 addParseToken(token, function (input, array, config, token) { 7886 config._w = config._w || {}; 7887 callback(input, config._w, config, token); 7888 }); 7889 } 7890 7891 function addTimeToArrayFromToken(token, input, config) { 7892 if (input != null && hasOwnProp(tokens, token)) { 7893 tokens[token](input, config._a, config, token); 7894 } 7895 } 7896 7897 var YEAR = 0, 7898 MONTH = 1, 7899 DATE = 2, 7900 HOUR = 3, 7901 MINUTE = 4, 7902 SECOND = 5, 7903 MILLISECOND = 6, 7904 WEEK = 7, 7905 WEEKDAY = 8; 7906 7907 function mod(n, x) { 7908 return ((n % x) + x) % x; 7909 } 7910 7911 var indexOf; 7912 7913 if (Array.prototype.indexOf) { 7914 indexOf = Array.prototype.indexOf; 7915 } else { 7916 indexOf = function (o) { 7917 // I know 7918 var i; 7919 for (i = 0; i < this.length; ++i) { 7920 if (this[i] === o) { 7921 return i; 7922 } 7923 } 7924 return -1; 7925 }; 7926 } 7927 7928 function daysInMonth(year, month) { 7929 if (isNaN(year) || isNaN(month)) { 7930 return NaN; 7931 } 7932 var modMonth = mod(month, 12); 7933 year += (month - modMonth) / 12; 7934 return modMonth === 1 7935 ? isLeapYear(year) 7936 ? 29 7937 : 28 7938 : 31 - ((modMonth % 7) % 2); 7939 } 7940 7941 // FORMATTING 7942 7943 addFormatToken('M', ['MM', 2], 'Mo', function () { 7944 return this.month() + 1; 7945 });
vendor: 33,641 bytes, lines 7946-8999
7946 7947 addFormatToken('MMM', 0, 0, function (format) { 7948 return this.localeData().monthsShort(this, format); 7949 }); 7950 7951 addFormatToken('MMMM', 0, 0, function (format) { 7952 return this.localeData().months(this, format); 7953 }); 7954 7955 // ALIASES 7956 7957 addUnitAlias('month', 'M'); 7958 7959 // PRIORITY 7960 7961 addUnitPriority('month', 8); 7962 7963 // PARSING 7964 7965 addRegexToken('M', match1to2); 7966 addRegexToken('MM', match1to2, match2); 7967 addRegexToken('MMM', function (isStrict, locale) { 7968 return locale.monthsShortRegex(isStrict); 7969 }); 7970 addRegexToken('MMMM', function (isStrict, locale) { 7971 return locale.monthsRegex(isStrict); 7972 }); 7973 7974 addParseToken(['M', 'MM'], function (input, array) { 7975 array[MONTH] = toInt(input) - 1; 7976 }); 7977 7978 addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { 7979 var month = config._locale.monthsParse(input, token, config._strict); 7980 // if we didn't find a month name, mark the date as invalid. 7981 if (month != null) { 7982 array[MONTH] = month; 7983 } else { 7984 getParsingFlags(config).invalidMonth = input; 7985 } 7986 }); 7987 7988 // LOCALES 7989 7990 var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split( 7991 '_' 7992 ), 7993 defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split( 7994 '_' 7995 ), 7996 MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, 7997 defaultMonthsShortRegex = matchWord, 7998 defaultMonthsRegex = matchWord; 7999 8000 function localeMonths(m, format) { 8001 if (!m) { 8002 return isArray(this._months) 8003 ? this._months 8004 : this._months['standalone']; 8005 } 8006 return isArray(this._months) 8007 ? this._months[m.month()] 8008 : this._months[ 8009 (this._months.isFormat || MONTHS_IN_FORMAT).test(format) 8010 ? 'format' 8011 : 'standalone' 8012 ][m.month()]; 8013 } 8014 8015 function localeMonthsShort(m, format) { 8016 if (!m) { 8017 return isArray(this._monthsShort) 8018 ? this._monthsShort 8019 : this._monthsShort['standalone']; 8020 } 8021 return isArray(this._monthsShort) 8022 ? this._monthsShort[m.month()] 8023 : this._monthsShort[ 8024 MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone' 8025 ][m.month()]; 8026 } 8027 8028 function handleStrictParse(monthName, format, strict) { 8029 var i, 8030 ii, 8031 mom, 8032 llc = monthName.toLocaleLowerCase(); 8033 if (!this._monthsParse) { 8034 // this is not used 8035 this._monthsParse = []; 8036 this._longMonthsParse = []; 8037 this._shortMonthsParse = []; 8038 for (i = 0; i < 12; ++i) { 8039 mom = createUTC([2000, i]); 8040 this._shortMonthsParse[i] = this.monthsShort( 8041 mom, 8042 '' 8043 ).toLocaleLowerCase(); 8044 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 8045 } 8046 } 8047 8048 if (strict) { 8049 if (format === 'MMM') { 8050 ii = indexOf.call(this._shortMonthsParse, llc); 8051 return ii !== -1 ? ii : null; 8052 } else { 8053 ii = indexOf.call(this._longMonthsParse, llc); 8054 return ii !== -1 ? ii : null; 8055 } 8056 } else { 8057 if (format === 'MMM') { 8058 ii = indexOf.call(this._shortMonthsParse, llc); 8059 if (ii !== -1) { 8060 return ii; 8061 } 8062 ii = indexOf.call(this._longMonthsParse, llc); 8063 return ii !== -1 ? ii : null; 8064 } else { 8065 ii = indexOf.call(this._longMonthsParse, llc); 8066 if (ii !== -1) { 8067 return ii; 8068 } 8069 ii = indexOf.call(this._shortMonthsParse, llc); 8070 return ii !== -1 ? ii : null; 8071 } 8072 } 8073 } 8074 8075 function localeMonthsParse(monthName, format, strict) { 8076 var i, mom, regex; 8077 8078 if (this._monthsParseExact) { 8079 return handleStrictParse.call(this, monthName, format, strict); 8080 } 8081 8082 if (!this._monthsParse) { 8083 this._monthsParse = []; 8084 this._longMonthsParse = []; 8085 this._shortMonthsParse = []; 8086 } 8087 8088 // TODO: add sorting 8089 // Sorting makes sure if one month (or abbr) is a prefix of another 8090 // see sorting in computeMonthsParse 8091 for (i = 0; i < 12; i++) { 8092 // make the regex if we don't have it already 8093 mom = createUTC([2000, i]); 8094 if (strict && !this._longMonthsParse[i]) { 8095 this._longMonthsParse[i] = new RegExp( 8096 '^' + this.months(mom, '').replace('.', '') + '$', 8097 'i' 8098 ); 8099 this._shortMonthsParse[i] = new RegExp( 8100 '^' + this.monthsShort(mom, '').replace('.', '') + '$', 8101 'i' 8102 ); 8103 } 8104 if (!strict && !this._monthsParse[i]) { 8105 regex = 8106 '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 8107 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 8108 } 8109 // test the regex 8110 if ( 8111 strict && 8112 format === 'MMMM' && 8113 this._longMonthsParse[i].test(monthName) 8114 ) { 8115 return i; 8116 } else if ( 8117 strict && 8118 format === 'MMM' && 8119 this._shortMonthsParse[i].test(monthName) 8120 ) { 8121 return i; 8122 } else if (!strict && this._monthsParse[i].test(monthName)) { 8123 return i; 8124 } 8125 } 8126 } 8127 8128 // MOMENTS 8129 8130 function setMonth(mom, value) { 8131 var dayOfMonth; 8132 8133 if (!mom.isValid()) { 8134 // No op 8135 return mom; 8136 } 8137 8138 if (typeof value === 'string') { 8139 if (/^\d+$/.test(value)) { 8140 value = toInt(value); 8141 } else { 8142 value = mom.localeData().monthsParse(value); 8143 // TODO: Another silent failure? 8144 if (!isNumber(value)) { 8145 return mom; 8146 } 8147 } 8148 } 8149 8150 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); 8151 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); 8152 return mom; 8153 } 8154 8155 function getSetMonth(value) { 8156 if (value != null) { 8157 setMonth(this, value); 8158 hooks.updateOffset(this, true); 8159 return this; 8160 } else { 8161 return get(this, 'Month'); 8162 } 8163 } 8164 8165 function getDaysInMonth() { 8166 return daysInMonth(this.year(), this.month()); 8167 } 8168 8169 function monthsShortRegex(isStrict) { 8170 if (this._monthsParseExact) { 8171 if (!hasOwnProp(this, '_monthsRegex')) { 8172 computeMonthsParse.call(this); 8173 } 8174 if (isStrict) { 8175 return this._monthsShortStrictRegex; 8176 } else { 8177 return this._monthsShortRegex; 8178 } 8179 } else { 8180 if (!hasOwnProp(this, '_monthsShortRegex')) { 8181 this._monthsShortRegex = defaultMonthsShortRegex; 8182 } 8183 return this._monthsShortStrictRegex && isStrict 8184 ? this._monthsShortStrictRegex 8185 : this._monthsShortRegex; 8186 } 8187 } 8188 8189 function monthsRegex(isStrict) { 8190 if (this._monthsParseExact) { 8191 if (!hasOwnProp(this, '_monthsRegex')) { 8192 computeMonthsParse.call(this); 8193 } 8194 if (isStrict) { 8195 return this._monthsStrictRegex; 8196 } else { 8197 return this._monthsRegex; 8198 } 8199 } else { 8200 if (!hasOwnProp(this, '_monthsRegex')) { 8201 this._monthsRegex = defaultMonthsRegex; 8202 } 8203 return this._monthsStrictRegex && isStrict 8204 ? this._monthsStrictRegex 8205 : this._monthsRegex; 8206 } 8207 } 8208 8209 function computeMonthsParse() { 8210 function cmpLenRev(a, b) { 8211 return b.length - a.length; 8212 } 8213 8214 var shortPieces = [], 8215 longPieces = [], 8216 mixedPieces = [], 8217 i, 8218 mom; 8219 for (i = 0; i < 12; i++) { 8220 // make the regex if we don't have it already 8221 mom = createUTC([2000, i]); 8222 shortPieces.push(this.monthsShort(mom, '')); 8223 longPieces.push(this.months(mom, '')); 8224 mixedPieces.push(this.months(mom, '')); 8225 mixedPieces.push(this.monthsShort(mom, '')); 8226 } 8227 // Sorting makes sure if one month (or abbr) is a prefix of another it 8228 // will match the longer piece. 8229 shortPieces.sort(cmpLenRev); 8230 longPieces.sort(cmpLenRev); 8231 mixedPieces.sort(cmpLenRev); 8232 for (i = 0; i < 12; i++) { 8233 shortPieces[i] = regexEscape(shortPieces[i]); 8234 longPieces[i] = regexEscape(longPieces[i]); 8235 } 8236 for (i = 0; i < 24; i++) { 8237 mixedPieces[i] = regexEscape(mixedPieces[i]); 8238 } 8239 8240 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 8241 this._monthsShortRegex = this._monthsRegex; 8242 this._monthsStrictRegex = new RegExp( 8243 '^(' + longPieces.join('|') + ')', 8244 'i' 8245 ); 8246 this._monthsShortStrictRegex = new RegExp( 8247 '^(' + shortPieces.join('|') + ')', 8248 'i' 8249 ); 8250 } 8251 8252 // FORMATTING 8253 8254 addFormatToken('Y', 0, 0, function () { 8255 var y = this.year(); 8256 return y <= 9999 ? zeroFill(y, 4) : '+' + y; 8257 }); 8258 8259 addFormatToken(0, ['YY', 2], 0, function () { 8260 return this.year() % 100; 8261 }); 8262 8263 addFormatToken(0, ['YYYY', 4], 0, 'year'); 8264 addFormatToken(0, ['YYYYY', 5], 0, 'year'); 8265 addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); 8266 8267 // ALIASES 8268 8269 addUnitAlias('year', 'y'); 8270 8271 // PRIORITIES 8272 8273 addUnitPriority('year', 1); 8274 8275 // PARSING 8276 8277 addRegexToken('Y', matchSigned); 8278 addRegexToken('YY', match1to2, match2); 8279 addRegexToken('YYYY', match1to4, match4); 8280 addRegexToken('YYYYY', match1to6, match6); 8281 addRegexToken('YYYYYY', match1to6, match6); 8282 8283 addParseToken(['YYYYY', 'YYYYYY'], YEAR); 8284 addParseToken('YYYY', function (input, array) { 8285 array[YEAR] = 8286 input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 8287 }); 8288 addParseToken('YY', function (input, array) { 8289 array[YEAR] = hooks.parseTwoDigitYear(input); 8290 }); 8291 addParseToken('Y', function (input, array) { 8292 array[YEAR] = parseInt(input, 10); 8293 }); 8294 8295 // HELPERS 8296 8297 function daysInYear(year) { 8298 return isLeapYear(year) ? 366 : 365; 8299 } 8300 8301 // HOOKS 8302 8303 hooks.parseTwoDigitYear = function (input) { 8304 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 8305 }; 8306 8307 // MOMENTS 8308 8309 var getSetYear = makeGetSet('FullYear', true); 8310 8311 function getIsLeapYear() { 8312 return isLeapYear(this.year()); 8313 } 8314 8315 function createDate(y, m, d, h, M, s, ms) { 8316 // can't just apply() to create a date: 8317 // https://stackoverflow.com/q/181348 8318 var date; 8319 // the date constructor remaps years 0-99 to 1900-1999 8320 if (y < 100 && y >= 0) { 8321 // preserve leap years using a full 400 year cycle, then reset 8322 date = new Date(y + 400, m, d, h, M, s, ms); 8323 if (isFinite(date.getFullYear())) { 8324 date.setFullYear(y); 8325 } 8326 } else { 8327 date = new Date(y, m, d, h, M, s, ms); 8328 } 8329 8330 return date; 8331 } 8332 8333 function createUTCDate(y) { 8334 var date, args; 8335 // the Date.UTC function remaps years 0-99 to 1900-1999 8336 if (y < 100 && y >= 0) { 8337 args = Array.prototype.slice.call(arguments); 8338 // preserve leap years using a full 400 year cycle, then reset 8339 args[0] = y + 400; 8340 date = new Date(Date.UTC.apply(null, args)); 8341 if (isFinite(date.getUTCFullYear())) { 8342 date.setUTCFullYear(y); 8343 } 8344 } else { 8345 date = new Date(Date.UTC.apply(null, arguments)); 8346 } 8347 8348 return date; 8349 } 8350 8351 // start-of-first-week - start-of-year 8352 function firstWeekOffset(year, dow, doy) { 8353 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 8354 fwd = 7 + dow - doy, 8355 // first-week day local weekday -- which local weekday is fwd 8356 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 8357 8358 return -fwdlw + fwd - 1; 8359 } 8360 8361 // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 8362 function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 8363 var localWeekday = (7 + weekday - dow) % 7, 8364 weekOffset = firstWeekOffset(year, dow, doy), 8365 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 8366 resYear, 8367 resDayOfYear; 8368 8369 if (dayOfYear <= 0) { 8370 resYear = year - 1; 8371 resDayOfYear = daysInYear(resYear) + dayOfYear; 8372 } else if (dayOfYear > daysInYear(year)) { 8373 resYear = year + 1; 8374 resDayOfYear = dayOfYear - daysInYear(year); 8375 } else { 8376 resYear = year; 8377 resDayOfYear = dayOfYear; 8378 } 8379 8380 return { 8381 year: resYear, 8382 dayOfYear: resDayOfYear, 8383 }; 8384 } 8385 8386 function weekOfYear(mom, dow, doy) { 8387 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 8388 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 8389 resWeek, 8390 resYear; 8391 8392 if (week < 1) { 8393 resYear = mom.year() - 1; 8394 resWeek = week + weeksInYear(resYear, dow, doy); 8395 } else if (week > weeksInYear(mom.year(), dow, doy)) { 8396 resWeek = week - weeksInYear(mom.year(), dow, doy); 8397 resYear = mom.year() + 1; 8398 } else { 8399 resYear = mom.year(); 8400 resWeek = week; 8401 } 8402 8403 return { 8404 week: resWeek, 8405 year: resYear, 8406 }; 8407 } 8408 8409 function weeksInYear(year, dow, doy) { 8410 var weekOffset = firstWeekOffset(year, dow, doy), 8411 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 8412 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 8413 } 8414 8415 // FORMATTING 8416 8417 addFormatToken('w', ['ww', 2], 'wo', 'week'); 8418 addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 8419 8420 // ALIASES 8421 8422 addUnitAlias('week', 'w'); 8423 addUnitAlias('isoWeek', 'W'); 8424 8425 // PRIORITIES 8426 8427 addUnitPriority('week', 5); 8428 addUnitPriority('isoWeek', 5); 8429 8430 // PARSING 8431 8432 addRegexToken('w', match1to2); 8433 addRegexToken('ww', match1to2, match2); 8434 addRegexToken('W', match1to2); 8435 addRegexToken('WW', match1to2, match2); 8436 8437 addWeekParseToken(['w', 'ww', 'W', 'WW'], function ( 8438 input, 8439 week, 8440 config, 8441 token 8442 ) { 8443 week[token.substr(0, 1)] = toInt(input); 8444 }); 8445 8446 // HELPERS 8447 8448 // LOCALES 8449 8450 function localeWeek(mom) { 8451 return weekOfYear(mom, this._week.dow, this._week.doy).week; 8452 } 8453 8454 var defaultLocaleWeek = { 8455 dow: 0, // Sunday is the first day of the week. 8456 doy: 6, // The week that contains Jan 6th is the first week of the year. 8457 }; 8458 8459 function localeFirstDayOfWeek() { 8460 return this._week.dow; 8461 } 8462 8463 function localeFirstDayOfYear() { 8464 return this._week.doy; 8465 } 8466 8467 // MOMENTS 8468 8469 function getSetWeek(input) { 8470 var week = this.localeData().week(this); 8471 return input == null ? week : this.add((input - week) * 7, 'd'); 8472 } 8473 8474 function getSetISOWeek(input) { 8475 var week = weekOfYear(this, 1, 4).week; 8476 return input == null ? week : this.add((input - week) * 7, 'd'); 8477 } 8478 8479 // FORMATTING 8480 8481 addFormatToken('d', 0, 'do', 'day'); 8482 8483 addFormatToken('dd', 0, 0, function (format) { 8484 return this.localeData().weekdaysMin(this, format); 8485 }); 8486 8487 addFormatToken('ddd', 0, 0, function (format) { 8488 return this.localeData().weekdaysShort(this, format); 8489 }); 8490 8491 addFormatToken('dddd', 0, 0, function (format) { 8492 return this.localeData().weekdays(this, format); 8493 }); 8494 8495 addFormatToken('e', 0, 0, 'weekday'); 8496 addFormatToken('E', 0, 0, 'isoWeekday'); 8497 8498 // ALIASES 8499 8500 addUnitAlias('day', 'd'); 8501 addUnitAlias('weekday', 'e'); 8502 addUnitAlias('isoWeekday', 'E'); 8503 8504 // PRIORITY 8505 addUnitPriority('day', 11); 8506 addUnitPriority('weekday', 11); 8507 addUnitPriority('isoWeekday', 11); 8508 8509 // PARSING 8510 8511 addRegexToken('d', match1to2); 8512 addRegexToken('e', match1to2); 8513 addRegexToken('E', match1to2); 8514 addRegexToken('dd', function (isStrict, locale) { 8515 return locale.weekdaysMinRegex(isStrict); 8516 }); 8517 addRegexToken('ddd', function (isStrict, locale) { 8518 return locale.weekdaysShortRegex(isStrict); 8519 }); 8520 addRegexToken('dddd', function (isStrict, locale) { 8521 return locale.weekdaysRegex(isStrict); 8522 }); 8523 8524 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 8525 var weekday = config._locale.weekdaysParse(input, token, config._strict); 8526 // if we didn't get a weekday name, mark the date as invalid 8527 if (weekday != null) { 8528 week.d = weekday; 8529 } else { 8530 getParsingFlags(config).invalidWeekday = input; 8531 } 8532 }); 8533 8534 addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 8535 week[token] = toInt(input); 8536 }); 8537 8538 // HELPERS 8539 8540 function parseWeekday(input, locale) { 8541 if (typeof input !== 'string') { 8542 return input; 8543 } 8544 8545 if (!isNaN(input)) { 8546 return parseInt(input, 10); 8547 } 8548 8549 input = locale.weekdaysParse(input); 8550 if (typeof input === 'number') { 8551 return input; 8552 } 8553 8554 return null; 8555 } 8556 8557 function parseIsoWeekday(input, locale) { 8558 if (typeof input === 'string') { 8559 return locale.weekdaysParse(input) % 7 || 7; 8560 } 8561 return isNaN(input) ? null : input; 8562 } 8563 8564 // LOCALES 8565 function shiftWeekdays(ws, n) { 8566 return ws.slice(n, 7).concat(ws.slice(0, n)); 8567 } 8568 8569 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split( 8570 '_' 8571 ), 8572 defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), 8573 defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), 8574 defaultWeekdaysRegex = matchWord, 8575 defaultWeekdaysShortRegex = matchWord, 8576 defaultWeekdaysMinRegex = matchWord; 8577 8578 function localeWeekdays(m, format) { 8579 var weekdays = isArray(this._weekdays) 8580 ? this._weekdays 8581 : this._weekdays[ 8582 m && m !== true && this._weekdays.isFormat.test(format) 8583 ? 'format' 8584 : 'standalone' 8585 ]; 8586 return m === true 8587 ? shiftWeekdays(weekdays, this._week.dow) 8588 : m 8589 ? weekdays[m.day()] 8590 : weekdays; 8591 } 8592 8593 function localeWeekdaysShort(m) { 8594 return m === true 8595 ? shiftWeekdays(this._weekdaysShort, this._week.dow) 8596 : m 8597 ? this._weekdaysShort[m.day()] 8598 : this._weekdaysShort; 8599 } 8600 8601 function localeWeekdaysMin(m) { 8602 return m === true 8603 ? shiftWeekdays(this._weekdaysMin, this._week.dow) 8604 : m 8605 ? this._weekdaysMin[m.day()] 8606 : this._weekdaysMin; 8607 } 8608 8609 function handleStrictParse$1(weekdayName, format, strict) { 8610 var i, 8611 ii, 8612 mom, 8613 llc = weekdayName.toLocaleLowerCase(); 8614 if (!this._weekdaysParse) { 8615 this._weekdaysParse = []; 8616 this._shortWeekdaysParse = []; 8617 this._minWeekdaysParse = []; 8618 8619 for (i = 0; i < 7; ++i) { 8620 mom = createUTC([2000, 1]).day(i); 8621 this._minWeekdaysParse[i] = this.weekdaysMin( 8622 mom, 8623 '' 8624 ).toLocaleLowerCase(); 8625 this._shortWeekdaysParse[i] = this.weekdaysShort( 8626 mom, 8627 '' 8628 ).toLocaleLowerCase(); 8629 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 8630 } 8631 } 8632 8633 if (strict) { 8634 if (format === 'dddd') { 8635 ii = indexOf.call(this._weekdaysParse, llc); 8636 return ii !== -1 ? ii : null; 8637 } else if (format === 'ddd') { 8638 ii = indexOf.call(this._shortWeekdaysParse, llc); 8639 return ii !== -1 ? ii : null; 8640 } else { 8641 ii = indexOf.call(this._minWeekdaysParse, llc); 8642 return ii !== -1 ? ii : null; 8643 } 8644 } else { 8645 if (format === 'dddd') { 8646 ii = indexOf.call(this._weekdaysParse, llc); 8647 if (ii !== -1) { 8648 return ii; 8649 } 8650 ii = indexOf.call(this._shortWeekdaysParse, llc); 8651 if (ii !== -1) { 8652 return ii; 8653 } 8654 ii = indexOf.call(this._minWeekdaysParse, llc); 8655 return ii !== -1 ? ii : null; 8656 } else if (format === 'ddd') { 8657 ii = indexOf.call(this._shortWeekdaysParse, llc); 8658 if (ii !== -1) { 8659 return ii; 8660 } 8661 ii = indexOf.call(this._weekdaysParse, llc); 8662 if (ii !== -1) { 8663 return ii; 8664 } 8665 ii = indexOf.call(this._minWeekdaysParse, llc); 8666 return ii !== -1 ? ii : null; 8667 } else { 8668 ii = indexOf.call(this._minWeekdaysParse, llc); 8669 if (ii !== -1) { 8670 return ii; 8671 } 8672 ii = indexOf.call(this._weekdaysParse, llc); 8673 if (ii !== -1) { 8674 return ii; 8675 } 8676 ii = indexOf.call(this._shortWeekdaysParse, llc); 8677 return ii !== -1 ? ii : null; 8678 } 8679 } 8680 } 8681 8682 function localeWeekdaysParse(weekdayName, format, strict) { 8683 var i, mom, regex; 8684 8685 if (this._weekdaysParseExact) { 8686 return handleStrictParse$1.call(this, weekdayName, format, strict); 8687 } 8688 8689 if (!this._weekdaysParse) { 8690 this._weekdaysParse = []; 8691 this._minWeekdaysParse = []; 8692 this._shortWeekdaysParse = []; 8693 this._fullWeekdaysParse = []; 8694 } 8695 8696 for (i = 0; i < 7; i++) { 8697 // make the regex if we don't have it already 8698 8699 mom = createUTC([2000, 1]).day(i); 8700 if (strict && !this._fullWeekdaysParse[i]) { 8701 this._fullWeekdaysParse[i] = new RegExp( 8702 '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 8703 'i' 8704 ); 8705 this._shortWeekdaysParse[i] = new RegExp( 8706 '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 8707 'i' 8708 ); 8709 this._minWeekdaysParse[i] = new RegExp( 8710 '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 8711 'i' 8712 ); 8713 } 8714 if (!this._weekdaysParse[i]) { 8715 regex = 8716 '^' + 8717 this.weekdays(mom, '') + 8718 '|^' + 8719 this.weekdaysShort(mom, '') + 8720 '|^' + 8721 this.weekdaysMin(mom, ''); 8722 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 8723 } 8724 // test the regex 8725 if ( 8726 strict && 8727 format === 'dddd' && 8728 this._fullWeekdaysParse[i].test(weekdayName) 8729 ) { 8730 return i; 8731 } else if ( 8732 strict && 8733 format === 'ddd' && 8734 this._shortWeekdaysParse[i].test(weekdayName) 8735 ) { 8736 return i; 8737 } else if ( 8738 strict && 8739 format === 'dd' && 8740 this._minWeekdaysParse[i].test(weekdayName) 8741 ) { 8742 return i; 8743 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 8744 return i; 8745 } 8746 } 8747 } 8748 8749 // MOMENTS 8750 8751 function getSetDayOfWeek(input) { 8752 if (!this.isValid()) { 8753 return input != null ? this : NaN; 8754 } 8755 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); 8756 if (input != null) { 8757 input = parseWeekday(input, this.localeData()); 8758 return this.add(input - day, 'd'); 8759 } else { 8760 return day; 8761 } 8762 } 8763 8764 function getSetLocaleDayOfWeek(input) { 8765 if (!this.isValid()) { 8766 return input != null ? this : NaN; 8767 } 8768 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 8769 return input == null ? weekday : this.add(input - weekday, 'd'); 8770 } 8771 8772 function getSetISODayOfWeek(input) { 8773 if (!this.isValid()) { 8774 return input != null ? this : NaN; 8775 } 8776 8777 // behaves the same as moment#day except 8778 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 8779 // as a setter, sunday should belong to the previous week. 8780 8781 if (input != null) { 8782 var weekday = parseIsoWeekday(input, this.localeData()); 8783 return this.day(this.day() % 7 ? weekday : weekday - 7); 8784 } else { 8785 return this.day() || 7; 8786 } 8787 } 8788 8789 function weekdaysRegex(isStrict) { 8790 if (this._weekdaysParseExact) { 8791 if (!hasOwnProp(this, '_weekdaysRegex')) { 8792 computeWeekdaysParse.call(this); 8793 } 8794 if (isStrict) { 8795 return this._weekdaysStrictRegex; 8796 } else { 8797 return this._weekdaysRegex; 8798 } 8799 } else { 8800 if (!hasOwnProp(this, '_weekdaysRegex')) { 8801 this._weekdaysRegex = defaultWeekdaysRegex; 8802 } 8803 return this._weekdaysStrictRegex && isStrict 8804 ? this._weekdaysStrictRegex 8805 : this._weekdaysRegex; 8806 } 8807 } 8808 8809 function weekdaysShortRegex(isStrict) { 8810 if (this._weekdaysParseExact) { 8811 if (!hasOwnProp(this, '_weekdaysRegex')) { 8812 computeWeekdaysParse.call(this); 8813 } 8814 if (isStrict) { 8815 return this._weekdaysShortStrictRegex; 8816 } else { 8817 return this._weekdaysShortRegex; 8818 } 8819 } else { 8820 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 8821 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 8822 } 8823 return this._weekdaysShortStrictRegex && isStrict 8824 ? this._weekdaysShortStrictRegex 8825 : this._weekdaysShortRegex; 8826 } 8827 } 8828 8829 function weekdaysMinRegex(isStrict) { 8830 if (this._weekdaysParseExact) { 8831 if (!hasOwnProp(this, '_weekdaysRegex')) { 8832 computeWeekdaysParse.call(this); 8833 } 8834 if (isStrict) { 8835 return this._weekdaysMinStrictRegex; 8836 } else { 8837 return this._weekdaysMinRegex; 8838 } 8839 } else { 8840 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 8841 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 8842 } 8843 return this._weekdaysMinStrictRegex && isStrict 8844 ? this._weekdaysMinStrictRegex 8845 : this._weekdaysMinRegex; 8846 } 8847 } 8848 8849 function computeWeekdaysParse() { 8850 function cmpLenRev(a, b) { 8851 return b.length - a.length; 8852 } 8853 8854 var minPieces = [], 8855 shortPieces = [], 8856 longPieces = [], 8857 mixedPieces = [], 8858 i, 8859 mom, 8860 minp, 8861 shortp, 8862 longp; 8863 for (i = 0; i < 7; i++) { 8864 // make the regex if we don't have it already 8865 mom = createUTC([2000, 1]).day(i); 8866 minp = regexEscape(this.weekdaysMin(mom, '')); 8867 shortp = regexEscape(this.weekdaysShort(mom, '')); 8868 longp = regexEscape(this.weekdays(mom, '')); 8869 minPieces.push(minp); 8870 shortPieces.push(shortp); 8871 longPieces.push(longp); 8872 mixedPieces.push(minp); 8873 mixedPieces.push(shortp); 8874 mixedPieces.push(longp); 8875 } 8876 // Sorting makes sure if one weekday (or abbr) is a prefix of another it 8877 // will match the longer piece. 8878 minPieces.sort(cmpLenRev); 8879 shortPieces.sort(cmpLenRev); 8880 longPieces.sort(cmpLenRev); 8881 mixedPieces.sort(cmpLenRev); 8882 8883 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 8884 this._weekdaysShortRegex = this._weekdaysRegex; 8885 this._weekdaysMinRegex = this._weekdaysRegex; 8886 8887 this._weekdaysStrictRegex = new RegExp( 8888 '^(' + longPieces.join('|') + ')', 8889 'i' 8890 ); 8891 this._weekdaysShortStrictRegex = new RegExp( 8892 '^(' + shortPieces.join('|') + ')', 8893 'i' 8894 ); 8895 this._weekdaysMinStrictRegex = new RegExp( 8896 '^(' + minPieces.join('|') + ')', 8897 'i' 8898 ); 8899 } 8900 8901 // FORMATTING 8902 8903 function hFormat() { 8904 return this.hours() % 12 || 12; 8905 } 8906 8907 function kFormat() { 8908 return this.hours() || 24; 8909 } 8910 8911 addFormatToken('H', ['HH', 2], 0, 'hour'); 8912 addFormatToken('h', ['hh', 2], 0, hFormat); 8913 addFormatToken('k', ['kk', 2], 0, kFormat); 8914 8915 addFormatToken('hmm', 0, 0, function () { 8916 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 8917 }); 8918 8919 addFormatToken('hmmss', 0, 0, function () { 8920 return ( 8921 '' + 8922 hFormat.apply(this) + 8923 zeroFill(this.minutes(), 2) + 8924 zeroFill(this.seconds(), 2) 8925 ); 8926 }); 8927 8928 addFormatToken('Hmm', 0, 0, function () { 8929 return '' + this.hours() + zeroFill(this.minutes(), 2); 8930 }); 8931 8932 addFormatToken('Hmmss', 0, 0, function () { 8933 return ( 8934 '' + 8935 this.hours() + 8936 zeroFill(this.minutes(), 2) + 8937 zeroFill(this.seconds(), 2) 8938 ); 8939 }); 8940 8941 function meridiem(token, lowercase) { 8942 addFormatToken(token, 0, 0, function () { 8943 return this.localeData().meridiem( 8944 this.hours(), 8945 this.minutes(), 8946 lowercase 8947 ); 8948 }); 8949 } 8950 8951 meridiem('a', true); 8952 meridiem('A', false); 8953 8954 // ALIASES 8955 8956 addUnitAlias('hour', 'h'); 8957 8958 // PRIORITY 8959 addUnitPriority('hour', 13); 8960 8961 // PARSING 8962 8963 function matchMeridiem(isStrict, locale) { 8964 return locale._meridiemParse; 8965 } 8966 8967 addRegexToken('a', matchMeridiem); 8968 addRegexToken('A', matchMeridiem); 8969 addRegexToken('H', match1to2); 8970 addRegexToken('h', match1to2); 8971 addRegexToken('k', match1to2); 8972 addRegexToken('HH', match1to2, match2); 8973 addRegexToken('hh', match1to2, match2); 8974 addRegexToken('kk', match1to2, match2); 8975 8976 addRegexToken('hmm', match3to4); 8977 addRegexToken('hmmss', match5to6); 8978 addRegexToken('Hmm', match3to4); 8979 addRegexToken('Hmmss', match5to6); 8980 8981 addParseToken(['H', 'HH'], HOUR); 8982 addParseToken(['k', 'kk'], function (input, array, config) { 8983 var kInput = toInt(input); 8984 array[HOUR] = kInput === 24 ? 0 : kInput; 8985 }); 8986 addParseToken(['a', 'A'], function (input, array, config) { 8987 config._isPm = config._locale.isPM(input); 8988 config._meridiem = input; 8989 }); 8990 addParseToken(['h', 'hh'], function (input, array, config) { 8991 array[HOUR] = toInt(input); 8992 getParsingFlags(config).bigHour = true; 8993 }); 8994 addParseToken('hmm', function (input, array, config) { 8995 var pos = input.length - 2; 8996 array[HOUR] = toInt(input.substr(0, pos)); 8997 array[MINUTE] = toInt(input.substr(pos)); 8998 getParsingFlags(config).bigHour = true; 8999 });
vendor: 23,121 bytes, lines 9000-9657
9000 addParseToken('hmmss', function (input, array, config) { 9001 var pos1 = input.length - 4, 9002 pos2 = input.length - 2; 9003 array[HOUR] = toInt(input.substr(0, pos1)); 9004 array[MINUTE] = toInt(input.substr(pos1, 2)); 9005 array[SECOND] = toInt(input.substr(pos2)); 9006 getParsingFlags(config).bigHour = true; 9007 }); 9008 addParseToken('Hmm', function (input, array, config) { 9009 var pos = input.length - 2; 9010 array[HOUR] = toInt(input.substr(0, pos)); 9011 array[MINUTE] = toInt(input.substr(pos)); 9012 }); 9013 addParseToken('Hmmss', function (input, array, config) { 9014 var pos1 = input.length - 4, 9015 pos2 = input.length - 2; 9016 array[HOUR] = toInt(input.substr(0, pos1)); 9017 array[MINUTE] = toInt(input.substr(pos1, 2)); 9018 array[SECOND] = toInt(input.substr(pos2)); 9019 }); 9020 9021 // LOCALES 9022 9023 function localeIsPM(input) { 9024 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 9025 // Using charAt should be more compatible. 9026 return (input + '').toLowerCase().charAt(0) === 'p'; 9027 } 9028 9029 var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, 9030 // Setting the hour should keep the time, because the user explicitly 9031 // specified which hour they want. So trying to maintain the same hour (in 9032 // a new timezone) makes sense. Adding/subtracting hours does not follow 9033 // this rule. 9034 getSetHour = makeGetSet('Hours', true); 9035 9036 function localeMeridiem(hours, minutes, isLower) { 9037 if (hours > 11) { 9038 return isLower ? 'pm' : 'PM'; 9039 } else { 9040 return isLower ? 'am' : 'AM'; 9041 } 9042 } 9043 9044 var baseConfig = { 9045 calendar: defaultCalendar, 9046 longDateFormat: defaultLongDateFormat, 9047 invalidDate: defaultInvalidDate, 9048 ordinal: defaultOrdinal, 9049 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 9050 relativeTime: defaultRelativeTime, 9051 9052 months: defaultLocaleMonths, 9053 monthsShort: defaultLocaleMonthsShort, 9054 9055 week: defaultLocaleWeek, 9056 9057 weekdays: defaultLocaleWeekdays, 9058 weekdaysMin: defaultLocaleWeekdaysMin, 9059 weekdaysShort: defaultLocaleWeekdaysShort, 9060 9061 meridiemParse: defaultLocaleMeridiemParse, 9062 }; 9063 9064 // internal storage for locale config files 9065 var locales = {}, 9066 localeFamilies = {}, 9067 globalLocale; 9068 9069 function commonPrefix(arr1, arr2) { 9070 var i, 9071 minl = Math.min(arr1.length, arr2.length); 9072 for (i = 0; i < minl; i += 1) { 9073 if (arr1[i] !== arr2[i]) { 9074 return i; 9075 } 9076 } 9077 return minl; 9078 } 9079 9080 function normalizeLocale(key) { 9081 return key ? key.toLowerCase().replace('_', '-') : key; 9082 } 9083 9084 // pick the locale from the array 9085 // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 9086 // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 9087 function chooseLocale(names) { 9088 var i = 0, 9089 j, 9090 next, 9091 locale, 9092 split; 9093 9094 while (i < names.length) { 9095 split = normalizeLocale(names[i]).split('-'); 9096 j = split.length; 9097 next = normalizeLocale(names[i + 1]); 9098 next = next ? next.split('-') : null; 9099 while (j > 0) { 9100 locale = loadLocale(split.slice(0, j).join('-')); 9101 if (locale) { 9102 return locale; 9103 } 9104 if ( 9105 next && 9106 next.length >= j && 9107 commonPrefix(split, next) >= j - 1 9108 ) { 9109 //the next array item is better than a shallower substring of this one 9110 break; 9111 } 9112 j--; 9113 } 9114 i++; 9115 } 9116 return globalLocale; 9117 } 9118 9119 function loadLocale(name) { 9120 var oldLocale = null, 9121 aliasedRequire; 9122 // TODO: Find a better way to register and load all the locales in Node 9123 if ( 9124 locales[name] === undefined && 9125 typeof module !== 'undefined' && 9126 module && 9127 module.exports 9128 ) { 9129 try { 9130 oldLocale = globalLocale._abbr; 9131 aliasedRequire = require; 9132 aliasedRequire('./locale/' + name); 9133 getSetGlobalLocale(oldLocale); 9134 } catch (e) { 9135 // mark as not found to avoid repeating expensive file require call causing high CPU 9136 // when trying to find en-US, en_US, en-us for every format call 9137 locales[name] = null; // null means not found 9138 } 9139 } 9140 return locales[name]; 9141 } 9142 9143 // This function will load locale and then set the global locale. If 9144 // no arguments are passed in, it will simply return the current global 9145 // locale key. 9146 function getSetGlobalLocale(key, values) { 9147 var data; 9148 if (key) { 9149 if (isUndefined(values)) { 9150 data = getLocale(key); 9151 } else { 9152 data = defineLocale(key, values); 9153 } 9154 9155 if (data) { 9156 // moment.duration._locale = moment._locale = data; 9157 globalLocale = data; 9158 } else { 9159 if (typeof console !== 'undefined' && console.warn) { 9160 //warn user if arguments are passed but the locale could not be set 9161 console.warn( 9162 'Locale ' + key + ' not found. Did you forget to load it?' 9163 ); 9164 } 9165 } 9166 } 9167 9168 return globalLocale._abbr; 9169 } 9170 9171 function defineLocale(name, config) { 9172 if (config !== null) { 9173 var locale, 9174 parentConfig = baseConfig; 9175 config.abbr = name; 9176 if (locales[name] != null) { 9177 deprecateSimple( 9178 'defineLocaleOverride', 9179 'use moment.updateLocale(localeName, config) to change ' + 9180 'an existing locale. moment.defineLocale(localeName, ' + 9181 'config) should only be used for creating a new locale ' + 9182 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.' 9183 ); 9184 parentConfig = locales[name]._config; 9185 } else if (config.parentLocale != null) { 9186 if (locales[config.parentLocale] != null) { 9187 parentConfig = locales[config.parentLocale]._config; 9188 } else { 9189 locale = loadLocale(config.parentLocale); 9190 if (locale != null) { 9191 parentConfig = locale._config; 9192 } else { 9193 if (!localeFamilies[config.parentLocale]) { 9194 localeFamilies[config.parentLocale] = []; 9195 } 9196 localeFamilies[config.parentLocale].push({ 9197 name: name, 9198 config: config, 9199 }); 9200 return null; 9201 } 9202 } 9203 } 9204 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 9205 9206 if (localeFamilies[name]) { 9207 localeFamilies[name].forEach(function (x) { 9208 defineLocale(x.name, x.config); 9209 }); 9210 } 9211 9212 // backwards compat for now: also set the locale 9213 // make sure we set the locale AFTER all child locales have been 9214 // created, so we won't end up with the child locale set. 9215 getSetGlobalLocale(name); 9216 9217 return locales[name]; 9218 } else { 9219 // useful for testing 9220 delete locales[name]; 9221 return null; 9222 } 9223 } 9224 9225 function updateLocale(name, config) { 9226 if (config != null) { 9227 var locale, 9228 tmpLocale, 9229 parentConfig = baseConfig; 9230 9231 if (locales[name] != null && locales[name].parentLocale != null) { 9232 // Update existing child locale in-place to avoid memory-leaks 9233 locales[name].set(mergeConfigs(locales[name]._config, config)); 9234 } else { 9235 // MERGE 9236 tmpLocale = loadLocale(name); 9237 if (tmpLocale != null) { 9238 parentConfig = tmpLocale._config; 9239 } 9240 config = mergeConfigs(parentConfig, config); 9241 if (tmpLocale == null) { 9242 // updateLocale is called for creating a new locale 9243 // Set abbr so it will have a name (getters return 9244 // undefined otherwise). 9245 config.abbr = name; 9246 } 9247 locale = new Locale(config); 9248 locale.parentLocale = locales[name]; 9249 locales[name] = locale; 9250 } 9251 9252 // backwards compat for now: also set the locale 9253 getSetGlobalLocale(name); 9254 } else { 9255 // pass null for config to unupdate, useful for tests 9256 if (locales[name] != null) { 9257 if (locales[name].parentLocale != null) { 9258 locales[name] = locales[name].parentLocale; 9259 if (name === getSetGlobalLocale()) { 9260 getSetGlobalLocale(name); 9261 } 9262 } else if (locales[name] != null) { 9263 delete locales[name]; 9264 } 9265 } 9266 } 9267 return locales[name]; 9268 } 9269 9270 // returns locale data 9271 function getLocale(key) { 9272 var locale; 9273 9274 if (key && key._locale && key._locale._abbr) { 9275 key = key._locale._abbr; 9276 } 9277 9278 if (!key) { 9279 return globalLocale; 9280 } 9281 9282 if (!isArray(key)) { 9283 //short-circuit everything else 9284 locale = loadLocale(key); 9285 if (locale) { 9286 return locale; 9287 } 9288 key = [key]; 9289 } 9290 9291 return chooseLocale(key); 9292 } 9293 9294 function listLocales() { 9295 return keys(locales); 9296 } 9297 9298 function checkOverflow(m) { 9299 var overflow, 9300 a = m._a; 9301 9302 if (a && getParsingFlags(m).overflow === -2) { 9303 overflow = 9304 a[MONTH] < 0 || a[MONTH] > 11 9305 ? MONTH 9306 : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) 9307 ? DATE 9308 : a[HOUR] < 0 || 9309 a[HOUR] > 24 || 9310 (a[HOUR] === 24 && 9311 (a[MINUTE] !== 0 || 9312 a[SECOND] !== 0 || 9313 a[MILLISECOND] !== 0)) 9314 ? HOUR 9315 : a[MINUTE] < 0 || a[MINUTE] > 59 9316 ? MINUTE 9317 : a[SECOND] < 0 || a[SECOND] > 59 9318 ? SECOND 9319 : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 9320 ? MILLISECOND 9321 : -1; 9322 9323 if ( 9324 getParsingFlags(m)._overflowDayOfYear && 9325 (overflow < YEAR || overflow > DATE) 9326 ) { 9327 overflow = DATE; 9328 } 9329 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 9330 overflow = WEEK; 9331 } 9332 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 9333 overflow = WEEKDAY; 9334 } 9335 9336 getParsingFlags(m).overflow = overflow; 9337 } 9338 9339 return m; 9340 } 9341 9342 // iso 8601 regex 9343 // 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) 9344 var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, 9345 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)?)?$/, 9346 tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, 9347 isoDates = [ 9348 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], 9349 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], 9350 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], 9351 ['GGGG-[W]WW', /\d{4}-W\d\d/, false], 9352 ['YYYY-DDD', /\d{4}-\d{3}/], 9353 ['YYYY-MM', /\d{4}-\d\d/, false], 9354 ['YYYYYYMMDD', /[+-]\d{10}/], 9355 ['YYYYMMDD', /\d{8}/], 9356 ['GGGG[W]WWE', /\d{4}W\d{3}/], 9357 ['GGGG[W]WW', /\d{4}W\d{2}/, false], 9358 ['YYYYDDD', /\d{7}/], 9359 ['YYYYMM', /\d{6}/, false], 9360 ['YYYY', /\d{4}/, false], 9361 ], 9362 // iso time formats and regexes 9363 isoTimes = [ 9364 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], 9365 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], 9366 ['HH:mm:ss', /\d\d:\d\d:\d\d/], 9367 ['HH:mm', /\d\d:\d\d/], 9368 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], 9369 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], 9370 ['HHmmss', /\d\d\d\d\d\d/], 9371 ['HHmm', /\d\d\d\d/], 9372 ['HH', /\d\d/], 9373 ], 9374 aspNetJsonRegex = /^\/?Date\((-?\d+)/i, 9375 // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 9376 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}))$/, 9377 obsOffsets = { 9378 UT: 0, 9379 GMT: 0, 9380 EDT: -4 * 60, 9381 EST: -5 * 60, 9382 CDT: -5 * 60, 9383 CST: -6 * 60, 9384 MDT: -6 * 60, 9385 MST: -7 * 60, 9386 PDT: -7 * 60, 9387 PST: -8 * 60, 9388 }; 9389 9390 // date from iso format 9391 function configFromISO(config) { 9392 var i, 9393 l, 9394 string = config._i, 9395 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 9396 allowTime, 9397 dateFormat, 9398 timeFormat, 9399 tzFormat; 9400 9401 if (match) { 9402 getParsingFlags(config).iso = true; 9403 9404 for (i = 0, l = isoDates.length; i < l; i++) { 9405 if (isoDates[i][1].exec(match[1])) { 9406 dateFormat = isoDates[i][0]; 9407 allowTime = isoDates[i][2] !== false; 9408 break; 9409 } 9410 } 9411 if (dateFormat == null) { 9412 config._isValid = false; 9413 return; 9414 } 9415 if (match[3]) { 9416 for (i = 0, l = isoTimes.length; i < l; i++) { 9417 if (isoTimes[i][1].exec(match[3])) { 9418 // match[2] should be 'T' or space 9419 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 9420 break; 9421 } 9422 } 9423 if (timeFormat == null) { 9424 config._isValid = false; 9425 return; 9426 } 9427 } 9428 if (!allowTime && timeFormat != null) { 9429 config._isValid = false; 9430 return; 9431 } 9432 if (match[4]) { 9433 if (tzRegex.exec(match[4])) { 9434 tzFormat = 'Z'; 9435 } else { 9436 config._isValid = false; 9437 return; 9438 } 9439 } 9440 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 9441 configFromStringAndFormat(config); 9442 } else { 9443 config._isValid = false; 9444 } 9445 } 9446 9447 function extractFromRFC2822Strings( 9448 yearStr, 9449 monthStr, 9450 dayStr, 9451 hourStr, 9452 minuteStr, 9453 secondStr 9454 ) { 9455 var result = [ 9456 untruncateYear(yearStr), 9457 defaultLocaleMonthsShort.indexOf(monthStr), 9458 parseInt(dayStr, 10), 9459 parseInt(hourStr, 10), 9460 parseInt(minuteStr, 10), 9461 ]; 9462 9463 if (secondStr) { 9464 result.push(parseInt(secondStr, 10)); 9465 } 9466 9467 return result; 9468 } 9469 9470 function untruncateYear(yearStr) { 9471 var year = parseInt(yearStr, 10); 9472 if (year <= 49) { 9473 return 2000 + year; 9474 } else if (year <= 999) { 9475 return 1900 + year; 9476 } 9477 return year; 9478 } 9479 9480 function preprocessRFC2822(s) { 9481 // Remove comments and folding whitespace and replace multiple-spaces with a single space 9482 return s 9483 .replace(/\([^)]*\)|[\n\t]/g, ' ') 9484 .replace(/(\s\s+)/g, ' ') 9485 .replace(/^\s\s*/, '') 9486 .replace(/\s\s*$/, ''); 9487 } 9488 9489 function checkWeekday(weekdayStr, parsedInput, config) { 9490 if (weekdayStr) { 9491 // TODO: Replace the vanilla JS Date object with an independent day-of-week check. 9492 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 9493 weekdayActual = new Date( 9494 parsedInput[0], 9495 parsedInput[1], 9496 parsedInput[2] 9497 ).getDay(); 9498 if (weekdayProvided !== weekdayActual) { 9499 getParsingFlags(config).weekdayMismatch = true; 9500 config._isValid = false; 9501 return false; 9502 } 9503 } 9504 return true; 9505 } 9506 9507 function calculateOffset(obsOffset, militaryOffset, numOffset) { 9508 if (obsOffset) { 9509 return obsOffsets[obsOffset]; 9510 } else if (militaryOffset) { 9511 // the only allowed military tz is Z 9512 return 0; 9513 } else { 9514 var hm = parseInt(numOffset, 10), 9515 m = hm % 100, 9516 h = (hm - m) / 100; 9517 return h * 60 + m; 9518 } 9519 } 9520 9521 // date and time from ref 2822 format 9522 function configFromRFC2822(config) { 9523 var match = rfc2822.exec(preprocessRFC2822(config._i)), 9524 parsedArray; 9525 if (match) { 9526 parsedArray = extractFromRFC2822Strings( 9527 match[4], 9528 match[3], 9529 match[2], 9530 match[5], 9531 match[6], 9532 match[7] 9533 ); 9534 if (!checkWeekday(match[1], parsedArray, config)) { 9535 return; 9536 } 9537 9538 config._a = parsedArray; 9539 config._tzm = calculateOffset(match[8], match[9], match[10]); 9540 9541 config._d = createUTCDate.apply(null, config._a); 9542 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 9543 9544 getParsingFlags(config).rfc2822 = true; 9545 } else { 9546 config._isValid = false; 9547 } 9548 } 9549 9550 // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict 9551 function configFromString(config) { 9552 var matched = aspNetJsonRegex.exec(config._i); 9553 if (matched !== null) { 9554 config._d = new Date(+matched[1]); 9555 return; 9556 } 9557 9558 configFromISO(config); 9559 if (config._isValid === false) { 9560 delete config._isValid; 9561 } else { 9562 return; 9563 } 9564 9565 configFromRFC2822(config); 9566 if (config._isValid === false) { 9567 delete config._isValid; 9568 } else { 9569 return; 9570 } 9571 9572 if (config._strict) { 9573 config._isValid = false; 9574 } else { 9575 // Final attempt, use Input Fallback 9576 hooks.createFromInputFallback(config); 9577 } 9578 } 9579 9580 hooks.createFromInputFallback = deprecate( 9581 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 9582 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 9583 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', 9584 function (config) { 9585 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 9586 } 9587 ); 9588 9589 // Pick the first defined of two or three arguments. 9590 function defaults(a, b, c) { 9591 if (a != null) { 9592 return a; 9593 } 9594 if (b != null) { 9595 return b; 9596 } 9597 return c; 9598 } 9599 9600 function currentDateArray(config) { 9601 // hooks is actually the exported moment object 9602 var nowValue = new Date(hooks.now()); 9603 if (config._useUTC) { 9604 return [ 9605 nowValue.getUTCFullYear(), 9606 nowValue.getUTCMonth(), 9607 nowValue.getUTCDate(), 9608 ]; 9609 } 9610 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 9611 } 9612 9613 // convert an array to a date. 9614 // the array should mirror the parameters below 9615 // note: all values past the year are optional and will default to the lowest possible value. 9616 // [year, month, day , hour, minute, second, millisecond] 9617 function configFromArray(config) { 9618 var i, 9619 date, 9620 input = [], 9621 currentDate, 9622 expectedWeekday, 9623 yearToUse; 9624 9625 if (config._d) { 9626 return; 9627 } 9628 9629 currentDate = currentDateArray(config); 9630 9631 //compute day of the year from weeks and weekdays 9632 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 9633 dayOfYearFromWeekInfo(config); 9634 } 9635 9636 //if the day of the year is set, figure out what it is 9637 if (config._dayOfYear != null) { 9638 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 9639 9640 if ( 9641 config._dayOfYear > daysInYear(yearToUse) || 9642 config._dayOfYear === 0 9643 ) { 9644 getParsingFlags(config)._overflowDayOfYear = true; 9645 } 9646 9647 date = createUTCDate(yearToUse, 0, config._dayOfYear); 9648 config._a[MONTH] = date.getUTCMonth(); 9649 config._a[DATE] = date.getUTCDate(); 9650 } 9651 9652 // Default to current date. 9653 // * if no year, month, day of month are given, default to today 9654 // * if day of month is given, default month and year 9655 // * if month is given, default only year 9656 // * if year is given, don't default anything 9657 for (i = 0; i < 3 && config._a[i] == null; ++i) {
vendor: 4,611 bytes, lines 9658-9793
9658 config._a[i] = input[i] = currentDate[i]; 9659 } 9660 9661 // Zero out whatever was not defaulted, including time 9662 for (; i < 7; i++) { 9663 config._a[i] = input[i] = 9664 config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i]; 9665 } 9666 9667 // Check for 24:00:00.000 9668 if ( 9669 config._a[HOUR] === 24 && 9670 config._a[MINUTE] === 0 && 9671 config._a[SECOND] === 0 && 9672 config._a[MILLISECOND] === 0 9673 ) { 9674 config._nextDay = true; 9675 config._a[HOUR] = 0; 9676 } 9677 9678 config._d = (config._useUTC ? createUTCDate : createDate).apply( 9679 null, 9680 input 9681 ); 9682 expectedWeekday = config._useUTC 9683 ? config._d.getUTCDay() 9684 : config._d.getDay(); 9685 9686 // Apply timezone offset from input. The actual utcOffset can be changed 9687 // with parseZone. 9688 if (config._tzm != null) { 9689 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 9690 } 9691 9692 if (config._nextDay) { 9693 config._a[HOUR] = 24; 9694 } 9695 9696 // check for mismatching day of week 9697 if ( 9698 config._w && 9699 typeof config._w.d !== 'undefined' && 9700 config._w.d !== expectedWeekday 9701 ) { 9702 getParsingFlags(config).weekdayMismatch = true; 9703 } 9704 } 9705 9706 function dayOfYearFromWeekInfo(config) { 9707 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek; 9708 9709 w = config._w; 9710 if (w.GG != null || w.W != null || w.E != null) { 9711 dow = 1; 9712 doy = 4; 9713 9714 // TODO: We need to take the current isoWeekYear, but that depends on 9715 // how we interpret now (local, utc, fixed offset). So create 9716 // a now version of current config (take local/utc/offset flags, and 9717 // create now). 9718 weekYear = defaults( 9719 w.GG, 9720 config._a[YEAR], 9721 weekOfYear(createLocal(), 1, 4).year 9722 ); 9723 week = defaults(w.W, 1); 9724 weekday = defaults(w.E, 1); 9725 if (weekday < 1 || weekday > 7) { 9726 weekdayOverflow = true; 9727 } 9728 } else { 9729 dow = config._locale._week.dow; 9730 doy = config._locale._week.doy; 9731 9732 curWeek = weekOfYear(createLocal(), dow, doy); 9733 9734 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 9735 9736 // Default to current week. 9737 week = defaults(w.w, curWeek.week); 9738 9739 if (w.d != null) { 9740 // weekday -- low day numbers are considered next week 9741 weekday = w.d; 9742 if (weekday < 0 || weekday > 6) { 9743 weekdayOverflow = true; 9744 } 9745 } else if (w.e != null) { 9746 // local weekday -- counting starts from beginning of week 9747 weekday = w.e + dow; 9748 if (w.e < 0 || w.e > 6) { 9749 weekdayOverflow = true; 9750 } 9751 } else { 9752 // default to beginning of week 9753 weekday = dow; 9754 } 9755 } 9756 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 9757 getParsingFlags(config)._overflowWeeks = true; 9758 } else if (weekdayOverflow != null) { 9759 getParsingFlags(config)._overflowWeekday = true; 9760 } else { 9761 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 9762 config._a[YEAR] = temp.year; 9763 config._dayOfYear = temp.dayOfYear; 9764 } 9765 } 9766 9767 // constant that refers to the ISO standard 9768 hooks.ISO_8601 = function () {}; 9769 9770 // constant that refers to the RFC 2822 form 9771 hooks.RFC_2822 = function () {}; 9772 9773 // date from string and format string 9774 function configFromStringAndFormat(config) { 9775 // TODO: Move this to another part of the creation flow to prevent circular deps 9776 if (config._f === hooks.ISO_8601) { 9777 configFromISO(config); 9778 return; 9779 } 9780 if (config._f === hooks.RFC_2822) { 9781 configFromRFC2822(config); 9782 return; 9783 } 9784 config._a = []; 9785 getParsingFlags(config).empty = true; 9786 9787 // This array is used to make a Date, either with `new Date` or `Date.UTC` 9788 var string = '' + config._i, 9789 i, 9790 parsedInput, 9791 tokens, 9792 token, 9793 skipped,
vendor: 17,307 bytes, lines 9794-10336
9794 stringLength = string.length, 9795 totalParsedInputLength = 0, 9796 era; 9797 9798 tokens = 9799 expandFormat(config._f, config._locale).match(formattingTokens) || []; 9800 9801 for (i = 0; i < tokens.length; i++) { 9802 token = tokens[i]; 9803 parsedInput = (string.match(getParseRegexForToken(token, config)) || 9804 [])[0]; 9805 if (parsedInput) { 9806 skipped = string.substr(0, string.indexOf(parsedInput)); 9807 if (skipped.length > 0) { 9808 getParsingFlags(config).unusedInput.push(skipped); 9809 } 9810 string = string.slice( 9811 string.indexOf(parsedInput) + parsedInput.length 9812 ); 9813 totalParsedInputLength += parsedInput.length; 9814 } 9815 // don't parse if it's not a known token 9816 if (formatTokenFunctions[token]) { 9817 if (parsedInput) { 9818 getParsingFlags(config).empty = false; 9819 } else { 9820 getParsingFlags(config).unusedTokens.push(token); 9821 } 9822 addTimeToArrayFromToken(token, parsedInput, config); 9823 } else if (config._strict && !parsedInput) { 9824 getParsingFlags(config).unusedTokens.push(token); 9825 } 9826 } 9827 9828 // add remaining unparsed input length to the string 9829 getParsingFlags(config).charsLeftOver = 9830 stringLength - totalParsedInputLength; 9831 if (string.length > 0) { 9832 getParsingFlags(config).unusedInput.push(string); 9833 } 9834 9835 // clear _12h flag if hour is <= 12 9836 if ( 9837 config._a[HOUR] <= 12 && 9838 getParsingFlags(config).bigHour === true && 9839 config._a[HOUR] > 0 9840 ) { 9841 getParsingFlags(config).bigHour = undefined; 9842 } 9843 9844 getParsingFlags(config).parsedDateParts = config._a.slice(0); 9845 getParsingFlags(config).meridiem = config._meridiem; 9846 // handle meridiem 9847 config._a[HOUR] = meridiemFixWrap( 9848 config._locale, 9849 config._a[HOUR], 9850 config._meridiem 9851 ); 9852 9853 // handle era 9854 era = getParsingFlags(config).era; 9855 if (era !== null) { 9856 config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]); 9857 } 9858 9859 configFromArray(config); 9860 checkOverflow(config); 9861 } 9862 9863 function meridiemFixWrap(locale, hour, meridiem) { 9864 var isPm; 9865 9866 if (meridiem == null) { 9867 // nothing to do 9868 return hour; 9869 } 9870 if (locale.meridiemHour != null) { 9871 return locale.meridiemHour(hour, meridiem); 9872 } else if (locale.isPM != null) { 9873 // Fallback 9874 isPm = locale.isPM(meridiem); 9875 if (isPm && hour < 12) { 9876 hour += 12; 9877 } 9878 if (!isPm && hour === 12) { 9879 hour = 0; 9880 } 9881 return hour; 9882 } else { 9883 // this is not supposed to happen 9884 return hour; 9885 } 9886 } 9887 9888 // date from string and array of format strings 9889 function configFromStringAndArray(config) { 9890 var tempConfig, 9891 bestMoment, 9892 scoreToBeat, 9893 i, 9894 currentScore, 9895 validFormatFound, 9896 bestFormatIsValid = false; 9897 9898 if (config._f.length === 0) { 9899 getParsingFlags(config).invalidFormat = true; 9900 config._d = new Date(NaN); 9901 return; 9902 } 9903 9904 for (i = 0; i < config._f.length; i++) { 9905 currentScore = 0; 9906 validFormatFound = false; 9907 tempConfig = copyConfig({}, config); 9908 if (config._useUTC != null) { 9909 tempConfig._useUTC = config._useUTC; 9910 } 9911 tempConfig._f = config._f[i]; 9912 configFromStringAndFormat(tempConfig); 9913 9914 if (isValid(tempConfig)) { 9915 validFormatFound = true; 9916 } 9917 9918 // if there is any input that was not parsed add a penalty for that format 9919 currentScore += getParsingFlags(tempConfig).charsLeftOver; 9920 9921 //or tokens 9922 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 9923 9924 getParsingFlags(tempConfig).score = currentScore; 9925 9926 if (!bestFormatIsValid) { 9927 if ( 9928 scoreToBeat == null || 9929 currentScore < scoreToBeat || 9930 validFormatFound 9931 ) { 9932 scoreToBeat = currentScore; 9933 bestMoment = tempConfig; 9934 if (validFormatFound) { 9935 bestFormatIsValid = true; 9936 } 9937 } 9938 } else { 9939 if (currentScore < scoreToBeat) { 9940 scoreToBeat = currentScore; 9941 bestMoment = tempConfig; 9942 } 9943 } 9944 } 9945 9946 extend(config, bestMoment || tempConfig); 9947 } 9948 9949 function configFromObject(config) { 9950 if (config._d) { 9951 return; 9952 } 9953 9954 var i = normalizeObjectUnits(config._i), 9955 dayOrDate = i.day === undefined ? i.date : i.day; 9956 config._a = map( 9957 [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], 9958 function (obj) { 9959 return obj && parseInt(obj, 10); 9960 } 9961 ); 9962 9963 configFromArray(config); 9964 } 9965 9966 function createFromConfig(config) { 9967 var res = new Moment(checkOverflow(prepareConfig(config))); 9968 if (res._nextDay) { 9969 // Adding is smart enough around DST 9970 res.add(1, 'd'); 9971 res._nextDay = undefined; 9972 } 9973 9974 return res; 9975 } 9976 9977 function prepareConfig(config) { 9978 var input = config._i, 9979 format = config._f; 9980 9981 config._locale = config._locale || getLocale(config._l); 9982 9983 if (input === null || (format === undefined && input === '')) { 9984 return createInvalid({ nullInput: true }); 9985 } 9986 9987 if (typeof input === 'string') { 9988 config._i = input = config._locale.preparse(input); 9989 } 9990 9991 if (isMoment(input)) { 9992 return new Moment(checkOverflow(input)); 9993 } else if (isDate(input)) { 9994 config._d = input; 9995 } else if (isArray(format)) { 9996 configFromStringAndArray(config); 9997 } else if (format) { 9998 configFromStringAndFormat(config); 9999 } else { 10000 configFromInput(config); 10001 } 10002 10003 if (!isValid(config)) { 10004 config._d = null; 10005 } 10006 10007 return config; 10008 } 10009 10010 function configFromInput(config) { 10011 var input = config._i; 10012 if (isUndefined(input)) { 10013 config._d = new Date(hooks.now()); 10014 } else if (isDate(input)) { 10015 config._d = new Date(input.valueOf()); 10016 } else if (typeof input === 'string') { 10017 configFromString(config); 10018 } else if (isArray(input)) { 10019 config._a = map(input.slice(0), function (obj) { 10020 return parseInt(obj, 10); 10021 }); 10022 configFromArray(config); 10023 } else if (isObject(input)) { 10024 configFromObject(config); 10025 } else if (isNumber(input)) { 10026 // from milliseconds 10027 config._d = new Date(input); 10028 } else { 10029 hooks.createFromInputFallback(config); 10030 } 10031 } 10032 10033 function createLocalOrUTC(input, format, locale, strict, isUTC) { 10034 var c = {}; 10035 10036 if (format === true || format === false) { 10037 strict = format; 10038 format = undefined; 10039 } 10040 10041 if (locale === true || locale === false) { 10042 strict = locale; 10043 locale = undefined; 10044 } 10045 10046 if ( 10047 (isObject(input) && isObjectEmpty(input)) || 10048 (isArray(input) && input.length === 0) 10049 ) { 10050 input = undefined; 10051 } 10052 // object construction must be done this way. 10053 // https://github.com/moment/moment/issues/1423 10054 c._isAMomentObject = true; 10055 c._useUTC = c._isUTC = isUTC; 10056 c._l = locale; 10057 c._i = input; 10058 c._f = format; 10059 c._strict = strict; 10060 10061 return createFromConfig(c); 10062 } 10063 10064 function createLocal(input, format, locale, strict) { 10065 return createLocalOrUTC(input, format, locale, strict, false); 10066 } 10067 10068 var prototypeMin = deprecate( 10069 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 10070 function () { 10071 var other = createLocal.apply(null, arguments); 10072 if (this.isValid() && other.isValid()) { 10073 return other < this ? this : other; 10074 } else { 10075 return createInvalid(); 10076 } 10077 } 10078 ), 10079 prototypeMax = deprecate( 10080 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 10081 function () { 10082 var other = createLocal.apply(null, arguments); 10083 if (this.isValid() && other.isValid()) { 10084 return other > this ? this : other; 10085 } else { 10086 return createInvalid(); 10087 } 10088 } 10089 ); 10090 10091 // Pick a moment m from moments so that m[fn](other) is true for all 10092 // other. This relies on the function fn to be transitive. 10093 // 10094 // moments should either be an array of moment objects or an array, whose 10095 // first element is an array of moment objects. 10096 function pickBy(fn, moments) { 10097 var res, i; 10098 if (moments.length === 1 && isArray(moments[0])) { 10099 moments = moments[0]; 10100 } 10101 if (!moments.length) { 10102 return createLocal(); 10103 } 10104 res = moments[0]; 10105 for (i = 1; i < moments.length; ++i) { 10106 if (!moments[i].isValid() || moments[i][fn](res)) { 10107 res = moments[i]; 10108 } 10109 } 10110 return res; 10111 } 10112 10113 // TODO: Use [].sort instead? 10114 function min() { 10115 var args = [].slice.call(arguments, 0); 10116 10117 return pickBy('isBefore', args); 10118 } 10119 10120 function max() { 10121 var args = [].slice.call(arguments, 0); 10122 10123 return pickBy('isAfter', args); 10124 } 10125 10126 var now = function () { 10127 return Date.now ? Date.now() : +new Date(); 10128 }; 10129 10130 var ordering = [ 10131 'year', 10132 'quarter', 10133 'month', 10134 'week', 10135 'day', 10136 'hour', 10137 'minute', 10138 'second', 10139 'millisecond', 10140 ]; 10141 10142 function isDurationValid(m) { 10143 var key, 10144 unitHasDecimal = false, 10145 i; 10146 for (key in m) { 10147 if ( 10148 hasOwnProp(m, key) && 10149 !( 10150 indexOf.call(ordering, key) !== -1 && 10151 (m[key] == null || !isNaN(m[key])) 10152 ) 10153 ) { 10154 return false; 10155 } 10156 } 10157 10158 for (i = 0; i < ordering.length; ++i) { 10159 if (m[ordering[i]]) { 10160 if (unitHasDecimal) { 10161 return false; // only allow non-integers for smallest unit 10162 } 10163 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 10164 unitHasDecimal = true; 10165 } 10166 } 10167 } 10168 10169 return true; 10170 } 10171 10172 function isValid$1() { 10173 return this._isValid; 10174 } 10175 10176 function createInvalid$1() { 10177 return createDuration(NaN); 10178 } 10179 10180 function Duration(duration) { 10181 var normalizedInput = normalizeObjectUnits(duration), 10182 years = normalizedInput.year || 0, 10183 quarters = normalizedInput.quarter || 0, 10184 months = normalizedInput.month || 0, 10185 weeks = normalizedInput.week || normalizedInput.isoWeek || 0, 10186 days = normalizedInput.day || 0, 10187 hours = normalizedInput.hour || 0, 10188 minutes = normalizedInput.minute || 0, 10189 seconds = normalizedInput.second || 0, 10190 milliseconds = normalizedInput.millisecond || 0; 10191 10192 this._isValid = isDurationValid(normalizedInput); 10193 10194 // representation for dateAddRemove 10195 this._milliseconds = 10196 +milliseconds + 10197 seconds * 1e3 + // 1000 10198 minutes * 6e4 + // 1000 * 60 10199 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 10200 // Because of dateAddRemove treats 24 hours as different from a 10201 // day when working around DST, we need to store them separately 10202 this._days = +days + weeks * 7; 10203 // It is impossible to translate months into days without knowing 10204 // which months you are are talking about, so we have to store 10205 // it separately. 10206 this._months = +months + quarters * 3 + years * 12; 10207 10208 this._data = {}; 10209 10210 this._locale = getLocale(); 10211 10212 this._bubble(); 10213 } 10214 10215 function isDuration(obj) { 10216 return obj instanceof Duration; 10217 } 10218 10219 function absRound(number) { 10220 if (number < 0) { 10221 return Math.round(-1 * number) * -1; 10222 } else { 10223 return Math.round(number); 10224 } 10225 } 10226 10227 // compare two arrays, return the number of differences 10228 function compareArrays(array1, array2, dontConvert) { 10229 var len = Math.min(array1.length, array2.length), 10230 lengthDiff = Math.abs(array1.length - array2.length), 10231 diffs = 0, 10232 i; 10233 for (i = 0; i < len; i++) { 10234 if ( 10235 (dontConvert && array1[i] !== array2[i]) || 10236 (!dontConvert && toInt(array1[i]) !== toInt(array2[i])) 10237 ) { 10238 diffs++; 10239 } 10240 } 10241 return diffs + lengthDiff; 10242 } 10243 10244 // FORMATTING 10245 10246 function offset(token, separator) { 10247 addFormatToken(token, 0, 0, function () { 10248 var offset = this.utcOffset(), 10249 sign = '+'; 10250 if (offset < 0) { 10251 offset = -offset; 10252 sign = '-'; 10253 } 10254 return ( 10255 sign + 10256 zeroFill(~~(offset / 60), 2) + 10257 separator + 10258 zeroFill(~~offset % 60, 2) 10259 ); 10260 }); 10261 } 10262 10263 offset('Z', ':'); 10264 offset('ZZ', ''); 10265 10266 // PARSING 10267 10268 addRegexToken('Z', matchShortOffset); 10269 addRegexToken('ZZ', matchShortOffset); 10270 addParseToken(['Z', 'ZZ'], function (input, array, config) { 10271 config._useUTC = true; 10272 config._tzm = offsetFromString(matchShortOffset, input); 10273 }); 10274 10275 // HELPERS 10276 10277 // timezone chunker 10278 // '+10:00' > ['10', '00'] 10279 // '-1530' > ['-15', '30'] 10280 var chunkOffset = /([\+\-]|\d\d)/gi; 10281 10282 function offsetFromString(matcher, string) { 10283 var matches = (string || '').match(matcher), 10284 chunk, 10285 parts, 10286 minutes; 10287 10288 if (matches === null) { 10289 return null; 10290 } 10291 10292 chunk = matches[matches.length - 1] || []; 10293 parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 10294 minutes = +(parts[1] * 60) + toInt(parts[2]); 10295 10296 return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes; 10297 } 10298 10299 // Return a moment from input, that is local/utc/zone equivalent to model. 10300 function cloneWithOffset(input, model) { 10301 var res, diff; 10302 if (model._isUTC) { 10303 res = model.clone(); 10304 diff = 10305 (isMoment(input) || isDate(input) 10306 ? input.valueOf() 10307 : createLocal(input).valueOf()) - res.valueOf(); 10308 // Use low-level api, because this fn is low-level api. 10309 res._d.setTime(res._d.valueOf() + diff); 10310 hooks.updateOffset(res, false); 10311 return res; 10312 } else { 10313 return createLocal(input).local(); 10314 } 10315 } 10316 10317 function getDateOffset(m) { 10318 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 10319 // https://github.com/moment/moment/pull/1871 10320 return -Math.round(m._d.getTimezoneOffset()); 10321 } 10322 10323 // HOOKS 10324 10325 // This function will be called whenever a moment is mutated. 10326 // It is intended to keep the offset in sync with the timezone. 10327 hooks.updateOffset = function () {}; 10328 10329 // MOMENTS 10330 10331 // keepLocalTime = true means only change the timezone, without 10332 // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 10333 // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 10334 // +0200, so we adjust the time as needed, to be valid. 10335 // 10336 // Keeping the time actually adds/subtracts (one hour)
vendor: 31,184 bytes, lines 10337-11297
10337 // from the actual represented time. That is why we call updateOffset 10338 // a second time. In case it wants us to change the offset again 10339 // _changeInProgress == true case, then we have to adjust, because 10340 // there is no such time in the given timezone. 10341 function getSetOffset(input, keepLocalTime, keepMinutes) { 10342 var offset = this._offset || 0, 10343 localAdjust; 10344 if (!this.isValid()) { 10345 return input != null ? this : NaN; 10346 } 10347 if (input != null) { 10348 if (typeof input === 'string') { 10349 input = offsetFromString(matchShortOffset, input); 10350 if (input === null) { 10351 return this; 10352 } 10353 } else if (Math.abs(input) < 16 && !keepMinutes) { 10354 input = input * 60; 10355 } 10356 if (!this._isUTC && keepLocalTime) { 10357 localAdjust = getDateOffset(this); 10358 } 10359 this._offset = input; 10360 this._isUTC = true; 10361 if (localAdjust != null) { 10362 this.add(localAdjust, 'm'); 10363 } 10364 if (offset !== input) { 10365 if (!keepLocalTime || this._changeInProgress) { 10366 addSubtract( 10367 this, 10368 createDuration(input - offset, 'm'), 10369 1, 10370 false 10371 ); 10372 } else if (!this._changeInProgress) { 10373 this._changeInProgress = true; 10374 hooks.updateOffset(this, true); 10375 this._changeInProgress = null; 10376 } 10377 } 10378 return this; 10379 } else { 10380 return this._isUTC ? offset : getDateOffset(this); 10381 } 10382 } 10383 10384 function getSetZone(input, keepLocalTime) { 10385 if (input != null) { 10386 if (typeof input !== 'string') { 10387 input = -input; 10388 } 10389 10390 this.utcOffset(input, keepLocalTime); 10391 10392 return this; 10393 } else { 10394 return -this.utcOffset(); 10395 } 10396 } 10397 10398 function setOffsetToUTC(keepLocalTime) { 10399 return this.utcOffset(0, keepLocalTime); 10400 } 10401 10402 function setOffsetToLocal(keepLocalTime) { 10403 if (this._isUTC) { 10404 this.utcOffset(0, keepLocalTime); 10405 this._isUTC = false; 10406 10407 if (keepLocalTime) { 10408 this.subtract(getDateOffset(this), 'm'); 10409 } 10410 } 10411 return this; 10412 } 10413 10414 function setOffsetToParsedOffset() { 10415 if (this._tzm != null) { 10416 this.utcOffset(this._tzm, false, true); 10417 } else if (typeof this._i === 'string') { 10418 var tZone = offsetFromString(matchOffset, this._i); 10419 if (tZone != null) { 10420 this.utcOffset(tZone); 10421 } else { 10422 this.utcOffset(0, true); 10423 } 10424 } 10425 return this; 10426 } 10427 10428 function hasAlignedHourOffset(input) { 10429 if (!this.isValid()) { 10430 return false; 10431 } 10432 input = input ? createLocal(input).utcOffset() : 0; 10433 10434 return (this.utcOffset() - input) % 60 === 0; 10435 } 10436 10437 function isDaylightSavingTime() { 10438 return ( 10439 this.utcOffset() > this.clone().month(0).utcOffset() || 10440 this.utcOffset() > this.clone().month(5).utcOffset() 10441 ); 10442 } 10443 10444 function isDaylightSavingTimeShifted() { 10445 if (!isUndefined(this._isDSTShifted)) { 10446 return this._isDSTShifted; 10447 } 10448 10449 var c = {}, 10450 other; 10451 10452 copyConfig(c, this); 10453 c = prepareConfig(c); 10454 10455 if (c._a) { 10456 other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 10457 this._isDSTShifted = 10458 this.isValid() && compareArrays(c._a, other.toArray()) > 0; 10459 } else { 10460 this._isDSTShifted = false; 10461 } 10462 10463 return this._isDSTShifted; 10464 } 10465 10466 function isLocal() { 10467 return this.isValid() ? !this._isUTC : false; 10468 } 10469 10470 function isUtcOffset() { 10471 return this.isValid() ? this._isUTC : false; 10472 } 10473 10474 function isUtc() { 10475 return this.isValid() ? this._isUTC && this._offset === 0 : false; 10476 } 10477 10478 // ASP.NET json date format regex 10479 var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, 10480 // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 10481 // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 10482 // and further modified to allow for strings containing both week and day 10483 isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 10484 10485 function createDuration(input, key) { 10486 var duration = input, 10487 // matching against regexp is expensive, do it on demand 10488 match = null, 10489 sign, 10490 ret, 10491 diffRes; 10492 10493 if (isDuration(input)) { 10494 duration = { 10495 ms: input._milliseconds, 10496 d: input._days, 10497 M: input._months, 10498 }; 10499 } else if (isNumber(input) || !isNaN(+input)) { 10500 duration = {}; 10501 if (key) { 10502 duration[key] = +input; 10503 } else { 10504 duration.milliseconds = +input; 10505 } 10506 } else if ((match = aspNetRegex.exec(input))) { 10507 sign = match[1] === '-' ? -1 : 1; 10508 duration = { 10509 y: 0, 10510 d: toInt(match[DATE]) * sign, 10511 h: toInt(match[HOUR]) * sign, 10512 m: toInt(match[MINUTE]) * sign, 10513 s: toInt(match[SECOND]) * sign, 10514 ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match 10515 }; 10516 } else if ((match = isoRegex.exec(input))) { 10517 sign = match[1] === '-' ? -1 : 1; 10518 duration = { 10519 y: parseIso(match[2], sign), 10520 M: parseIso(match[3], sign), 10521 w: parseIso(match[4], sign), 10522 d: parseIso(match[5], sign), 10523 h: parseIso(match[6], sign), 10524 m: parseIso(match[7], sign), 10525 s: parseIso(match[8], sign), 10526 }; 10527 } else if (duration == null) { 10528 // checks for null or undefined 10529 duration = {}; 10530 } else if ( 10531 typeof duration === 'object' && 10532 ('from' in duration || 'to' in duration) 10533 ) { 10534 diffRes = momentsDifference( 10535 createLocal(duration.from), 10536 createLocal(duration.to) 10537 ); 10538 10539 duration = {}; 10540 duration.ms = diffRes.milliseconds; 10541 duration.M = diffRes.months; 10542 } 10543 10544 ret = new Duration(duration); 10545 10546 if (isDuration(input) && hasOwnProp(input, '_locale')) { 10547 ret._locale = input._locale; 10548 } 10549 10550 if (isDuration(input) && hasOwnProp(input, '_isValid')) { 10551 ret._isValid = input._isValid; 10552 } 10553 10554 return ret; 10555 } 10556 10557 createDuration.fn = Duration.prototype; 10558 createDuration.invalid = createInvalid$1; 10559 10560 function parseIso(inp, sign) { 10561 // We'd normally use ~~inp for this, but unfortunately it also 10562 // converts floats to ints. 10563 // inp may be undefined, so careful calling replace on it. 10564 var res = inp && parseFloat(inp.replace(',', '.')); 10565 // apply sign while we're at it 10566 return (isNaN(res) ? 0 : res) * sign; 10567 } 10568 10569 function positiveMomentsDifference(base, other) { 10570 var res = {}; 10571 10572 res.months = 10573 other.month() - base.month() + (other.year() - base.year()) * 12; 10574 if (base.clone().add(res.months, 'M').isAfter(other)) { 10575 --res.months; 10576 } 10577 10578 res.milliseconds = +other - +base.clone().add(res.months, 'M'); 10579 10580 return res; 10581 } 10582 10583 function momentsDifference(base, other) { 10584 var res; 10585 if (!(base.isValid() && other.isValid())) { 10586 return { milliseconds: 0, months: 0 }; 10587 } 10588 10589 other = cloneWithOffset(other, base); 10590 if (base.isBefore(other)) { 10591 res = positiveMomentsDifference(base, other); 10592 } else { 10593 res = positiveMomentsDifference(other, base); 10594 res.milliseconds = -res.milliseconds; 10595 res.months = -res.months; 10596 } 10597 10598 return res; 10599 } 10600 10601 // TODO: remove 'name' arg after deprecation is removed 10602 function createAdder(direction, name) { 10603 return function (val, period) { 10604 var dur, tmp; 10605 //invert the arguments, but complain about it 10606 if (period !== null && !isNaN(+period)) { 10607 deprecateSimple( 10608 name, 10609 'moment().' + 10610 name + 10611 '(period, number) is deprecated. Please use moment().' + 10612 name + 10613 '(number, period). ' + 10614 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' 10615 ); 10616 tmp = val; 10617 val = period; 10618 period = tmp; 10619 } 10620 10621 dur = createDuration(val, period); 10622 addSubtract(this, dur, direction); 10623 return this; 10624 }; 10625 } 10626 10627 function addSubtract(mom, duration, isAdding, updateOffset) { 10628 var milliseconds = duration._milliseconds, 10629 days = absRound(duration._days), 10630 months = absRound(duration._months); 10631 10632 if (!mom.isValid()) { 10633 // No op 10634 return; 10635 } 10636 10637 updateOffset = updateOffset == null ? true : updateOffset; 10638 10639 if (months) { 10640 setMonth(mom, get(mom, 'Month') + months * isAdding); 10641 } 10642 if (days) { 10643 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 10644 } 10645 if (milliseconds) { 10646 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 10647 } 10648 if (updateOffset) { 10649 hooks.updateOffset(mom, days || months); 10650 } 10651 } 10652 10653 var add = createAdder(1, 'add'), 10654 subtract = createAdder(-1, 'subtract'); 10655 10656 function isString(input) { 10657 return typeof input === 'string' || input instanceof String; 10658 } 10659 10660 // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined 10661 function isMomentInput(input) { 10662 return ( 10663 isMoment(input) || 10664 isDate(input) || 10665 isString(input) || 10666 isNumber(input) || 10667 isNumberOrStringArray(input) || 10668 isMomentInputObject(input) || 10669 input === null || 10670 input === undefined 10671 ); 10672 } 10673 10674 function isMomentInputObject(input) { 10675 var objectTest = isObject(input) && !isObjectEmpty(input), 10676 propertyTest = false, 10677 properties = [ 10678 'years', 10679 'year', 10680 'y', 10681 'months', 10682 'month', 10683 'M', 10684 'days', 10685 'day', 10686 'd', 10687 'dates', 10688 'date', 10689 'D', 10690 'hours', 10691 'hour', 10692 'h', 10693 'minutes', 10694 'minute', 10695 'm', 10696 'seconds', 10697 'second', 10698 's', 10699 'milliseconds', 10700 'millisecond', 10701 'ms', 10702 ], 10703 i, 10704 property; 10705 10706 for (i = 0; i < properties.length; i += 1) { 10707 property = properties[i]; 10708 propertyTest = propertyTest || hasOwnProp(input, property); 10709 } 10710 10711 return objectTest && propertyTest; 10712 } 10713 10714 function isNumberOrStringArray(input) { 10715 var arrayTest = isArray(input), 10716 dataTypeTest = false; 10717 if (arrayTest) { 10718 dataTypeTest = 10719 input.filter(function (item) { 10720 return !isNumber(item) && isString(input); 10721 }).length === 0; 10722 } 10723 return arrayTest && dataTypeTest; 10724 } 10725 10726 function isCalendarSpec(input) { 10727 var objectTest = isObject(input) && !isObjectEmpty(input), 10728 propertyTest = false, 10729 properties = [ 10730 'sameDay', 10731 'nextDay', 10732 'lastDay', 10733 'nextWeek', 10734 'lastWeek', 10735 'sameElse', 10736 ], 10737 i, 10738 property; 10739 10740 for (i = 0; i < properties.length; i += 1) { 10741 property = properties[i]; 10742 propertyTest = propertyTest || hasOwnProp(input, property); 10743 } 10744 10745 return objectTest && propertyTest; 10746 } 10747 10748 function getCalendarFormat(myMoment, now) { 10749 var diff = myMoment.diff(now, 'days', true); 10750 return diff < -6 10751 ? 'sameElse' 10752 : diff < -1 10753 ? 'lastWeek' 10754 : diff < 0 10755 ? 'lastDay' 10756 : diff < 1 10757 ? 'sameDay' 10758 : diff < 2 10759 ? 'nextDay' 10760 : diff < 7 10761 ? 'nextWeek' 10762 : 'sameElse'; 10763 } 10764 10765 function calendar$1(time, formats) { 10766 // Support for single parameter, formats only overload to the calendar function 10767 if (arguments.length === 1) { 10768 if (!arguments[0]) { 10769 time = undefined; 10770 formats = undefined; 10771 } else if (isMomentInput(arguments[0])) { 10772 time = arguments[0]; 10773 formats = undefined; 10774 } else if (isCalendarSpec(arguments[0])) { 10775 formats = arguments[0]; 10776 time = undefined; 10777 } 10778 } 10779 // We want to compare the start of today, vs this. 10780 // Getting start-of-today depends on whether we're local/utc/offset or not. 10781 var now = time || createLocal(), 10782 sod = cloneWithOffset(now, this).startOf('day'), 10783 format = hooks.calendarFormat(this, sod) || 'sameElse', 10784 output = 10785 formats && 10786 (isFunction(formats[format]) 10787 ? formats[format].call(this, now) 10788 : formats[format]); 10789 10790 return this.format( 10791 output || this.localeData().calendar(format, this, createLocal(now)) 10792 ); 10793 } 10794 10795 function clone() { 10796 return new Moment(this); 10797 } 10798 10799 function isAfter(input, units) { 10800 var localInput = isMoment(input) ? input : createLocal(input); 10801 if (!(this.isValid() && localInput.isValid())) { 10802 return false; 10803 } 10804 units = normalizeUnits(units) || 'millisecond'; 10805 if (units === 'millisecond') { 10806 return this.valueOf() > localInput.valueOf(); 10807 } else { 10808 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 10809 } 10810 } 10811 10812 function isBefore(input, units) { 10813 var localInput = isMoment(input) ? input : createLocal(input); 10814 if (!(this.isValid() && localInput.isValid())) { 10815 return false; 10816 } 10817 units = normalizeUnits(units) || 'millisecond'; 10818 if (units === 'millisecond') { 10819 return this.valueOf() < localInput.valueOf(); 10820 } else { 10821 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 10822 } 10823 } 10824 10825 function isBetween(from, to, units, inclusivity) { 10826 var localFrom = isMoment(from) ? from : createLocal(from), 10827 localTo = isMoment(to) ? to : createLocal(to); 10828 if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) { 10829 return false; 10830 } 10831 inclusivity = inclusivity || '()'; 10832 return ( 10833 (inclusivity[0] === '(' 10834 ? this.isAfter(localFrom, units) 10835 : !this.isBefore(localFrom, units)) && 10836 (inclusivity[1] === ')' 10837 ? this.isBefore(localTo, units) 10838 : !this.isAfter(localTo, units)) 10839 ); 10840 } 10841 10842 function isSame(input, units) { 10843 var localInput = isMoment(input) ? input : createLocal(input), 10844 inputMs; 10845 if (!(this.isValid() && localInput.isValid())) { 10846 return false; 10847 } 10848 units = normalizeUnits(units) || 'millisecond'; 10849 if (units === 'millisecond') { 10850 return this.valueOf() === localInput.valueOf(); 10851 } else { 10852 inputMs = localInput.valueOf(); 10853 return ( 10854 this.clone().startOf(units).valueOf() <= inputMs && 10855 inputMs <= this.clone().endOf(units).valueOf() 10856 ); 10857 } 10858 } 10859 10860 function isSameOrAfter(input, units) { 10861 return this.isSame(input, units) || this.isAfter(input, units); 10862 } 10863 10864 function isSameOrBefore(input, units) { 10865 return this.isSame(input, units) || this.isBefore(input, units); 10866 } 10867 10868 function diff(input, units, asFloat) { 10869 var that, zoneDelta, output; 10870 10871 if (!this.isValid()) { 10872 return NaN; 10873 } 10874 10875 that = cloneWithOffset(input, this); 10876 10877 if (!that.isValid()) { 10878 return NaN; 10879 } 10880 10881 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 10882 10883 units = normalizeUnits(units); 10884 10885 switch (units) { 10886 case 'year': 10887 output = monthDiff(this, that) / 12; 10888 break; 10889 case 'month': 10890 output = monthDiff(this, that); 10891 break; 10892 case 'quarter': 10893 output = monthDiff(this, that) / 3; 10894 break; 10895 case 'second': 10896 output = (this - that) / 1e3; 10897 break; // 1000 10898 case 'minute': 10899 output = (this - that) / 6e4; 10900 break; // 1000 * 60 10901 case 'hour': 10902 output = (this - that) / 36e5; 10903 break; // 1000 * 60 * 60 10904 case 'day': 10905 output = (this - that - zoneDelta) / 864e5; 10906 break; // 1000 * 60 * 60 * 24, negate dst 10907 case 'week': 10908 output = (this - that - zoneDelta) / 6048e5; 10909 break; // 1000 * 60 * 60 * 24 * 7, negate dst 10910 default: 10911 output = this - that; 10912 } 10913 10914 return asFloat ? output : absFloor(output); 10915 } 10916 10917 function monthDiff(a, b) { 10918 if (a.date() < b.date()) { 10919 // end-of-month calculations work correct when the start month has more 10920 // days than the end month. 10921 return -monthDiff(b, a); 10922 } 10923 // difference in months 10924 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), 10925 // b is in (anchor - 1 month, anchor + 1 month) 10926 anchor = a.clone().add(wholeMonthDiff, 'months'), 10927 anchor2, 10928 adjust; 10929 10930 if (b - anchor < 0) { 10931 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); 10932 // linear across the month 10933 adjust = (b - anchor) / (anchor - anchor2); 10934 } else { 10935 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); 10936 // linear across the month 10937 adjust = (b - anchor) / (anchor2 - anchor); 10938 } 10939 10940 //check for negative zero, return zero if negative zero 10941 return -(wholeMonthDiff + adjust) || 0; 10942 } 10943 10944 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 10945 hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 10946 10947 function toString() { 10948 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 10949 } 10950 10951 function toISOString(keepOffset) { 10952 if (!this.isValid()) { 10953 return null; 10954 } 10955 var utc = keepOffset !== true, 10956 m = utc ? this.clone().utc() : this; 10957 if (m.year() < 0 || m.year() > 9999) { 10958 return formatMoment( 10959 m, 10960 utc 10961 ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' 10962 : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ' 10963 ); 10964 } 10965 if (isFunction(Date.prototype.toISOString)) { 10966 // native implementation is ~50x faster, use it when we can 10967 if (utc) { 10968 return this.toDate().toISOString(); 10969 } else { 10970 return new Date(this.valueOf() + this.utcOffset() * 60 * 1000) 10971 .toISOString() 10972 .replace('Z', formatMoment(m, 'Z')); 10973 } 10974 } 10975 return formatMoment( 10976 m, 10977 utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ' 10978 ); 10979 } 10980 10981 /** 10982 * Return a human readable representation of a moment that can 10983 * also be evaluated to get a new moment which is the same 10984 * 10985 * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 10986 */ 10987 function inspect() { 10988 if (!this.isValid()) { 10989 return 'moment.invalid(/* ' + this._i + ' */)'; 10990 } 10991 var func = 'moment', 10992 zone = '', 10993 prefix, 10994 year, 10995 datetime, 10996 suffix; 10997 if (!this.isLocal()) { 10998 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 10999 zone = 'Z'; 11000 } 11001 prefix = '[' + func + '("]'; 11002 year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY'; 11003 datetime = '-MM-DD[T]HH:mm:ss.SSS'; 11004 suffix = zone + '[")]'; 11005 11006 return this.format(prefix + year + datetime + suffix); 11007 } 11008 11009 function format(inputString) { 11010 if (!inputString) { 11011 inputString = this.isUtc() 11012 ? hooks.defaultFormatUtc 11013 : hooks.defaultFormat; 11014 } 11015 var output = formatMoment(this, inputString); 11016 return this.localeData().postformat(output); 11017 } 11018 11019 function from(time, withoutSuffix) { 11020 if ( 11021 this.isValid() && 11022 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 11023 ) { 11024 return createDuration({ to: this, from: time }) 11025 .locale(this.locale()) 11026 .humanize(!withoutSuffix); 11027 } else { 11028 return this.localeData().invalidDate(); 11029 } 11030 } 11031 11032 function fromNow(withoutSuffix) { 11033 return this.from(createLocal(), withoutSuffix); 11034 } 11035 11036 function to(time, withoutSuffix) { 11037 if ( 11038 this.isValid() && 11039 ((isMoment(time) && time.isValid()) || createLocal(time).isValid()) 11040 ) { 11041 return createDuration({ from: this, to: time }) 11042 .locale(this.locale()) 11043 .humanize(!withoutSuffix); 11044 } else { 11045 return this.localeData().invalidDate(); 11046 } 11047 } 11048 11049 function toNow(withoutSuffix) { 11050 return this.to(createLocal(), withoutSuffix); 11051 } 11052 11053 // If passed a locale key, it will set the locale for this 11054 // instance. Otherwise, it will return the locale configuration 11055 // variables for this instance. 11056 function locale(key) { 11057 var newLocaleData; 11058 11059 if (key === undefined) { 11060 return this._locale._abbr; 11061 } else { 11062 newLocaleData = getLocale(key); 11063 if (newLocaleData != null) { 11064 this._locale = newLocaleData; 11065 } 11066 return this; 11067 } 11068 } 11069 11070 var lang = deprecate( 11071 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 11072 function (key) { 11073 if (key === undefined) { 11074 return this.localeData(); 11075 } else { 11076 return this.locale(key); 11077 } 11078 } 11079 ); 11080 11081 function localeData() { 11082 return this._locale; 11083 } 11084 11085 var MS_PER_SECOND = 1000, 11086 MS_PER_MINUTE = 60 * MS_PER_SECOND, 11087 MS_PER_HOUR = 60 * MS_PER_MINUTE, 11088 MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; 11089 11090 // actual modulo - handles negative numbers (for dates before 1970): 11091 function mod$1(dividend, divisor) { 11092 return ((dividend % divisor) + divisor) % divisor; 11093 } 11094 11095 function localStartOfDate(y, m, d) { 11096 // the date constructor remaps years 0-99 to 1900-1999 11097 if (y < 100 && y >= 0) { 11098 // preserve leap years using a full 400 year cycle, then reset 11099 return new Date(y + 400, m, d) - MS_PER_400_YEARS; 11100 } else { 11101 return new Date(y, m, d).valueOf(); 11102 } 11103 } 11104 11105 function utcStartOfDate(y, m, d) { 11106 // Date.UTC remaps years 0-99 to 1900-1999 11107 if (y < 100 && y >= 0) { 11108 // preserve leap years using a full 400 year cycle, then reset 11109 return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS; 11110 } else { 11111 return Date.UTC(y, m, d); 11112 } 11113 } 11114 11115 function startOf(units) { 11116 var time, startOfDate; 11117 units = normalizeUnits(units); 11118 if (units === undefined || units === 'millisecond' || !this.isValid()) { 11119 return this; 11120 } 11121 11122 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 11123 11124 switch (units) { 11125 case 'year': 11126 time = startOfDate(this.year(), 0, 1); 11127 break; 11128 case 'quarter': 11129 time = startOfDate( 11130 this.year(), 11131 this.month() - (this.month() % 3), 11132 1 11133 ); 11134 break; 11135 case 'month': 11136 time = startOfDate(this.year(), this.month(), 1); 11137 break; 11138 case 'week': 11139 time = startOfDate( 11140 this.year(), 11141 this.month(), 11142 this.date() - this.weekday() 11143 ); 11144 break; 11145 case 'isoWeek': 11146 time = startOfDate( 11147 this.year(), 11148 this.month(), 11149 this.date() - (this.isoWeekday() - 1) 11150 ); 11151 break; 11152 case 'day': 11153 case 'date': 11154 time = startOfDate(this.year(), this.month(), this.date()); 11155 break; 11156 case 'hour': 11157 time = this._d.valueOf(); 11158 time -= mod$1( 11159 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 11160 MS_PER_HOUR 11161 ); 11162 break; 11163 case 'minute': 11164 time = this._d.valueOf(); 11165 time -= mod$1(time, MS_PER_MINUTE); 11166 break; 11167 case 'second': 11168 time = this._d.valueOf(); 11169 time -= mod$1(time, MS_PER_SECOND); 11170 break; 11171 } 11172 11173 this._d.setTime(time); 11174 hooks.updateOffset(this, true); 11175 return this; 11176 } 11177 11178 function endOf(units) { 11179 var time, startOfDate; 11180 units = normalizeUnits(units); 11181 if (units === undefined || units === 'millisecond' || !this.isValid()) { 11182 return this; 11183 } 11184 11185 startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate; 11186 11187 switch (units) { 11188 case 'year': 11189 time = startOfDate(this.year() + 1, 0, 1) - 1; 11190 break; 11191 case 'quarter': 11192 time = 11193 startOfDate( 11194 this.year(), 11195 this.month() - (this.month() % 3) + 3, 11196 1 11197 ) - 1; 11198 break; 11199 case 'month': 11200 time = startOfDate(this.year(), this.month() + 1, 1) - 1; 11201 break; 11202 case 'week': 11203 time = 11204 startOfDate( 11205 this.year(), 11206 this.month(), 11207 this.date() - this.weekday() + 7 11208 ) - 1; 11209 break; 11210 case 'isoWeek': 11211 time = 11212 startOfDate( 11213 this.year(), 11214 this.month(), 11215 this.date() - (this.isoWeekday() - 1) + 7 11216 ) - 1; 11217 break; 11218 case 'day': 11219 case 'date': 11220 time = startOfDate(this.year(), this.month(), this.date() + 1) - 1; 11221 break; 11222 case 'hour': 11223 time = this._d.valueOf(); 11224 time += 11225 MS_PER_HOUR - 11226 mod$1( 11227 time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), 11228 MS_PER_HOUR 11229 ) - 11230 1; 11231 break; 11232 case 'minute': 11233 time = this._d.valueOf(); 11234 time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1; 11235 break; 11236 case 'second': 11237 time = this._d.valueOf(); 11238 time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1; 11239 break; 11240 } 11241 11242 this._d.setTime(time); 11243 hooks.updateOffset(this, true); 11244 return this; 11245 } 11246 11247 function valueOf() { 11248 return this._d.valueOf() - (this._offset || 0) * 60000; 11249 } 11250 11251 function unix() { 11252 return Math.floor(this.valueOf() / 1000); 11253 } 11254 11255 function toDate() { 11256 return new Date(this.valueOf()); 11257 } 11258 11259 function toArray() { 11260 var m = this; 11261 return [ 11262 m.year(), 11263 m.month(), 11264 m.date(), 11265 m.hour(), 11266 m.minute(), 11267 m.second(), 11268 m.millisecond(), 11269 ]; 11270 } 11271 11272 function toObject() { 11273 var m = this; 11274 return { 11275 years: m.year(), 11276 months: m.month(), 11277 date: m.date(), 11278 hours: m.hours(), 11279 minutes: m.minutes(), 11280 seconds: m.seconds(), 11281 milliseconds: m.milliseconds(), 11282 }; 11283 } 11284 11285 function toJSON() { 11286 // new Date(NaN).toJSON() === null 11287 return this.isValid() ? this.toISOString() : null; 11288 } 11289 11290 function isValid$2() { 11291 return isValid(this); 11292 } 11293 11294 function parsingFlags() { 11295 return extend({}, getParsingFlags(this)); 11296 } 11297
vendor: 9,164 bytes, lines 11298-11597
11298 function invalidAt() { 11299 return getParsingFlags(this).overflow; 11300 } 11301 11302 function creationData() { 11303 return { 11304 input: this._i, 11305 format: this._f, 11306 locale: this._locale, 11307 isUTC: this._isUTC, 11308 strict: this._strict, 11309 }; 11310 } 11311 11312 addFormatToken('N', 0, 0, 'eraAbbr'); 11313 addFormatToken('NN', 0, 0, 'eraAbbr'); 11314 addFormatToken('NNN', 0, 0, 'eraAbbr'); 11315 addFormatToken('NNNN', 0, 0, 'eraName'); 11316 addFormatToken('NNNNN', 0, 0, 'eraNarrow'); 11317 11318 addFormatToken('y', ['y', 1], 'yo', 'eraYear'); 11319 addFormatToken('y', ['yy', 2], 0, 'eraYear'); 11320 addFormatToken('y', ['yyy', 3], 0, 'eraYear'); 11321 addFormatToken('y', ['yyyy', 4], 0, 'eraYear'); 11322 11323 addRegexToken('N', matchEraAbbr); 11324 addRegexToken('NN', matchEraAbbr); 11325 addRegexToken('NNN', matchEraAbbr); 11326 addRegexToken('NNNN', matchEraName); 11327 addRegexToken('NNNNN', matchEraNarrow); 11328 11329 addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function ( 11330 input, 11331 array, 11332 config, 11333 token 11334 ) { 11335 var era = config._locale.erasParse(input, token, config._strict); 11336 if (era) { 11337 getParsingFlags(config).era = era; 11338 } else { 11339 getParsingFlags(config).invalidEra = input; 11340 } 11341 }); 11342 11343 addRegexToken('y', matchUnsigned); 11344 addRegexToken('yy', matchUnsigned); 11345 addRegexToken('yyy', matchUnsigned); 11346 addRegexToken('yyyy', matchUnsigned); 11347 addRegexToken('yo', matchEraYearOrdinal); 11348 11349 addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR); 11350 addParseToken(['yo'], function (input, array, config, token) { 11351 var match; 11352 if (config._locale._eraYearOrdinalRegex) { 11353 match = input.match(config._locale._eraYearOrdinalRegex); 11354 } 11355 11356 if (config._locale.eraYearOrdinalParse) { 11357 array[YEAR] = config._locale.eraYearOrdinalParse(input, match); 11358 } else { 11359 array[YEAR] = parseInt(input, 10); 11360 } 11361 }); 11362 11363 function localeEras(m, format) { 11364 var i, 11365 l, 11366 date, 11367 eras = this._eras || getLocale('en')._eras; 11368 for (i = 0, l = eras.length; i < l; ++i) { 11369 switch (typeof eras[i].since) { 11370 case 'string': 11371 // truncate time 11372 date = hooks(eras[i].since).startOf('day'); 11373 eras[i].since = date.valueOf(); 11374 break; 11375 } 11376 11377 switch (typeof eras[i].until) { 11378 case 'undefined': 11379 eras[i].until = +Infinity; 11380 break; 11381 case 'string': 11382 // truncate time 11383 date = hooks(eras[i].until).startOf('day').valueOf(); 11384 eras[i].until = date.valueOf(); 11385 break; 11386 } 11387 } 11388 return eras; 11389 } 11390 11391 function localeErasParse(eraName, format, strict) { 11392 var i, 11393 l, 11394 eras = this.eras(), 11395 name, 11396 abbr, 11397 narrow; 11398 eraName = eraName.toUpperCase(); 11399 11400 for (i = 0, l = eras.length; i < l; ++i) { 11401 name = eras[i].name.toUpperCase(); 11402 abbr = eras[i].abbr.toUpperCase(); 11403 narrow = eras[i].narrow.toUpperCase(); 11404 11405 if (strict) { 11406 switch (format) { 11407 case 'N': 11408 case 'NN': 11409 case 'NNN': 11410 if (abbr === eraName) { 11411 return eras[i]; 11412 } 11413 break; 11414 11415 case 'NNNN': 11416 if (name === eraName) { 11417 return eras[i]; 11418 } 11419 break; 11420 11421 case 'NNNNN': 11422 if (narrow === eraName) { 11423 return eras[i]; 11424 } 11425 break; 11426 } 11427 } else if ([name, abbr, narrow].indexOf(eraName) >= 0) { 11428 return eras[i]; 11429 } 11430 } 11431 } 11432 11433 function localeErasConvertYear(era, year) { 11434 var dir = era.since <= era.until ? +1 : -1; 11435 if (year === undefined) { 11436 return hooks(era.since).year(); 11437 } else { 11438 return hooks(era.since).year() + (year - era.offset) * dir; 11439 } 11440 } 11441 11442 function getEraName() { 11443 var i, 11444 l, 11445 val, 11446 eras = this.localeData().eras(); 11447 for (i = 0, l = eras.length; i < l; ++i) { 11448 // truncate time 11449 val = this.clone().startOf('day').valueOf(); 11450 11451 if (eras[i].since <= val && val <= eras[i].until) { 11452 return eras[i].name; 11453 } 11454 if (eras[i].until <= val && val <= eras[i].since) { 11455 return eras[i].name; 11456 } 11457 } 11458 11459 return ''; 11460 } 11461 11462 function getEraNarrow() { 11463 var i, 11464 l, 11465 val, 11466 eras = this.localeData().eras(); 11467 for (i = 0, l = eras.length; i < l; ++i) { 11468 // truncate time 11469 val = this.clone().startOf('day').valueOf(); 11470 11471 if (eras[i].since <= val && val <= eras[i].until) { 11472 return eras[i].narrow; 11473 } 11474 if (eras[i].until <= val && val <= eras[i].since) { 11475 return eras[i].narrow; 11476 } 11477 } 11478 11479 return ''; 11480 } 11481 11482 function getEraAbbr() { 11483 var i, 11484 l, 11485 val, 11486 eras = this.localeData().eras(); 11487 for (i = 0, l = eras.length; i < l; ++i) { 11488 // truncate time 11489 val = this.clone().startOf('day').valueOf(); 11490 11491 if (eras[i].since <= val && val <= eras[i].until) { 11492 return eras[i].abbr; 11493 } 11494 if (eras[i].until <= val && val <= eras[i].since) { 11495 return eras[i].abbr; 11496 } 11497 } 11498 11499 return ''; 11500 } 11501 11502 function getEraYear() { 11503 var i, 11504 l, 11505 dir, 11506 val, 11507 eras = this.localeData().eras(); 11508 for (i = 0, l = eras.length; i < l; ++i) { 11509 dir = eras[i].since <= eras[i].until ? +1 : -1; 11510 11511 // truncate time 11512 val = this.clone().startOf('day').valueOf(); 11513 11514 if ( 11515 (eras[i].since <= val && val <= eras[i].until) || 11516 (eras[i].until <= val && val <= eras[i].since) 11517 ) { 11518 return ( 11519 (this.year() - hooks(eras[i].since).year()) * dir + 11520 eras[i].offset 11521 ); 11522 } 11523 } 11524 11525 return this.year(); 11526 } 11527 11528 function erasNameRegex(isStrict) { 11529 if (!hasOwnProp(this, '_erasNameRegex')) { 11530 computeErasParse.call(this); 11531 } 11532 return isStrict ? this._erasNameRegex : this._erasRegex; 11533 } 11534 11535 function erasAbbrRegex(isStrict) { 11536 if (!hasOwnProp(this, '_erasAbbrRegex')) { 11537 computeErasParse.call(this); 11538 } 11539 return isStrict ? this._erasAbbrRegex : this._erasRegex; 11540 } 11541 11542 function erasNarrowRegex(isStrict) { 11543 if (!hasOwnProp(this, '_erasNarrowRegex')) { 11544 computeErasParse.call(this); 11545 } 11546 return isStrict ? this._erasNarrowRegex : this._erasRegex; 11547 } 11548 11549 function matchEraAbbr(isStrict, locale) { 11550 return locale.erasAbbrRegex(isStrict); 11551 } 11552 11553 function matchEraName(isStrict, locale) { 11554 return locale.erasNameRegex(isStrict); 11555 } 11556 11557 function matchEraNarrow(isStrict, locale) { 11558 return locale.erasNarrowRegex(isStrict); 11559 } 11560 11561 function matchEraYearOrdinal(isStrict, locale) { 11562 return locale._eraYearOrdinalRegex || matchUnsigned; 11563 } 11564 11565 function computeErasParse() { 11566 var abbrPieces = [], 11567 namePieces = [], 11568 narrowPieces = [], 11569 mixedPieces = [], 11570 i, 11571 l, 11572 eras = this.eras(); 11573 11574 for (i = 0, l = eras.length; i < l; ++i) { 11575 namePieces.push(regexEscape(eras[i].name)); 11576 abbrPieces.push(regexEscape(eras[i].abbr)); 11577 narrowPieces.push(regexEscape(eras[i].narrow)); 11578 11579 mixedPieces.push(regexEscape(eras[i].name)); 11580 mixedPieces.push(regexEscape(eras[i].abbr)); 11581 mixedPieces.push(regexEscape(eras[i].narrow)); 11582 } 11583 11584 this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 11585 this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i'); 11586 this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i'); 11587 this._erasNarrowRegex = new RegExp( 11588 '^(' + narrowPieces.join('|') + ')', 11589 'i' 11590 ); 11591 } 11592 11593 // FORMATTING 11594 11595 addFormatToken(0, ['gg', 2], 0, function () { 11596 return this.weekYear() % 100; 11597 });
vendor: 9,509 bytes, lines 11598-11963
11598 11599 addFormatToken(0, ['GG', 2], 0, function () { 11600 return this.isoWeekYear() % 100; 11601 }); 11602 11603 function addWeekYearFormatToken(token, getter) { 11604 addFormatToken(0, [token, token.length], 0, getter); 11605 } 11606 11607 addWeekYearFormatToken('gggg', 'weekYear'); 11608 addWeekYearFormatToken('ggggg', 'weekYear'); 11609 addWeekYearFormatToken('GGGG', 'isoWeekYear'); 11610 addWeekYearFormatToken('GGGGG', 'isoWeekYear'); 11611 11612 // ALIASES 11613 11614 addUnitAlias('weekYear', 'gg'); 11615 addUnitAlias('isoWeekYear', 'GG'); 11616 11617 // PRIORITY 11618 11619 addUnitPriority('weekYear', 1); 11620 addUnitPriority('isoWeekYear', 1); 11621 11622 // PARSING 11623 11624 addRegexToken('G', matchSigned); 11625 addRegexToken('g', matchSigned); 11626 addRegexToken('GG', match1to2, match2); 11627 addRegexToken('gg', match1to2, match2); 11628 addRegexToken('GGGG', match1to4, match4); 11629 addRegexToken('gggg', match1to4, match4); 11630 addRegexToken('GGGGG', match1to6, match6); 11631 addRegexToken('ggggg', match1to6, match6); 11632 11633 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function ( 11634 input, 11635 week, 11636 config, 11637 token 11638 ) { 11639 week[token.substr(0, 2)] = toInt(input); 11640 }); 11641 11642 addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 11643 week[token] = hooks.parseTwoDigitYear(input); 11644 }); 11645 11646 // MOMENTS 11647 11648 function getSetWeekYear(input) { 11649 return getSetWeekYearHelper.call( 11650 this, 11651 input, 11652 this.week(), 11653 this.weekday(), 11654 this.localeData()._week.dow, 11655 this.localeData()._week.doy 11656 ); 11657 } 11658 11659 function getSetISOWeekYear(input) { 11660 return getSetWeekYearHelper.call( 11661 this, 11662 input, 11663 this.isoWeek(), 11664 this.isoWeekday(), 11665 1, 11666 4 11667 ); 11668 } 11669 11670 function getISOWeeksInYear() { 11671 return weeksInYear(this.year(), 1, 4); 11672 } 11673 11674 function getISOWeeksInISOWeekYear() { 11675 return weeksInYear(this.isoWeekYear(), 1, 4); 11676 } 11677 11678 function getWeeksInYear() { 11679 var weekInfo = this.localeData()._week; 11680 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 11681 } 11682 11683 function getWeeksInWeekYear() { 11684 var weekInfo = this.localeData()._week; 11685 return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy); 11686 } 11687 11688 function getSetWeekYearHelper(input, week, weekday, dow, doy) { 11689 var weeksTarget; 11690 if (input == null) { 11691 return weekOfYear(this, dow, doy).year; 11692 } else { 11693 weeksTarget = weeksInYear(input, dow, doy); 11694 if (week > weeksTarget) { 11695 week = weeksTarget; 11696 } 11697 return setWeekAll.call(this, input, week, weekday, dow, doy); 11698 } 11699 } 11700 11701 function setWeekAll(weekYear, week, weekday, dow, doy) { 11702 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 11703 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 11704 11705 this.year(date.getUTCFullYear()); 11706 this.month(date.getUTCMonth()); 11707 this.date(date.getUTCDate()); 11708 return this; 11709 } 11710 11711 // FORMATTING 11712 11713 addFormatToken('Q', 0, 'Qo', 'quarter'); 11714 11715 // ALIASES 11716 11717 addUnitAlias('quarter', 'Q'); 11718 11719 // PRIORITY 11720 11721 addUnitPriority('quarter', 7); 11722 11723 // PARSING 11724 11725 addRegexToken('Q', match1); 11726 addParseToken('Q', function (input, array) { 11727 array[MONTH] = (toInt(input) - 1) * 3; 11728 }); 11729 11730 // MOMENTS 11731 11732 function getSetQuarter(input) { 11733 return input == null 11734 ? Math.ceil((this.month() + 1) / 3) 11735 : this.month((input - 1) * 3 + (this.month() % 3)); 11736 } 11737 11738 // FORMATTING 11739 11740 addFormatToken('D', ['DD', 2], 'Do', 'date'); 11741 11742 // ALIASES 11743 11744 addUnitAlias('date', 'D'); 11745 11746 // PRIORITY 11747 addUnitPriority('date', 9); 11748 11749 // PARSING 11750 11751 addRegexToken('D', match1to2); 11752 addRegexToken('DD', match1to2, match2); 11753 addRegexToken('Do', function (isStrict, locale) { 11754 // TODO: Remove "ordinalParse" fallback in next major release. 11755 return isStrict 11756 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse 11757 : locale._dayOfMonthOrdinalParseLenient; 11758 }); 11759 11760 addParseToken(['D', 'DD'], DATE); 11761 addParseToken('Do', function (input, array) { 11762 array[DATE] = toInt(input.match(match1to2)[0]); 11763 }); 11764 11765 // MOMENTS 11766 11767 var getSetDayOfMonth = makeGetSet('Date', true); 11768 11769 // FORMATTING 11770 11771 addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 11772 11773 // ALIASES 11774 11775 addUnitAlias('dayOfYear', 'DDD'); 11776 11777 // PRIORITY 11778 addUnitPriority('dayOfYear', 4); 11779 11780 // PARSING 11781 11782 addRegexToken('DDD', match1to3); 11783 addRegexToken('DDDD', match3); 11784 addParseToken(['DDD', 'DDDD'], function (input, array, config) { 11785 config._dayOfYear = toInt(input); 11786 }); 11787 11788 // HELPERS 11789 11790 // MOMENTS 11791 11792 function getSetDayOfYear(input) { 11793 var dayOfYear = 11794 Math.round( 11795 (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5 11796 ) + 1; 11797 return input == null ? dayOfYear : this.add(input - dayOfYear, 'd'); 11798 } 11799 11800 // FORMATTING 11801 11802 addFormatToken('m', ['mm', 2], 0, 'minute'); 11803 11804 // ALIASES 11805 11806 addUnitAlias('minute', 'm'); 11807 11808 // PRIORITY 11809 11810 addUnitPriority('minute', 14); 11811 11812 // PARSING 11813 11814 addRegexToken('m', match1to2); 11815 addRegexToken('mm', match1to2, match2); 11816 addParseToken(['m', 'mm'], MINUTE); 11817 11818 // MOMENTS 11819 11820 var getSetMinute = makeGetSet('Minutes', false); 11821 11822 // FORMATTING 11823 11824 addFormatToken('s', ['ss', 2], 0, 'second'); 11825 11826 // ALIASES 11827 11828 addUnitAlias('second', 's'); 11829 11830 // PRIORITY 11831 11832 addUnitPriority('second', 15); 11833 11834 // PARSING 11835 11836 addRegexToken('s', match1to2); 11837 addRegexToken('ss', match1to2, match2); 11838 addParseToken(['s', 'ss'], SECOND); 11839 11840 // MOMENTS 11841 11842 var getSetSecond = makeGetSet('Seconds', false); 11843 11844 // FORMATTING 11845 11846 addFormatToken('S', 0, 0, function () { 11847 return ~~(this.millisecond() / 100); 11848 }); 11849 11850 addFormatToken(0, ['SS', 2], 0, function () { 11851 return ~~(this.millisecond() / 10); 11852 }); 11853 11854 addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 11855 addFormatToken(0, ['SSSS', 4], 0, function () { 11856 return this.millisecond() * 10; 11857 }); 11858 addFormatToken(0, ['SSSSS', 5], 0, function () { 11859 return this.millisecond() * 100; 11860 }); 11861 addFormatToken(0, ['SSSSSS', 6], 0, function () { 11862 return this.millisecond() * 1000; 11863 }); 11864 addFormatToken(0, ['SSSSSSS', 7], 0, function () { 11865 return this.millisecond() * 10000; 11866 }); 11867 addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 11868 return this.millisecond() * 100000; 11869 }); 11870 addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 11871 return this.millisecond() * 1000000; 11872 }); 11873 11874 // ALIASES 11875 11876 addUnitAlias('millisecond', 'ms'); 11877 11878 // PRIORITY 11879 11880 addUnitPriority('millisecond', 16); 11881 11882 // PARSING 11883 11884 addRegexToken('S', match1to3, match1); 11885 addRegexToken('SS', match1to3, match2); 11886 addRegexToken('SSS', match1to3, match3); 11887 11888 var token, getSetMillisecond; 11889 for (token = 'SSSS'; token.length <= 9; token += 'S') { 11890 addRegexToken(token, matchUnsigned); 11891 } 11892 11893 function parseMs(input, array) { 11894 array[MILLISECOND] = toInt(('0.' + input) * 1000); 11895 } 11896 11897 for (token = 'S'; token.length <= 9; token += 'S') { 11898 addParseToken(token, parseMs); 11899 } 11900 11901 getSetMillisecond = makeGetSet('Milliseconds', false); 11902 11903 // FORMATTING 11904 11905 addFormatToken('z', 0, 0, 'zoneAbbr'); 11906 addFormatToken('zz', 0, 0, 'zoneName'); 11907 11908 // MOMENTS 11909 11910 function getZoneAbbr() { 11911 return this._isUTC ? 'UTC' : ''; 11912 } 11913 11914 function getZoneName() { 11915 return this._isUTC ? 'Coordinated Universal Time' : ''; 11916 } 11917 11918 var proto = Moment.prototype; 11919 11920 proto.add = add; 11921 proto.calendar = calendar$1; 11922 proto.clone = clone; 11923 proto.diff = diff; 11924 proto.endOf = endOf; 11925 proto.format = format; 11926 proto.from = from; 11927 proto.fromNow = fromNow; 11928 proto.to = to; 11929 proto.toNow = toNow; 11930 proto.get = stringGet; 11931 proto.invalidAt = invalidAt; 11932 proto.isAfter = isAfter; 11933 proto.isBefore = isBefore; 11934 proto.isBetween = isBetween; 11935 proto.isSame = isSame; 11936 proto.isSameOrAfter = isSameOrAfter; 11937 proto.isSameOrBefore = isSameOrBefore; 11938 proto.isValid = isValid$2; 11939 proto.lang = lang; 11940 proto.locale = locale; 11941 proto.localeData = localeData; 11942 proto.max = prototypeMax; 11943 proto.min = prototypeMin; 11944 proto.parsingFlags = parsingFlags; 11945 proto.set = stringSet; 11946 proto.startOf = startOf; 11947 proto.subtract = subtract; 11948 proto.toArray = toArray; 11949 proto.toObject = toObject; 11950 proto.toDate = toDate; 11951 proto.toISOString = toISOString; 11952 proto.inspect = inspect; 11953 if (typeof Symbol !== 'undefined' && Symbol.for != null) { 11954 proto[Symbol.for('nodejs.util.inspect.custom')] = function () { 11955 return 'Moment<' + this.format() + '>'; 11956 }; 11957 } 11958 proto.toJSON = toJSON; 11959 proto.toString = toString; 11960 proto.unix = unix; 11961 proto.valueOf = valueOf; 11962 proto.creationData = creationData; 11963 proto.eraName = getEraName;
11964 proto.eraNarrow = getEraNarrow; 11965 proto.eraAbbr = getEraAbbr; 11966 proto.eraYear = getEraYear; 11967 proto.year = getSetYear; 11968 proto.isLeapYear = getIsLeapYear; 11969 proto.weekYear = getSetWeekYear; 11970 proto.isoWeekYear = getSetISOWeekYear; 11971 proto.quarter = proto.quarters = getSetQuarter; 11972 proto.month = getSetMonth; 11973 proto.daysInMonth = getDaysInMonth; 11974 proto.week = proto.weeks = getSetWeek; 11975 proto.isoWeek = proto.isoWeeks = getSetISOWeek; 11976 proto.weeksInYear = getWeeksInYear; 11977 proto.weeksInWeekYear = getWeeksInWeekYear; 11978 proto.isoWeeksInYear = getISOWeeksInYear; 11979 proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear; 11980 proto.date = getSetDayOfMonth; 11981 proto.day = proto.days = getSetDayOfWeek; 11982 proto.weekday = getSetLocaleDayOfWeek; 11983 proto.isoWeekday = getSetISODayOfWeek; 11984 proto.dayOfYear = getSetDayOfYear; 11985 proto.hour = proto.hours = getSetHour; 11986 proto.minute = proto.minutes = getSetMinute; 11987 proto.second = proto.seconds = getSetSecond; 11988 proto.millisecond = proto.milliseconds = getSetMillisecond; 11989 proto.utcOffset = getSetOffset; 11990 proto.utc = setOffsetToUTC; 11991 proto.local = setOffsetToLocal; 11992 proto.parseZone = setOffsetToParsedOffset; 11993 proto.hasAlignedHourOffset = hasAlignedHourOffset; 11994 proto.isDST = isDaylightSavingTime; 11995 proto.isLocal = isLocal; 11996 proto.isUtcOffset = isUtcOffset; 11997 proto.isUtc = isUtc; 11998 proto.isUTC = isUtc; 11999 proto.zoneAbbr = getZoneAbbr; 12000 proto.zoneName = getZoneName; 12001 proto.dates = deprecate( 12002 'dates accessor is deprecated. Use date instead.', 12003 getSetDayOfMonth 12004 ); 12005 proto.months = deprecate( 12006 'months accessor is deprecated. Use month instead', 12007 getSetMonth 12008 ); 12009 proto.years = deprecate( 12010 'years accessor is deprecated. Use year instead', 12011 getSetYear 12012 ); 12013 proto.zone = deprecate( 12014 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', 12015 getSetZone 12016 ); 12017 proto.isDSTShifted = deprecate( 12018 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', 12019 isDaylightSavingTimeShifted 12020 ); 12021 12022 function createUnix(input) { 12023 return createLocal(input * 1000); 12024 } 12025 12026 function createInZone() { 12027 return createLocal.apply(null, arguments).parseZone(); 12028 } 12029 12030 function preParsePostFormat(string) { 12031 return string; 12032 } 12033 12034 var proto$1 = Locale.prototype; 12035 12036 proto$1.calendar = calendar; 12037 proto$1.longDateFormat = longDateFormat; 12038 proto$1.invalidDate = invalidDate; 12039 proto$1.ordinal = ordinal; 12040 proto$1.preparse = preParsePostFormat; 12041 proto$1.postformat = preParsePostFormat; 12042 proto$1.relativeTime = relativeTime; 12043 proto$1.pastFuture = pastFuture; 12044 proto$1.set = set; 12045 proto$1.eras = localeEras; 12046 proto$1.erasParse = localeErasParse; 12047 proto$1.erasConvertYear = localeErasConvertYear; 12048 proto$1.erasAbbrRegex = erasAbbrRegex; 12049 proto$1.erasNameRegex = erasNameRegex; 12050 proto$1.erasNarrowRegex = erasNarrowRegex; 12051 12052 proto$1.months = localeMonths; 12053 proto$1.monthsShort = localeMonthsShort; 12054 proto$1.monthsParse = localeMonthsParse; 12055 proto$1.monthsRegex = monthsRegex; 12056 proto$1.monthsShortRegex = monthsShortRegex; 12057 proto$1.week = localeWeek; 12058 proto$1.firstDayOfYear = localeFirstDayOfYear; 12059 proto$1.firstDayOfWeek = localeFirstDayOfWeek; 12060 12061 proto$1.weekdays = localeWeekdays; 12062 proto$1.weekdaysMin = localeWeekdaysMin; 12063 proto$1.weekdaysShort = localeWeekdaysShort; 12064 proto$1.weekdaysParse = localeWeekdaysParse; 12065 12066 proto$1.weekdaysRegex = weekdaysRegex; 12067 proto$1.weekdaysShortRegex = weekdaysShortRegex; 12068 proto$1.weekdaysMinRegex = weekdaysMinRegex; 12069 12070 proto$1.isPM = localeIsPM; 12071 proto$1.meridiem = localeMeridiem; 12072 12073 function get$1(format, index, field, setter) { 12074 var locale = getLocale(), 12075 utc = createUTC().set(setter, index);
vendor: 17,842 bytes, lines 12076-12652
12076 return locale[field](utc, format); 12077 } 12078 12079 function listMonthsImpl(format, index, field) { 12080 if (isNumber(format)) { 12081 index = format; 12082 format = undefined; 12083 } 12084 12085 format = format || ''; 12086 12087 if (index != null) { 12088 return get$1(format, index, field, 'month'); 12089 } 12090 12091 var i, 12092 out = []; 12093 for (i = 0; i < 12; i++) { 12094 out[i] = get$1(format, i, field, 'month'); 12095 } 12096 return out; 12097 } 12098 12099 // () 12100 // (5) 12101 // (fmt, 5) 12102 // (fmt) 12103 // (true) 12104 // (true, 5) 12105 // (true, fmt, 5) 12106 // (true, fmt) 12107 function listWeekdaysImpl(localeSorted, format, index, field) { 12108 if (typeof localeSorted === 'boolean') { 12109 if (isNumber(format)) { 12110 index = format; 12111 format = undefined; 12112 } 12113 12114 format = format || ''; 12115 } else { 12116 format = localeSorted; 12117 index = format; 12118 localeSorted = false; 12119 12120 if (isNumber(format)) { 12121 index = format; 12122 format = undefined; 12123 } 12124 12125 format = format || ''; 12126 } 12127 12128 var locale = getLocale(), 12129 shift = localeSorted ? locale._week.dow : 0, 12130 i, 12131 out = []; 12132 12133 if (index != null) { 12134 return get$1(format, (index + shift) % 7, field, 'day'); 12135 } 12136 12137 for (i = 0; i < 7; i++) { 12138 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 12139 } 12140 return out; 12141 } 12142 12143 function listMonths(format, index) { 12144 return listMonthsImpl(format, index, 'months'); 12145 } 12146 12147 function listMonthsShort(format, index) { 12148 return listMonthsImpl(format, index, 'monthsShort'); 12149 } 12150 12151 function listWeekdays(localeSorted, format, index) { 12152 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 12153 } 12154 12155 function listWeekdaysShort(localeSorted, format, index) { 12156 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 12157 } 12158 12159 function listWeekdaysMin(localeSorted, format, index) { 12160 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 12161 } 12162 12163 getSetGlobalLocale('en', { 12164 eras: [ 12165 { 12166 since: '0001-01-01', 12167 until: +Infinity, 12168 offset: 1, 12169 name: 'Anno Domini', 12170 narrow: 'AD', 12171 abbr: 'AD', 12172 }, 12173 { 12174 since: '0000-12-31', 12175 until: -Infinity, 12176 offset: 1, 12177 name: 'Before Christ', 12178 narrow: 'BC', 12179 abbr: 'BC', 12180 }, 12181 ], 12182 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 12183 ordinal: function (number) { 12184 var b = number % 10, 12185 output = 12186 toInt((number % 100) / 10) === 1 12187 ? 'th' 12188 : b === 1 12189 ? 'st' 12190 : b === 2 12191 ? 'nd' 12192 : b === 3 12193 ? 'rd' 12194 : 'th'; 12195 return number + output; 12196 }, 12197 }); 12198 12199 // Side effect imports 12200 12201 hooks.lang = deprecate( 12202 'moment.lang is deprecated. Use moment.locale instead.', 12203 getSetGlobalLocale 12204 ); 12205 hooks.langData = deprecate( 12206 'moment.langData is deprecated. Use moment.localeData instead.', 12207 getLocale 12208 ); 12209 12210 var mathAbs = Math.abs; 12211 12212 function abs() { 12213 var data = this._data; 12214 12215 this._milliseconds = mathAbs(this._milliseconds); 12216 this._days = mathAbs(this._days); 12217 this._months = mathAbs(this._months); 12218 12219 data.milliseconds = mathAbs(data.milliseconds); 12220 data.seconds = mathAbs(data.seconds); 12221 data.minutes = mathAbs(data.minutes); 12222 data.hours = mathAbs(data.hours); 12223 data.months = mathAbs(data.months); 12224 data.years = mathAbs(data.years); 12225 12226 return this; 12227 } 12228 12229 function addSubtract$1(duration, input, value, direction) { 12230 var other = createDuration(input, value); 12231 12232 duration._milliseconds += direction * other._milliseconds; 12233 duration._days += direction * other._days; 12234 duration._months += direction * other._months; 12235 12236 return duration._bubble(); 12237 } 12238 12239 // supports only 2.0-style add(1, 's') or add(duration) 12240 function add$1(input, value) { 12241 return addSubtract$1(this, input, value, 1); 12242 } 12243 12244 // supports only 2.0-style subtract(1, 's') or subtract(duration) 12245 function subtract$1(input, value) { 12246 return addSubtract$1(this, input, value, -1); 12247 } 12248 12249 function absCeil(number) { 12250 if (number < 0) { 12251 return Math.floor(number); 12252 } else { 12253 return Math.ceil(number); 12254 } 12255 } 12256 12257 function bubble() { 12258 var milliseconds = this._milliseconds, 12259 days = this._days, 12260 months = this._months, 12261 data = this._data, 12262 seconds, 12263 minutes, 12264 hours, 12265 years, 12266 monthsFromDays; 12267 12268 // if we have a mix of positive and negative values, bubble down first 12269 // check: https://github.com/moment/moment/issues/2166 12270 if ( 12271 !( 12272 (milliseconds >= 0 && days >= 0 && months >= 0) || 12273 (milliseconds <= 0 && days <= 0 && months <= 0) 12274 ) 12275 ) { 12276 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 12277 days = 0; 12278 months = 0; 12279 } 12280 12281 // The following code bubbles up values, see the tests for 12282 // examples of what that means. 12283 data.milliseconds = milliseconds % 1000; 12284 12285 seconds = absFloor(milliseconds / 1000); 12286 data.seconds = seconds % 60; 12287 12288 minutes = absFloor(seconds / 60); 12289 data.minutes = minutes % 60; 12290 12291 hours = absFloor(minutes / 60); 12292 data.hours = hours % 24; 12293 12294 days += absFloor(hours / 24); 12295 12296 // convert days to months 12297 monthsFromDays = absFloor(daysToMonths(days)); 12298 months += monthsFromDays; 12299 days -= absCeil(monthsToDays(monthsFromDays)); 12300 12301 // 12 months -> 1 year 12302 years = absFloor(months / 12); 12303 months %= 12; 12304 12305 data.days = days; 12306 data.months = months; 12307 data.years = years; 12308 12309 return this; 12310 } 12311 12312 function daysToMonths(days) { 12313 // 400 years have 146097 days (taking into account leap year rules) 12314 // 400 years have 12 months === 4800 12315 return (days * 4800) / 146097; 12316 } 12317 12318 function monthsToDays(months) { 12319 // the reverse of daysToMonths 12320 return (months * 146097) / 4800; 12321 } 12322 12323 function as(units) { 12324 if (!this.isValid()) { 12325 return NaN; 12326 } 12327 var days, 12328 months, 12329 milliseconds = this._milliseconds; 12330 12331 units = normalizeUnits(units); 12332 12333 if (units === 'month' || units === 'quarter' || units === 'year') { 12334 days = this._days + milliseconds / 864e5; 12335 months = this._months + daysToMonths(days); 12336 switch (units) { 12337 case 'month': 12338 return months; 12339 case 'quarter': 12340 return months / 3; 12341 case 'year': 12342 return months / 12; 12343 } 12344 } else { 12345 // handle milliseconds separately because of floating point math errors (issue #1867) 12346 days = this._days + Math.round(monthsToDays(this._months)); 12347 switch (units) { 12348 case 'week': 12349 return days / 7 + milliseconds / 6048e5; 12350 case 'day': 12351 return days + milliseconds / 864e5; 12352 case 'hour': 12353 return days * 24 + milliseconds / 36e5; 12354 case 'minute': 12355 return days * 1440 + milliseconds / 6e4; 12356 case 'second': 12357 return days * 86400 + milliseconds / 1000; 12358 // Math.floor prevents floating point math errors here 12359 case 'millisecond': 12360 return Math.floor(days * 864e5) + milliseconds; 12361 default: 12362 throw new Error('Unknown unit ' + units); 12363 } 12364 } 12365 } 12366 12367 // TODO: Use this.as('ms')? 12368 function valueOf$1() { 12369 if (!this.isValid()) { 12370 return NaN; 12371 } 12372 return ( 12373 this._milliseconds + 12374 this._days * 864e5 + 12375 (this._months % 12) * 2592e6 + 12376 toInt(this._months / 12) * 31536e6 12377 ); 12378 } 12379 12380 function makeAs(alias) { 12381 return function () { 12382 return this.as(alias); 12383 }; 12384 } 12385 12386 var asMilliseconds = makeAs('ms'), 12387 asSeconds = makeAs('s'), 12388 asMinutes = makeAs('m'), 12389 asHours = makeAs('h'), 12390 asDays = makeAs('d'), 12391 asWeeks = makeAs('w'), 12392 asMonths = makeAs('M'), 12393 asQuarters = makeAs('Q'), 12394 asYears = makeAs('y'); 12395 12396 function clone$1() { 12397 return createDuration(this); 12398 } 12399 12400 function get$2(units) { 12401 units = normalizeUnits(units); 12402 return this.isValid() ? this[units + 's']() : NaN; 12403 } 12404 12405 function makeGetter(name) { 12406 return function () { 12407 return this.isValid() ? this._data[name] : NaN; 12408 }; 12409 } 12410 12411 var milliseconds = makeGetter('milliseconds'), 12412 seconds = makeGetter('seconds'), 12413 minutes = makeGetter('minutes'), 12414 hours = makeGetter('hours'), 12415 days = makeGetter('days'), 12416 months = makeGetter('months'), 12417 years = makeGetter('years'); 12418 12419 function weeks() { 12420 return absFloor(this.days() / 7); 12421 } 12422 12423 var round = Math.round, 12424 thresholds = { 12425 ss: 44, // a few seconds to seconds 12426 s: 45, // seconds to minute 12427 m: 45, // minutes to hour 12428 h: 22, // hours to day 12429 d: 26, // days to month/week 12430 w: null, // weeks to month 12431 M: 11, // months to year 12432 }; 12433 12434 // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 12435 function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 12436 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 12437 } 12438 12439 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) { 12440 var duration = createDuration(posNegDuration).abs(), 12441 seconds = round(duration.as('s')), 12442 minutes = round(duration.as('m')), 12443 hours = round(duration.as('h')), 12444 days = round(duration.as('d')), 12445 months = round(duration.as('M')), 12446 weeks = round(duration.as('w')), 12447 years = round(duration.as('y')), 12448 a = 12449 (seconds <= thresholds.ss && ['s', seconds]) || 12450 (seconds < thresholds.s && ['ss', seconds]) || 12451 (minutes <= 1 && ['m']) || 12452 (minutes < thresholds.m && ['mm', minutes]) || 12453 (hours <= 1 && ['h']) || 12454 (hours < thresholds.h && ['hh', hours]) || 12455 (days <= 1 && ['d']) || 12456 (days < thresholds.d && ['dd', days]); 12457 12458 if (thresholds.w != null) { 12459 a = 12460 a || 12461 (weeks <= 1 && ['w']) || 12462 (weeks < thresholds.w && ['ww', weeks]); 12463 } 12464 a = a || 12465 (months <= 1 && ['M']) || 12466 (months < thresholds.M && ['MM', months]) || 12467 (years <= 1 && ['y']) || ['yy', years]; 12468 12469 a[2] = withoutSuffix; 12470 a[3] = +posNegDuration > 0; 12471 a[4] = locale; 12472 return substituteTimeAgo.apply(null, a); 12473 } 12474 12475 // This function allows you to set the rounding function for relative time strings 12476 function getSetRelativeTimeRounding(roundingFunction) { 12477 if (roundingFunction === undefined) { 12478 return round; 12479 } 12480 if (typeof roundingFunction === 'function') { 12481 round = roundingFunction; 12482 return true; 12483 } 12484 return false; 12485 } 12486 12487 // This function allows you to set a threshold for relative time strings 12488 function getSetRelativeTimeThreshold(threshold, limit) { 12489 if (thresholds[threshold] === undefined) { 12490 return false; 12491 } 12492 if (limit === undefined) { 12493 return thresholds[threshold]; 12494 } 12495 thresholds[threshold] = limit; 12496 if (threshold === 's') { 12497 thresholds.ss = limit - 1; 12498 } 12499 return true; 12500 } 12501 12502 function humanize(argWithSuffix, argThresholds) { 12503 if (!this.isValid()) { 12504 return this.localeData().invalidDate(); 12505 } 12506 12507 var withSuffix = false, 12508 th = thresholds, 12509 locale, 12510 output; 12511 12512 if (typeof argWithSuffix === 'object') { 12513 argThresholds = argWithSuffix; 12514 argWithSuffix = false; 12515 } 12516 if (typeof argWithSuffix === 'boolean') { 12517 withSuffix = argWithSuffix; 12518 } 12519 if (typeof argThresholds === 'object') { 12520 th = Object.assign({}, thresholds, argThresholds); 12521 if (argThresholds.s != null && argThresholds.ss == null) { 12522 th.ss = argThresholds.s - 1; 12523 } 12524 } 12525 12526 locale = this.localeData(); 12527 output = relativeTime$1(this, !withSuffix, th, locale); 12528 12529 if (withSuffix) { 12530 output = locale.pastFuture(+this, output); 12531 } 12532 12533 return locale.postformat(output); 12534 } 12535 12536 var abs$1 = Math.abs; 12537 12538 function sign(x) { 12539 return (x > 0) - (x < 0) || +x; 12540 } 12541 12542 function toISOString$1() { 12543 // for ISO strings we do not use the normal bubbling rules: 12544 // * milliseconds bubble up until they become hours 12545 // * days do not bubble at all 12546 // * months bubble up until they become years 12547 // This is because there is no context-free conversion between hours and days 12548 // (think of clock changes) 12549 // and also not between days and months (28-31 days per month) 12550 if (!this.isValid()) { 12551 return this.localeData().invalidDate(); 12552 } 12553 12554 var seconds = abs$1(this._milliseconds) / 1000, 12555 days = abs$1(this._days), 12556 months = abs$1(this._months), 12557 minutes, 12558 hours, 12559 years, 12560 s, 12561 total = this.asSeconds(), 12562 totalSign, 12563 ymSign, 12564 daysSign, 12565 hmsSign; 12566 12567 if (!total) { 12568 // this is the same as C#'s (Noda) and python (isodate)... 12569 // but not other JS (goog.date) 12570 return 'P0D'; 12571 } 12572 12573 // 3600 seconds -> 60 minutes -> 1 hour 12574 minutes = absFloor(seconds / 60); 12575 hours = absFloor(minutes / 60); 12576 seconds %= 60; 12577 minutes %= 60; 12578 12579 // 12 months -> 1 year 12580 years = absFloor(months / 12); 12581 months %= 12; 12582 12583 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 12584 s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 12585 12586 totalSign = total < 0 ? '-' : ''; 12587 ymSign = sign(this._months) !== sign(total) ? '-' : ''; 12588 daysSign = sign(this._days) !== sign(total) ? '-' : ''; 12589 hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 12590 12591 return ( 12592 totalSign + 12593 'P' + 12594 (years ? ymSign + years + 'Y' : '') + 12595 (months ? ymSign + months + 'M' : '') + 12596 (days ? daysSign + days + 'D' : '') + 12597 (hours || minutes || seconds ? 'T' : '') + 12598 (hours ? hmsSign + hours + 'H' : '') + 12599 (minutes ? hmsSign + minutes + 'M' : '') + 12600 (seconds ? hmsSign + s + 'S' : '') 12601 ); 12602 } 12603 12604 var proto$2 = Duration.prototype; 12605 12606 proto$2.isValid = isValid$1; 12607 proto$2.abs = abs; 12608 proto$2.add = add$1; 12609 proto$2.subtract = subtract$1; 12610 proto$2.as = as; 12611 proto$2.asMilliseconds = asMilliseconds; 12612 proto$2.asSeconds = asSeconds; 12613 proto$2.asMinutes = asMinutes; 12614 proto$2.asHours = asHours; 12615 proto$2.asDays = asDays; 12616 proto$2.asWeeks = asWeeks; 12617 proto$2.asMonths = asMonths; 12618 proto$2.asQuarters = asQuarters; 12619 proto$2.asYears = asYears; 12620 proto$2.valueOf = valueOf$1; 12621 proto$2._bubble = bubble; 12622 proto$2.clone = clone$1; 12623 proto$2.get = get$2; 12624 proto$2.milliseconds = milliseconds; 12625 proto$2.seconds = seconds; 12626 proto$2.minutes = minutes; 12627 proto$2.hours = hours; 12628 proto$2.days = days; 12629 proto$2.weeks = weeks; 12630 proto$2.months = months; 12631 proto$2.years = years; 12632 proto$2.humanize = humanize; 12633 proto$2.toISOString = toISOString$1; 12634 proto$2.toString = toISOString$1; 12635 proto$2.toJSON = toISOString$1; 12636 proto$2.locale = locale; 12637 proto$2.localeData = localeData; 12638 12639 proto$2.toIsoString = deprecate( 12640 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', 12641 toISOString$1 12642 ); 12643 proto$2.lang = lang; 12644 12645 // FORMATTING 12646 12647 addFormatToken('X', 0, 0, 'unix'); 12648 addFormatToken('x', 0, 0, 'valueOf'); 12649 12650 // PARSING 12651 12652 addRegexToken('x', matchSigned);
vendor: 12,267 bytes, lines 12653-13120
12653 addRegexToken('X', matchTimestamp); 12654 addParseToken('X', function (input, array, config) { 12655 config._d = new Date(parseFloat(input) * 1000); 12656 }); 12657 addParseToken('x', function (input, array, config) { 12658 config._d = new Date(toInt(input)); 12659 }); 12660 12661 //! moment.js 12662 12663 hooks.version = '2.29.1'; 12664 12665 setHookCallback(createLocal); 12666 12667 hooks.fn = proto; 12668 hooks.min = min; 12669 hooks.max = max; 12670 hooks.now = now; 12671 hooks.utc = createUTC; 12672 hooks.unix = createUnix; 12673 hooks.months = listMonths; 12674 hooks.isDate = isDate; 12675 hooks.locale = getSetGlobalLocale; 12676 hooks.invalid = createInvalid; 12677 hooks.duration = createDuration; 12678 hooks.isMoment = isMoment; 12679 hooks.weekdays = listWeekdays; 12680 hooks.parseZone = createInZone; 12681 hooks.localeData = getLocale; 12682 hooks.isDuration = isDuration; 12683 hooks.monthsShort = listMonthsShort; 12684 hooks.weekdaysMin = listWeekdaysMin; 12685 hooks.defineLocale = defineLocale; 12686 hooks.updateLocale = updateLocale; 12687 hooks.locales = listLocales; 12688 hooks.weekdaysShort = listWeekdaysShort; 12689 hooks.normalizeUnits = normalizeUnits; 12690 hooks.relativeTimeRounding = getSetRelativeTimeRounding; 12691 hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 12692 hooks.calendarFormat = getCalendarFormat; 12693 hooks.prototype = proto; 12694 12695 // currently HTML5 input type only supports 24-hour formats 12696 hooks.HTML5_FMT = { 12697 DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" /> 12698 DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" /> 12699 DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" /> 12700 DATE: 'YYYY-MM-DD', // <input type="date" /> 12701 TIME: 'HH:mm', // <input type="time" /> 12702 TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" /> 12703 TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" /> 12704 WEEK: 'GGGG-[W]WW', // <input type="week" /> 12705 MONTH: 'YYYY-MM', // <input type="month" /> 12706 }; 12707 12708 return hooks; 12709 12710}))); 12711; 12712//! moment-timezone.js 12713//! version : 0.5.32 12714//! Copyright (c) JS Foundation and other contributors 12715//! license : MIT 12716//! github.com/moment/moment-timezone 12717 12718(function (root, factory) { 12719 "use strict"; 12720 12721 /*global define*/ 12722 if (typeof module === 'object' && module.exports) { 12723 module.exports = factory(require('moment')); // Node 12724 } else if (typeof define === 'function' && define.amd) { 12725 define(['moment'], factory); // AMD 12726 } else { 12727 factory(root.moment); // Browser 12728 } 12729}(this, function (moment) { 12730 "use strict"; 12731 12732 // Resolves es6 module loading issue 12733 if (moment.version === undefined && moment.default) { 12734 moment = moment.default; 12735 } 12736 12737 // Do not load moment-timezone a second time. 12738 // if (moment.tz !== undefined) { 12739 // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion); 12740 // return moment; 12741 // } 12742 12743 var VERSION = "0.5.32", 12744 zones = {}, 12745 links = {}, 12746 countries = {}, 12747 names = {}, 12748 guesses = {}, 12749 cachedGuess; 12750 12751 if (!moment || typeof moment.version !== 'string') { 12752 logError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/'); 12753 } 12754 12755 var momentVersion = moment.version.split('.'), 12756 major = +momentVersion[0], 12757 minor = +momentVersion[1]; 12758 12759 // Moment.js version check 12760 if (major < 2 || (major === 2 && minor < 6)) { 12761 logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com'); 12762 } 12763 12764 /************************************ 12765 Unpacking 12766 ************************************/ 12767 12768 function charCodeToInt(charCode) { 12769 if (charCode > 96) { 12770 return charCode - 87; 12771 } else if (charCode > 64) { 12772 return charCode - 29; 12773 } 12774 return charCode - 48; 12775 } 12776 12777 function unpackBase60(string) { 12778 var i = 0, 12779 parts = string.split('.'), 12780 whole = parts[0], 12781 fractional = parts[1] || '', 12782 multiplier = 1, 12783 num, 12784 out = 0, 12785 sign = 1; 12786 12787 // handle negative numbers 12788 if (string.charCodeAt(0) === 45) { 12789 i = 1; 12790 sign = -1; 12791 } 12792 12793 // handle digits before the decimal 12794 for (i; i < whole.length; i++) { 12795 num = charCodeToInt(whole.charCodeAt(i)); 12796 out = 60 * out + num; 12797 } 12798 12799 // handle digits after the decimal 12800 for (i = 0; i < fractional.length; i++) { 12801 multiplier = multiplier / 60; 12802 num = charCodeToInt(fractional.charCodeAt(i)); 12803 out += num * multiplier; 12804 } 12805 12806 return out * sign; 12807 } 12808 12809 function arrayToInt (array) { 12810 for (var i = 0; i < array.length; i++) { 12811 array[i] = unpackBase60(array[i]); 12812 } 12813 } 12814 12815 function intToUntil (array, length) { 12816 for (var i = 0; i < length; i++) { 12817 array[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds 12818 } 12819 12820 array[length - 1] = Infinity; 12821 } 12822 12823 function mapIndices (source, indices) { 12824 var out = [], i; 12825 12826 for (i = 0; i < indices.length; i++) { 12827 out[i] = source[indices[i]]; 12828 } 12829 12830 return out; 12831 } 12832 12833 function unpack (string) { 12834 var data = string.split('|'), 12835 offsets = data[2].split(' '), 12836 indices = data[3].split(''), 12837 untils = data[4].split(' '); 12838 12839 arrayToInt(offsets); 12840 arrayToInt(indices); 12841 arrayToInt(untils); 12842 12843 intToUntil(untils, indices.length); 12844 12845 return { 12846 name : data[0], 12847 abbrs : mapIndices(data[1].split(' '), indices), 12848 offsets : mapIndices(offsets, indices), 12849 untils : untils, 12850 population : data[5] | 0 12851 }; 12852 } 12853 12854 /************************************ 12855 Zone object 12856 ************************************/ 12857 12858 function Zone (packedString) { 12859 if (packedString) { 12860 this._set(unpack(packedString)); 12861 } 12862 } 12863 12864 Zone.prototype = { 12865 _set : function (unpacked) { 12866 this.name = unpacked.name; 12867 this.abbrs = unpacked.abbrs; 12868 this.untils = unpacked.untils; 12869 this.offsets = unpacked.offsets; 12870 this.population = unpacked.population; 12871 }, 12872 12873 _index : function (timestamp) { 12874 var target = +timestamp, 12875 untils = this.untils, 12876 i; 12877 12878 for (i = 0; i < untils.length; i++) { 12879 if (target < untils[i]) { 12880 return i; 12881 } 12882 } 12883 }, 12884 12885 countries : function () { 12886 var zone_name = this.name; 12887 return Object.keys(countries).filter(function (country_code) { 12888 return countries[country_code].zones.indexOf(zone_name) !== -1; 12889 }); 12890 }, 12891 12892 parse : function (timestamp) { 12893 var target = +timestamp, 12894 offsets = this.offsets, 12895 untils = this.untils, 12896 max = untils.length - 1, 12897 offset, offsetNext, offsetPrev, i; 12898 12899 for (i = 0; i < max; i++) { 12900 offset = offsets[i]; 12901 offsetNext = offsets[i + 1]; 12902 offsetPrev = offsets[i ? i - 1 : i]; 12903 12904 if (offset < offsetNext && tz.moveAmbiguousForward) { 12905 offset = offsetNext; 12906 } else if (offset > offsetPrev && tz.moveInvalidForward) { 12907 offset = offsetPrev; 12908 } 12909 12910 if (target < untils[i] - (offset * 60000)) { 12911 return offsets[i]; 12912 } 12913 } 12914 12915 return offsets[max]; 12916 }, 12917 12918 abbr : function (mom) { 12919 return this.abbrs[this._index(mom)]; 12920 }, 12921 12922 offset : function (mom) { 12923 logError("zone.offset has been deprecated in favor of zone.utcOffset"); 12924 return this.offsets[this._index(mom)]; 12925 }, 12926 12927 utcOffset : function (mom) { 12928 return this.offsets[this._index(mom)]; 12929 } 12930 }; 12931 12932 /************************************ 12933 Country object 12934 ************************************/ 12935 12936 function Country (country_name, zone_names) { 12937 this.name = country_name; 12938 this.zones = zone_names; 12939 } 12940 12941 /************************************ 12942 Current Timezone 12943 ************************************/ 12944 12945 function OffsetAt(at) { 12946 var timeString = at.toTimeString(); 12947 var abbr = timeString.match(/\([a-z ]+\)/i); 12948 if (abbr && abbr[0]) { 12949 // 17:56:31 GMT-0600 (CST) 12950 // 17:56:31 GMT-0600 (Central Standard Time) 12951 abbr = abbr[0].match(/[A-Z]/g); 12952 abbr = abbr ? abbr.join('') : undefined; 12953 } else { 12954 // 17:56:31 CST 12955 // 17:56:31 GMT+0800 (å°åæ¨æºæé) 12956 abbr = timeString.match(/[A-Z]{3,5}/g); 12957 abbr = abbr ? abbr[0] : undefined; 12958 } 12959 12960 if (abbr === 'GMT') { 12961 abbr = undefined; 12962 } 12963 12964 this.at = +at; 12965 this.abbr = abbr; 12966 this.offset = at.getTimezoneOffset(); 12967 } 12968 12969 function ZoneScore(zone) { 12970 this.zone = zone; 12971 this.offsetScore = 0; 12972 this.abbrScore = 0; 12973 } 12974 12975 ZoneScore.prototype.scoreOffsetAt = function (offsetAt) { 12976 this.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset); 12977 if (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) { 12978 this.abbrScore++; 12979 } 12980 }; 12981 12982 function findChange(low, high) { 12983 var mid, diff; 12984 12985 while ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) { 12986 mid = new OffsetAt(new Date(low.at + diff)); 12987 if (mid.offset === low.offset) { 12988 low = mid; 12989 } else { 12990 high = mid; 12991 } 12992 } 12993 12994 return low; 12995 } 12996 12997 function userOffsets() { 12998 var startYear = new Date().getFullYear() - 2, 12999 last = new OffsetAt(new Date(startYear, 0, 1)), 13000 offsets = [last], 13001 change, next, i; 13002 13003 for (i = 1; i < 48; i++) { 13004 next = new OffsetAt(new Date(startYear, i, 1)); 13005 if (next.offset !== last.offset) { 13006 change = findChange(last, next); 13007 offsets.push(change); 13008 offsets.push(new OffsetAt(new Date(change.at + 6e4))); 13009 } 13010 last = next; 13011 } 13012 13013 for (i = 0; i < 4; i++) { 13014 offsets.push(new OffsetAt(new Date(startYear + i, 0, 1))); 13015 offsets.push(new OffsetAt(new Date(startYear + i, 6, 1))); 13016 } 13017 13018 return offsets; 13019 } 13020 13021 function sortZoneScores (a, b) { 13022 if (a.offsetScore !== b.offsetScore) { 13023 return a.offsetScore - b.offsetScore; 13024 } 13025 if (a.abbrScore !== b.abbrScore) { 13026 return a.abbrScore - b.abbrScore; 13027 } 13028 if (a.zone.population !== b.zone.population) { 13029 return b.zone.population - a.zone.population; 13030 } 13031 return b.zone.name.localeCompare(a.zone.name); 13032 } 13033 13034 function addToGuesses (name, offsets) { 13035 var i, offset; 13036 arrayToInt(offsets); 13037 for (i = 0; i < offsets.length; i++) { 13038 offset = offsets[i]; 13039 guesses[offset] = guesses[offset] || {}; 13040 guesses[offset][name] = true; 13041 } 13042 } 13043 13044 function guessesForUserOffsets (offsets) { 13045 var offsetsLength = offsets.length, 13046 filteredGuesses = {}, 13047 out = [], 13048 i, j, guessesOffset; 13049 13050 for (i = 0; i < offsetsLength; i++) { 13051 guessesOffset = guesses[offsets[i].offset] || {}; 13052 for (j in guessesOffset) { 13053 if (guessesOffset.hasOwnProperty(j)) { 13054 filteredGuesses[j] = true; 13055 } 13056 } 13057 } 13058 13059 for (i in filteredGuesses) { 13060 if (filteredGuesses.hasOwnProperty(i)) { 13061 out.push(names[i]); 13062 } 13063 } 13064 13065 return out; 13066 } 13067 13068 function rebuildGuess () { 13069 13070 // use Intl API when available and returning valid time zone 13071 try { 13072 var intlName = Intl.DateTimeFormat().resolvedOptions().timeZone; 13073 if (intlName && intlName.length > 3) { 13074 var name = names[normalizeName(intlName)]; 13075 if (name) { 13076 return name; 13077 } 13078 logError("Moment Timezone found " + intlName + " from the Intl api, but did not have that data loaded."); 13079 } 13080 } catch (e) { 13081 // Intl unavailable, fall back to manual guessing. 13082 } 13083 13084 var offsets = userOffsets(), 13085 offsetsLength = offsets.length, 13086 guesses = guessesForUserOffsets(offsets), 13087 zoneScores = [], 13088 zoneScore, i, j; 13089 13090 for (i = 0; i < guesses.length; i++) { 13091 zoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength); 13092 for (j = 0; j < offsetsLength; j++) { 13093 zoneScore.scoreOffsetAt(offsets[j]); 13094 } 13095 zoneScores.push(zoneScore); 13096 } 13097 13098 zoneScores.sort(sortZoneScores); 13099 13100 return zoneScores.length > 0 ? zoneScores[0].zone.name : undefined; 13101 } 13102 13103 function guess (ignoreCache) { 13104 if (!cachedGuess || ignoreCache) { 13105 cachedGuess = rebuildGuess(); 13106 } 13107 return cachedGuess; 13108 } 13109 13110 /************************************ 13111 Global Methods 13112 ************************************/ 13113 13114 function normalizeName (name) { 13115 return (name || '').toLowerCase().replace(/\//g, '_'); 13116 } 13117 13118 function addZone (packed) { 13119 var i, name, split, normalized; 13120
vendor: 1,607 bytes, lines 13121-13199
13121 if (typeof packed === "string") { 13122 packed = [packed]; 13123 } 13124 13125 for (i = 0; i < packed.length; i++) { 13126 split = packed[i].split('|'); 13127 name = split[0]; 13128 normalized = normalizeName(name); 13129 zones[normalized] = packed[i]; 13130 names[normalized] = name; 13131 addToGuesses(normalized, split[2].split(' ')); 13132 } 13133 } 13134 13135 function getZone (name, caller) { 13136 13137 name = normalizeName(name); 13138 13139 var zone = zones[name]; 13140 var link; 13141 13142 if (zone instanceof Zone) { 13143 return zone; 13144 } 13145 13146 if (typeof zone === 'string') { 13147 zone = new Zone(zone); 13148 zones[name] = zone; 13149 return zone; 13150 } 13151 13152 // Pass getZone to prevent recursion more than 1 level deep 13153 if (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) { 13154 zone = zones[name] = new Zone(); 13155 zone._set(link); 13156 zone.name = names[name]; 13157 return zone; 13158 } 13159 13160 return null; 13161 } 13162 13163 function getNames () { 13164 var i, out = []; 13165 13166 for (i in names) { 13167 if (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) { 13168 out.push(names[i]); 13169 } 13170 } 13171 13172 return out.sort(); 13173 } 13174 13175 function getCountryNames () { 13176 return Object.keys(countries); 13177 } 13178 13179 function addLink (aliases) { 13180 var i, alias, normal0, normal1; 13181 13182 if (typeof aliases === "string") { 13183 aliases = [aliases]; 13184 } 13185 13186 for (i = 0; i < aliases.length; i++) { 13187 alias = aliases[i].split('|'); 13188 13189 normal0 = normalizeName(alias[0]); 13190 normal1 = normalizeName(alias[1]); 13191 13192 links[normal0] = normal1; 13193 names[normal0] = alias[0]; 13194 13195 links[normal1] = normal0; 13196 names[normal1] = alias[1]; 13197 } 13198 } 13199
vendor: 7,368 bytes, lines 13200-13415
13200 function addCountries (data) { 13201 var i, country_code, country_zones, split; 13202 if (!data || !data.length) return; 13203 for (i = 0; i < data.length; i++) { 13204 split = data[i].split('|'); 13205 country_code = split[0].toUpperCase(); 13206 country_zones = split[1].split(' '); 13207 countries[country_code] = new Country( 13208 country_code, 13209 country_zones 13210 ); 13211 } 13212 } 13213 13214 function getCountry (name) { 13215 name = name.toUpperCase(); 13216 return countries[name] || null; 13217 } 13218 13219 function zonesForCountry(country, with_offset) { 13220 country = getCountry(country); 13221 13222 if (!country) return null; 13223 13224 var zones = country.zones.sort(); 13225 13226 if (with_offset) { 13227 return zones.map(function (zone_name) { 13228 var zone = getZone(zone_name); 13229 return { 13230 name: zone_name, 13231 offset: zone.utcOffset(new Date()) 13232 }; 13233 }); 13234 } 13235 13236 return zones; 13237 } 13238 13239 function loadData (data) { 13240 addZone(data.zones); 13241 addLink(data.links); 13242 addCountries(data.countries); 13243 tz.dataVersion = data.version; 13244 } 13245 13246 function zoneExists (name) { 13247 if (!zoneExists.didShowError) { 13248 zoneExists.didShowError = true; 13249 logError("moment.tz.zoneExists('" + name + "') has been deprecated in favor of !moment.tz.zone('" + name + "')"); 13250 } 13251 return !!getZone(name); 13252 } 13253 13254 function needsOffset (m) { 13255 var isUnixTimestamp = (m._f === 'X' || m._f === 'x'); 13256 return !!(m._a && (m._tzm === undefined) && !isUnixTimestamp); 13257 } 13258 13259 function logError (message) { 13260 if (typeof console !== 'undefined' && typeof console.error === 'function') { 13261 console.error(message); 13262 } 13263 } 13264 13265 /************************************ 13266 moment.tz namespace 13267 ************************************/ 13268 13269 function tz (input) { 13270 var args = Array.prototype.slice.call(arguments, 0, -1), 13271 name = arguments[arguments.length - 1], 13272 zone = getZone(name), 13273 out = moment.utc.apply(null, args); 13274 13275 if (zone && !moment.isMoment(input) && needsOffset(out)) { 13276 out.add(zone.parse(out), 'minutes'); 13277 } 13278 13279 out.tz(name); 13280 13281 return out; 13282 } 13283 13284 tz.version = VERSION; 13285 tz.dataVersion = ''; 13286 tz._zones = zones; 13287 tz._links = links; 13288 tz._names = names; 13289 tz._countries = countries; 13290 tz.add = addZone; 13291 tz.link = addLink; 13292 tz.load = loadData; 13293 tz.zone = getZone; 13294 tz.zoneExists = zoneExists; // deprecated in 0.1.0 13295 tz.guess = guess; 13296 tz.names = getNames; 13297 tz.Zone = Zone; 13298 tz.unpack = unpack; 13299 tz.unpackBase60 = unpackBase60; 13300 tz.needsOffset = needsOffset; 13301 tz.moveInvalidForward = true; 13302 tz.moveAmbiguousForward = false; 13303 tz.countries = getCountryNames; 13304 tz.zonesForCountry = zonesForCountry; 13305 13306 /************************************ 13307 Interface with Moment.js 13308 ************************************/ 13309 13310 var fn = moment.fn; 13311 13312 moment.tz = tz; 13313 13314 moment.defaultZone = null; 13315 13316 moment.updateOffset = function (mom, keepTime) { 13317 var zone = moment.defaultZone, 13318 offset; 13319 13320 if (mom._z === undefined) { 13321 if (zone && needsOffset(mom) && !mom._isUTC) { 13322 mom._d = moment.utc(mom._a)._d; 13323 mom.utc().add(zone.parse(mom), 'minutes'); 13324 } 13325 mom._z = zone; 13326 } 13327 if (mom._z) { 13328 offset = mom._z.utcOffset(mom); 13329 if (Math.abs(offset) < 16) { 13330 offset = offset / 60; 13331 } 13332 if (mom.utcOffset !== undefined) { 13333 var z = mom._z; 13334 mom.utcOffset(-offset, keepTime); 13335 mom._z = z; 13336 } else { 13337 mom.zone(offset, keepTime); 13338 } 13339 } 13340 }; 13341 13342 fn.tz = function (name, keepTime) { 13343 if (name) { 13344 if (typeof name !== 'string') { 13345 throw new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']'); 13346 } 13347 this._z = getZone(name); 13348 if (this._z) { 13349 moment.updateOffset(this, keepTime); 13350 } else { 13351 logError("Moment Timezone has no data for " + name + ". See http://momentjs.com/timezone/docs/#/data-loading/."); 13352 } 13353 return this; 13354 } 13355 if (this._z) { return this._z.name; } 13356 }; 13357 13358 function abbrWrap (old) { 13359 return function () { 13360 if (this._z) { return this._z.abbr(this); } 13361 return old.call(this); 13362 }; 13363 } 13364 13365 function resetZoneWrap (old) { 13366 return function () { 13367 this._z = null; 13368 return old.apply(this, arguments); 13369 }; 13370 } 13371 13372 function resetZoneWrap2 (old) { 13373 return function () { 13374 if (arguments.length > 0) this._z = null; 13375 return old.apply(this, arguments); 13376 }; 13377 } 13378 13379 fn.zoneName = abbrWrap(fn.zoneName); 13380 fn.zoneAbbr = abbrWrap(fn.zoneAbbr); 13381 fn.utc = resetZoneWrap(fn.utc); 13382 fn.local = resetZoneWrap(fn.local); 13383 fn.utcOffset = resetZoneWrap2(fn.utcOffset); 13384 13385 moment.tz.setDefault = function(name) { 13386 if (major < 2 || (major === 2 && minor < 9)) { 13387 logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.'); 13388 } 13389 moment.defaultZone = name ? getZone(name) : null; 13390 return moment; 13391 }; 13392 13393 // Cloning a moment should include the _z property. 13394 var momentProperties = moment.momentProperties; 13395 if (Object.prototype.toString.call(momentProperties) === '[object Array]') { 13396 // moment 2.8.1+ 13397 momentProperties.push('_z'); 13398 momentProperties.push('_a'); 13399 } else if (momentProperties) { 13400 // moment 2.7.0 13401 momentProperties._z = null; 13402 } 13403 13404 loadData({ 13405 "version": "2020a", 13406 "zones": [ 13407 "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5", 13408 "Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5", 13409 "Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5", 13410 "Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5", 13411 "Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6", 13412 "Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4", 13413 "Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5", 13414 "Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6", 13415 "Africa/Casablanca|LMT +00 +01|u.k 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
1341500 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|32e5", 13416 "Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3", 13417 "Africa/El_Aaiun|LMT -01 +00 +01|Q.M 10 0 -10|012323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e
1341700 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600 gM0 2600 gM0 2600 e00 2600 gM0|20e4", 13418 "Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5", 13419 "Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0|", 13420 "Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5", 13421 "Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5", 13422 "Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5", 13423 "Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|0121|-2le00 4i6N0 2q00|", 13424 "Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5", 13425 "Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5", 13426 "Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4", 13427 "America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326", 13428 "America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4", 13429 "America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3", 13430 "America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4", 13431 "America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0|", 13432 "America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0|", 13433 "America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0|", 13434 "America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0|", 13435 "America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|", 13436 "America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0|", 13437 "America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0|", 13438 "America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0|", 13439 "America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0|", 13440 "America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0|", 13441 "America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0|", 13442 "America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0|", 13443 "America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4", 13444 "America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5", 13445 "America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2",
13446 "America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3", 13447 "America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5", 13448 "America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4", 13449 "America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5", 13450 "America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3", 13451 "America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2", 13452 "America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2", 13453 "America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5", 13454 "America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4", 13455 "America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2", 13456 "America/Campo_Grande|LMT -04 -03|3C.s 40 30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|77e4", 13457 "America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG
134570 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4", 13458 "America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5", 13459 "America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3", 13460 "America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5", 13461 "America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5", 13462 "America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4", 13463 "America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5", 13464 "America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2", 13465 "America/Cuiaba|LMT -04 -03|3I.k 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|54e4", 13466 "America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8", 13467 "America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3", 13468 "America/Dawson|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|13e2", 13469 "America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5", 13470 "America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|0123425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 JxX1 SMX 1cN0 1cL0 aW10 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5", 13471 "America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|0121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 XQp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5", 13472 "America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3", 13473 "America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5", 13474 "America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5", 13475 "America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2", 13476 "America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13477 "America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5", 13478 "America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3", 13479 "America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3", 13480 "America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|01023232323232324523232323232323232323232323232323232323232676767676767676767676767676767676767676767676867676
134807676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2", 13481 "America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2", 13482 "America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5", 13483 "America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5", 13484 "America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4", 13485 "America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4", 13486 "America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5",
13487 "America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4", 13488 "America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13489 "America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13490 "America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13491 "America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010401054541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 8wn0 1cN0 1cL0 1cN0 1cK0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13492 "America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13493 "America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13494 "America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13495 "America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2", 13496 "America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2", 13497 "America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4", 13498 "America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3", 13499 "America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 1nX1 e0X 9vd0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13500 "America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13501 "America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5", 13502 "America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6", 13503 "America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6", 13504 "America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4", 13505 "America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5", 13506 "America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5", 13507 "America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4", 13508 "America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4",
13509 "America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4", 13510 "America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2", 13511 "America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5", 13512 "America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|01203030303030303030303030303030304545450454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 uM0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2", 13513 "America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6", 13514 "America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2", 13515 "America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3", 13516 "America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5", 13517 "America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5", 13518 "America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5", 13519 "America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4",
13520 "America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6", 13521 "America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2", 13522 "America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2", 13523 "America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2", 13524 "America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13525 "America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13526 "America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13527 "America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 de
13527L0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3", 13528 "America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2", 13529 "America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4", 13530 "America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5", 13531 "America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5", 13532 "America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4", 13533 "America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4", 13534 "America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5", 13535 "America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|", 13536 "America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842", 13537 "America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2", 13538 "America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5", 13539 "America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4", 13540 "America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229", 13541 "America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4", 13542 "America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|62e5", 13543 "America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5", 13544 "America/Sao_Paulo|LMT -03 -02|36.s 30 20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0|20e6", 13545 "America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452", 13546 "America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2",
13547 "America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4", 13548 "America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3", 13549 "America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5", 13550 "America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656", 13551 "America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4", 13552 "America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5", 13553 "America/Whitehorse|YST YDT YWT YPT YDDT PST PDT MST|90 80 80 80 70 80 70 70|01010230405656565656565656565656565656565656565656565656565656565656565656565656565656565657|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|23e3", 13554 "America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4", 13555 "America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642", 13556 "America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3", 13557 "Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10", 13558 "Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70", 13559 "Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80", 13560 "Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1", 13561 "Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60", 13562 "Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|010202020202
1356202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5", 13563 "Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|01212121212131212121212121212121212121212121212121212121212121212121212
1356312121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40", 13564 "Antarctica/Rothera|-00 -03|0 30|01|gOo0|130", 13565 "Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20", 13566 "Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40", 13567 "Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25", 13568 "Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4", 13569 "Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5", 13570 "Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5", 13571 "Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5", 13572 "Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3", 13573 "Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4", 13574 "Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4", 13575 "Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4", 13576 "Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|", 13577 "Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5",
13578 "Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4", 13579 "Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5", 13580 "Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6", 13581 "Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|", 13582 "Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5", 13583 "Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4", 13584 "Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4", 13585 "Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6", 13586 "Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4", 13587 "Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3", 13588 "Asia/Shanghai|CST CDT|-80 -90|01010101010101010101010101010|-23uw0 18n0 OjB0 Rz0 11d0 1wL0 A10 8HX0 1G10 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 aL0 1tU30 Rb0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6", 13589 "Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5", 13590 "Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6", 13591 "Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5", 13592 "Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4", 13593 "Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5", 13594 "Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4", 13595 "Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312
13595121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|", 13596 "Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|0101010101010101010101010101010123232323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|18e5", 13597 "Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0 Wo0 1rc0 11c0 1oo0 11c0 1oo0 11c0 1oo0 11c0 1rc0|25e4", 13598 "Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5", 13599 "Asia/Hong_Kong|LMT HKT HKST HKWT JST|-7A.G -80 -90 -8u -90|0123412121212121212121212121212121212121212121212121212121212121212121|-2CFH0 1taO0 Hc0 xUu 9tBu 11z0 1tDu Rc0 1wo0 11A0 1cM0 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5", 13600 "Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3", 13601 "Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4", 13602 "Europe/Istanbul|IMT EET EEST +03 +04|-1U.U -20 -30 -30 -40|0121212121212121212121212121212121212121212121234312121212121212121212121212121212121212121212121212121212121212123|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSN0 CL0 mp0 1Vz0 1gN0 8yn0 1yp0 ML0 1kp0 17b
136020 1ip0 17b0 1fB0 19X0 1ip0 19X0 1ip0 17b0 qdB0 38L0 1jd0 Tz0 l6O0 11A0 WN0 1qL0 TB0 1tX0 U10 1tz0 11B0 1in0 17d0 z90 cne0 pb0 2Cp0 1800 14o0 1dc0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6", 13603 "Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6", 13604 "Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4", 13605 "Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|012121212121321212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 bXd0 gM0 8Q00 IM0 1wM0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4", 13606 "Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5", 13607 "Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4", 13608 "Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6", 13609 "Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5", 13610 "Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5", 13611 "Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2", 13612 "Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5", 13613 "Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5", 13614 "Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4", 13615 "Asia/Macau|LMT CST +09 +10 CDT|-7y.a -80 -90 -a0 -90|012323214141414141414141414141414141414141414141414141414141414141414141|-2CFHy.a 1uqKy.a PX0 1kn0 15B0 11b0 4Qq0 1oM0 11c0 1ko0 1u00 11A0 1cM0 11c0 1o00 11A0 1o00 11A0 1oo0 1400 1o00 11A0 1o00 U00 1tA0 U00 1wo0 Rc0 1wru U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cK0 1cO0 1cK0 1cO0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|57e4", 13616 "Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3",
13617 "Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5", 13618 "Asia/Manila|PST PDT JST|-80 -90 -90|010201010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6", 13619 "Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4", 13620 "Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4", 13621 "Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5", 13622 "Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5", 13623 "Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4", 13624 "Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4", 13625 "Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BA0|29e5", 13626 "Asia/Qostanay|LMT +04 +05 +06|-4e.s -40 -50 -60|012323232323232323232123232323232323232323232323|-1Pc4e.s eUoe.s 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|", 13627 "Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|01232323232323232323232323232323232323232323232|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 zQl0|73e4", 13628 "Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5", 13629 "Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4", 13630 "Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4", 13631 "Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -a0 -9u|012343434343151515151515134343|-2um8r.Q 97XV.Q 1m1zu 6CM0 Fz0 1kN0 14n0 1kN0 14L0 1zd0 On0 69B0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6", 13632 "Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2",
13633 "Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5", 13634 "Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5", 13635 "Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5", 13636 "Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6", 13637 "Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3", 13638 "Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rc0 1lc0 14o0 1zc0 Oo0 1zc0 Oo0|38e6", 13639 "Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5", 13640 "Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5", 13641 "Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2", 13642 "Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4", 13643 "Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4", 13644 "Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5", 13645 "Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5", 13646 "Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4", 13647 "Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3",
13648 "Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", 13649 "Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4", 13650 "Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3", 13651 "Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4", 13652 "Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4", 13653 "Atlantic/South_Georgia|-02|20|0||30", 13654 "Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2", 13655 "Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5", 13656 "Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5", 13657 "Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5", 13658 "Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3", 13659 "Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746", 13660 "Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4", 13661 "Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368", 13662 "Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4", 13663 "Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu
136631cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347", 13664 "Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10", 13665 "Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5", 13666 "Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5", 13667 "CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|", 13668 "Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1zb0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0|30e2", 13669 "CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13670 "EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|", 13671 "Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", 13672 "EST|EST|50|0||", 13673 "EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13674 "Etc/GMT-0|GMT|0|0||", 13675 "Etc/GMT-1|+01|-10|0||", 13676 "Pacific/Port_Moresby|+10|-a0|0||25e4", 13677 "Etc/GMT-11|+11|-b0|0||", 13678 "Pacific/Tarawa|+12|-c0|0||29e3", 13679 "Etc/GMT-13|+13|-d0|0||", 13680 "Etc/GMT-14|+14|-e0|0||", 13681 "Etc/GMT-2|+02|-20|0||", 13682 "Etc/GMT-3|+03|-30|0||", 13683 "Etc/GMT-4|+04|-40|0||", 13684 "Etc/GMT-5|+05|-50|0||", 13685 "Etc/GMT-6|+06|-60|0||", 13686 "Indian/Christmas|+07|-70|0||21e2", 13687 "Etc/GMT-8|+08|-80|0||", 13688 "Pacific/Palau|+09|-90|0||21e3",
13689 "Etc/GMT+1|-01|10|0||", 13690 "Etc/GMT+10|-10|a0|0||", 13691 "Etc/GMT+11|-11|b0|0||", 13692 "Etc/GMT+12|-12|c0|0||", 13693 "Etc/GMT+3|-03|30|0||", 13694 "Etc/GMT+4|-04|40|0||", 13695 "Etc/GMT+5|-05|50|0||", 13696 "Etc/GMT+6|-06|60|0||", 13697 "Etc/GMT+7|-07|70|0||", 13698 "Etc/GMT+8|-08|80|0||", 13699 "Etc/GMT+9|-09|90|0||", 13700 "Etc/UTC|UTC|0|0||", 13701 "Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5", 13702 "Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3", 13703 "Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|10e5", 13704 "Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5", 13705 "Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6", 13706 "Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", 13707 "Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5", 13708 "Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5", 13709 "Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5", 13710 "Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5", 13711 "Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5", 13712 "Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4", 13713 "Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4", 13714 "Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", 13715 "Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3", 13716 "Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", 13717 "Europe/Kaliningrad|CET CEST EET EEST MSK MSD +03|-10 -20 -20 -30 -30 -40 -30|01010101010101232454545454545454543232323232323232323232323232323232323232323262|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 390 7A0 1en0 12N0 1pbb0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4", 13718 "Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5", 13719 "Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0
137191fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4", 13720 "Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5", 13721 "Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", 13722 "Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5", 13723 "Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4", 13724 "Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5", 13725 "Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3", 13726 "Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6", 13727 "Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6", 13728 "Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -2
137280 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4", 13729 "Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5", 13730 "Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5", 13731 "Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810|", 13732 "Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4", 13733 "Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5", 13734 "Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5", 13735 "Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4", 13736 "Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4", 13737 "Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|13e5", 13738 "Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4", 13739 "Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1ao0 1co0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5", 13740 "Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4", 13741 "Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 9Jd0|10e5", 13742 "Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5", 13743 "Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4", 13744 "HST|HST|a0|0||", 13745 "Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2", 13746 "Indian/Cocos|+0630|-6u|0||596", 13747 "Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130", 13748 "Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3", 13749 "Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4", 13750 "Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4", 13751 "Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4", 13752 "Pacific/Kwajalein|+11 +10 +09 -12 +12|-b0 -a0 -90 c0 -c0|012034|-1kln0 akp0 6Up0 12ry0 Wan0|14e3", 13753 "MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|", 13754 "MST|MST|70|0||", 13755 "MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13756 "Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600", 13757 "Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3", 13758 "Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4", 13759 "Pacific/Chuuk|+10 +09|-a0 -90|01010|-2ewy0 axB0 RVX0 axd0|49e3", 13760 "Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3",
13761 "Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1", 13762 "Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483", 13763 "Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 20o0 pc0 20o0 pc0 20o0 pc0 20o0 pc0 20o0 s00 1VA0 s00|88e4", 13764 "Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3", 13765 "Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125", 13766 "Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4", 13767 "Pacific/Guam|GST +09 GDT ChST|-a0 -90 -b0 -a0|01020202020202020203|-18jK0 6pB0 AhB0 3QL0 g2p0 3p91 WOX rX0 1zd0 Rb0 1wp0 Rb0 5xd0 rX0 5sN0 zb1 1C0X On0 ULb0|17e4", 13768 "Pacific/Honolulu|HST HDT HWT HPT HST|au 9u 9u 9u a0|0102304|-1thLu 8x0 lef0 8wWu iAu 46p0|37e4", 13769 "Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2", 13770 "Pacific/Kosrae|+11 +09 +10 +12|-b0 -90 -a0 -c0|01021030|-2ewz0 axC0 HBy0 akp0 axd0 WOK0 1bdz0|66e2", 13771 "Pacific/Majuro|+11 +09 +10 +12|-b0 -90 -a0 -c0|0102103|-2ewz0 axC0 HBy0 akp0 6RB0 12um0|28e3", 13772 "Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2", 13773 "Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2", 13774 "Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E QCnB.E 7mqu 1lnbu|10e3", 13775 "Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2", 13776 "Pacific/Norfolk|+1112 +1130 +1230 +11 +12|-bc -bu -cu -b0 -c0|012134343434343434343434343434343434343434|-Kgbc W01G Oo0 1COo0 9Jcu 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|25e4", 13777 "Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3", 13778 "Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56", 13779 "Pacific/Pohnpei|+11 +09 +10|-b0 -90 -a0|010210|-2ewz0 axC0 HBy0 akp0 axd0|34e3", 13780 "Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3", 13781 "Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4", 13782 "Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3", 13783 "PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|", 13784 "WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|" 13785 ], 13786 "links": [ 13787 "Africa/Abidjan|Africa/Bamako", 13788 "Africa/Abidjan|Africa/Banjul", 13789 "Africa/Abidjan|Africa/Conakry", 13790 "Africa/Abidjan|Africa/Dakar", 13791 "Africa/Abidjan|Africa/Freetown", 13792 "Africa/Abidjan|Africa/Lome", 13793 "Africa/Abidjan|Africa/Nouakchott", 13794 "Africa/Abidjan|Africa/Ouagadougou", 13795 "Africa/Abidjan|Africa/Timbuktu", 13796 "Africa/Abidjan|Atlantic/St_Helena", 13797 "Africa/Cairo|Egypt", 13798 "Africa/Johannesburg|Africa/Maseru", 13799 "Africa/Johannesburg|Africa/Mbabane", 13800 "Africa/Lagos|Africa/Bangui", 13801 "Africa/Lagos|Africa/Brazzaville", 13802 "Africa/Lagos|Africa/Douala", 13803 "Africa/Lagos|Africa/Kinshasa", 13804 "Africa/Lagos|Africa/Libreville", 13805 "Africa/Lagos|Africa/Luanda", 13806 "Africa/Lagos|Africa/Malabo", 13807 "Africa/Lagos|Africa/Niamey", 13808 "Africa/Lagos|Africa/Porto-Novo", 13809 "Africa/Maputo|Africa/Blantyre", 13810 "Africa/Maputo|Africa/Bujumbura", 13811 "Africa/Maputo|Africa/Gaborone", 13812 "Africa/Maputo|Africa/Harare",
13813 "Africa/Maputo|Africa/Kigali", 13814 "Africa/Maputo|Africa/Lubumbashi", 13815 "Africa/Maputo|Africa/Lusaka", 13816 "Africa/Nairobi|Africa/Addis_Ababa", 13817 "Africa/Nairobi|Africa/Asmara", 13818 "Africa/Nairobi|Africa/Asmera", 13819 "Africa/Nairobi|Africa/Dar_es_Salaam", 13820 "Africa/Nairobi|Africa/Djibouti", 13821 "Africa/Nairobi|Africa/Kampala", 13822 "Africa/Nairobi|Africa/Mogadishu", 13823 "Africa/Nairobi|Indian/Antananarivo", 13824 "Africa/Nairobi|Indian/Comoro", 13825 "Africa/Nairobi|Indian/Mayotte", 13826 "Africa/Tripoli|Libya", 13827 "America/Adak|America/Atka", 13828 "America/Adak|US/Aleutian", 13829 "America/Anchorage|US/Alaska", 13830 "America/Argentina/Buenos_Aires|America/Buenos_Aires", 13831 "America/Argentina/Catamarca|America/Argentina/ComodRivadavia", 13832 "America/Argentina/Catamarca|America/Catamarca", 13833 "America/Argentina/Cordoba|America/Cordoba", 13834 "America/Argentina/Cordoba|America/Rosario", 13835 "America/Argentina/Jujuy|America/Jujuy", 13836 "America/Argentina/Mendoza|America/Mendoza", 13837 "America/Atikokan|America/Coral_Harbour", 13838 "America/Chicago|US/Central", 13839 "America/Curacao|America/Aruba", 13840 "America/Curacao|America/Kralendijk", 13841 "America/Curacao|America/Lower_Princes", 13842 "America/Denver|America/Shiprock", 13843 "America/Denver|Navajo", 13844 "America/Denver|US/Mountain", 13845 "America/Detroit|US/Michigan", 13846 "America/Edmonton|Canada/Mountain", 13847 "America/Fort_Wayne|America/Indiana/Indianapolis", 13848 "America/Fort_Wayne|America/Indianapolis", 13849 "America/Fort_Wayne|US/East-Indiana", 13850 "America/Godthab|America/Nuuk", 13851 "America/Halifax|Canada/Atlantic", 13852 "America/Havana|Cuba", 13853 "America/Indiana/Knox|America/Knox_IN", 13854 "America/Indiana/Knox|US/Indiana-Starke", 13855 "America/Jamaica|Jamaica", 13856 "America/Kentucky/Louisville|America/Louisville", 13857 "America/Los_Angeles|US/Pacific", 13858 "America/Los_Angeles|US/Pacific-New", 13859 "America/Manaus|Brazil/West", 13860 "America/Mazatlan|Mexico/BajaSur", 13861 "America/Mexico_City|Mexico/General", 13862 "America/New_York|US/Eastern", 13863 "America/Noronha|Brazil/DeNoronha", 13864 "America/Panama|America/Cayman", 13865 "America/Phoenix|US/Arizona", 13866 "America/Port_of_Spain|America/Anguilla", 13867 "America/Port_of_Spain|America/Antigua", 13868 "America/Port_of_Spain|America/Dominica", 13869 "America/Port_of_Spain|America/Grenada", 13870 "America/Port_of_Spain|America/Guadeloupe", 13871 "America/Port_of_Spain|America/Marigot", 13872 "America/Port_of_Spain|America/Montserrat", 13873 "America/Port_of_Spain|America/St_Barthelemy", 13874 "America/Port_of_Spain|America/St_Kitts", 13875 "America/Port_of_Spain|America/St_Lucia", 13876 "America/Port_of_Spain|America/St_Thomas", 13877 "America/Port_of_Spain|America/St_Vincent", 13878 "America/Port_of_Spain|America/Tortola", 13879 "America/Port_of_Spain|America/Virgin", 13880 "America/Regina|Canada/Saskatchewan", 13881 "America/Rio_Branco|America/Porto_Acre", 13882 "America/Rio_Branco|Brazil/Acre", 13883 "America/Santiago|Chile/Continental", 13884 "America/Sao_Paulo|Brazil/East",
13885 "America/St_Johns|Canada/Newfoundland", 13886 "America/Tijuana|America/Ensenada", 13887 "America/Tijuana|America/Santa_Isabel", 13888 "America/Tijuana|Mexico/BajaNorte", 13889 "America/Toronto|America/Montreal", 13890 "America/Toronto|Canada/Eastern", 13891 "America/Vancouver|Canada/Pacific", 13892 "America/Whitehorse|Canada/Yukon", 13893 "America/Winnipeg|Canada/Central", 13894 "Asia/Ashgabat|Asia/Ashkhabad", 13895 "Asia/Bangkok|Asia/Phnom_Penh", 13896 "Asia/Bangkok|Asia/Vientiane", 13897 "Asia/Dhaka|Asia/Dacca", 13898 "Asia/Dubai|Asia/Muscat", 13899 "Asia/Ho_Chi_Minh|Asia/Saigon", 13900 "Asia/Hong_Kong|Hongkong", 13901 "Asia/Jerusalem|Asia/Tel_Aviv", 13902 "Asia/Jerusalem|Israel", 13903 "Asia/Kathmandu|Asia/Katmandu", 13904 "Asia/Kolkata|Asia/Calcutta", 13905 "Asia/Kuala_Lumpur|Asia/Singapore", 13906 "Asia/Kuala_Lumpur|Singapore", 13907 "Asia/Macau|Asia/Macao", 13908 "Asia/Makassar|Asia/Ujung_Pandang", 13909 "Asia/Nicosia|Europe/Nicosia", 13910 "Asia/Qatar|Asia/Bahrain", 13911 "Asia/Rangoon|Asia/Yangon", 13912 "Asia/Riyadh|Asia/Aden", 13913 "Asia/Riyadh|Asia/Kuwait", 13914 "Asia/Seoul|ROK", 13915 "Asia/Shanghai|Asia/Chongqing", 13916 "Asia/Shanghai|Asia/Chungking", 13917 "Asia/Shanghai|Asia/Harbin", 13918 "Asia/Shanghai|PRC", 13919 "Asia/Taipei|ROC", 13920 "Asia/Tehran|Iran", 13921 "Asia/Thimphu|Asia/Thimbu", 13922 "Asia/Tokyo|Japan", 13923 "Asia/Ulaanbaatar|Asia/Ulan_Bator", 13924 "Asia/Urumqi|Asia/Kashgar",
13925 "Atlantic/Faroe|Atlantic/Faeroe", 13926 "Atlantic/Reykjavik|Iceland", 13927 "Atlantic/South_Georgia|Etc/GMT+2", 13928 "Australia/Adelaide|Australia/South", 13929 "Australia/Brisbane|Australia/Queensland", 13930 "Australia/Broken_Hill|Australia/Yancowinna", 13931 "Australia/Darwin|Australia/North", 13932 "Australia/Hobart|Australia/Tasmania", 13933 "Australia/Lord_Howe|Australia/LHI", 13934 "Australia/Melbourne|Australia/Victoria", 13935 "Australia/Perth|Australia/West", 13936 "Australia/Sydney|Australia/ACT", 13937 "Australia/Sydney|Australia/Canberra", 13938 "Australia/Sydney|Australia/NSW", 13939 "Etc/GMT-0|Etc/GMT", 13940 "Etc/GMT-0|Etc/GMT+0", 13941 "Etc/GMT-0|Etc/GMT0", 13942 "Etc/GMT-0|Etc/Greenwich", 13943 "Etc/GMT-0|GMT", 13944 "Etc/GMT-0|GMT+0", 13945 "Etc/GMT-0|GMT-0", 13946 "Etc/GMT-0|GMT0", 13947 "Etc/GMT-0|Greenwich", 13948 "Etc/UTC|Etc/UCT", 13949 "Etc/UTC|Etc/Universal", 13950 "Etc/UTC|Etc/Zulu", 13951 "Etc/UTC|UCT", 13952 "Etc/UTC|UTC", 13953 "Etc/UTC|Universal", 13954 "Etc/UTC|Zulu", 13955 "Europe/Belgrade|Europe/Ljubljana", 13956 "Europe/Belgrade|Europe/Podgorica", 13957 "Europe/Belgrade|Europe/Sarajevo", 13958 "Europe/Belgrade|Europe/Skopje", 13959 "Europe/Belgrade|Europe/Zagreb", 13960 "Europe/Chisinau|Europe/Tiraspol", 13961 "Europe/Dublin|Eire", 13962 "Europe/Helsinki|Europe/Mariehamn", 13963 "Europe/Istanbul|Asia/Istanbul", 13964 "Europe/Istanbul|Turkey", 13965 "Europe/Lisbon|Portugal", 13966 "Europe/London|Europe/Belfast", 13967 "Europe/London|Europe/Guernsey", 13968 "Europe/London|Europe/Isle_of_Man", 13969 "Europe/London|Europe/Jersey", 13970 "Europe/London|GB", 13971 "Europe/London|GB-Eire", 13972 "Europe/Moscow|W-SU", 13973 "Europe/Oslo|Arctic/Longyearbyen", 13974 "Europe/Oslo|Atlantic/Jan_Mayen", 13975 "Europe/Prague|Europe/Bratislava", 13976 "Europe/Rome|Europe/San_Marino", 13977 "Europe/Rome|Europe/Vatican", 13978 "Europe/Warsaw|Poland", 13979 "Europe/Zurich|Europe/Busingen", 13980 "Europe/Zurich|Europe/Vaduz", 13981 "Indian/Christmas|Etc/GMT-7", 13982 "Pacific/Auckland|Antarctica/McMurdo", 13983 "Pacific/Auckland|Antarctica/South_Pole", 13984 "Pacific/Auckland|NZ", 13985 "Pacific/Chatham|NZ-CHAT", 13986 "Pacific/Chuuk|Pacific/Truk", 13987 "Pacific/Chuuk|Pacific/Yap", 13988 "Pacific/Easter|Chile/EasterIsland", 13989 "Pacific/Guam|Pacific/Saipan", 13990 "Pacific/Honolulu|Pacific/Johnston", 13991 "Pacific/Honolulu|US/Hawaii", 13992 "Pacific/Kwajalein|Kwajalein", 13993 "Pacific/Pago_Pago|Pacific/Midway", 13994 "Pacific/Pago_Pago|Pacific/Samoa", 13995 "Pacific/Pago_Pago|US/Samoa", 13996 "Pacific/Palau|Etc/GMT-9", 13997 "Pacific/Pohnpei|Pacific/Ponape", 13998 "Pacific/Port_Moresby|Etc/GMT-10", 13999 "Pacific/Tarawa|Etc/GMT-12", 14000 "Pacific/Tarawa|Pacific/Funafuti", 14001 "Pacific/Tarawa|Pacific/Wake", 14002 "Pacific/Tarawa|Pacific/Wallis" 14003 ], 14004 "countries": [ 14005 "AD|Europe/Andorra", 14006 "AE|Asia/Dubai", 14007 "AF|Asia/Kabul", 14008 "AG|America/Port_of_Spain America/Antigua", 14009 "AI|America/Port_of_Spain America/Anguilla", 14010 "AL|Europe/Tirane", 14011 "AM|Asia/Yerevan", 14012 "AO|Africa/Lagos Africa/Luanda", 14013 "AQ|Antarctica/Casey Antarctica/Davis Antarctica/DumontDUrville Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Syowa Antarctica/Troll Antarctica/Vostok Pacific/Auckland Antarctica/McMurdo", 14014 "AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia", 14015 "AS|Pacific/Pago_Pago", 14016 "AT|Europe/Vienna", 14017 "AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Currie Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla", 14018 "AW|America/Curacao America/Aruba", 14019 "AX|Europe/Helsinki Europe/Mariehamn", 14020 "AZ|Asia/Baku", 14021 "BA|Europe/Belgrade Europe/Sarajevo", 14022 "BB|America/Barbados", 14023 "BD|Asia/Dhaka", 14024 "BE|Europe/Brussels", 14025 "BF|Africa/Abidjan Africa/Ouagadougou", 14026 "BG|Europe/Sofia", 14027 "BH|Asia/Qatar Asia/Bahrain", 14028 "BI|Africa/Maputo Africa/Bujumbura", 14029 "BJ|Africa/Lagos Africa/Porto-Novo", 14030 "BL|America/Port_of_Spain America/St_Barthelemy", 14031 "BM|Atlantic/Bermuda", 14032 "BN|Asia/Brunei", 14033 "BO|America/La_Paz", 14034 "BQ|America/Curacao America/Kralendijk", 14035 "BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco", 14036 "BS|America/Nassau", 14037 "BT|Asia/Thimphu", 14038 "BW|Africa/Maputo Africa/Gaborone", 14039 "BY|Europe/Minsk", 14040 "BZ|America/Belize", 14041 "CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Blanc-Sablon America/Toronto America/Nipigon America/Thunder_Bay America/Iqaluit America/Pangnirtung America/Atikokan America/Winnipeg America/Rainy_River America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Yellowknife America/Inuvik America/Creston America/Dawson_Creek America/Fort_Nelson America/Vancouver America/Whitehorse America/Dawson", 14042 "CC|Indian/Cocos", 14043 "CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi", 14044 "CF|Africa/Lagos Africa/Bangui", 14045 "CG|Africa/Lagos Africa/Brazzaville", 14046 "CH|Europe/Zurich", 14047 "CI|Africa/Abidjan", 14048 "CK|Pacific/Rarotonga", 14049 "CL|America/Santiago America/Punta_Arenas Pacific/Easter", 14050 "CM|Africa/Lagos Africa/Douala", 14051 "CN|Asia/Shanghai Asia/Urumqi", 14052 "CO|America/Bogota", 14053 "CR|America/Costa_Rica", 14054 "CU|America/Havana", 14055 "CV|Atlantic/Cape_Verde", 14056 "CW|America/Curacao", 14057 "CX|Indian/Christmas", 14058 "CY|Asia/Nicosia Asia/Famagusta", 14059 "CZ|Europe/Prague", 14060 "DE|Europe/Zurich Europe/Berlin Europe/Busingen", 14061 "DJ|Africa/Nairobi Africa/Djibouti", 14062 "DK|Europe/Copenhagen", 14063 "DM|America/Port_of_Spain America/Dominica", 14064 "DO|America/Santo_Domingo", 14065 "DZ|Africa/Algiers", 14066 "EC|America/Guayaquil Pacific/Galapagos", 14067 "EE|Europe/Tallinn", 14068 "EG|Africa/Cairo", 14069 "EH|Africa/El_Aaiun", 14070 "ER|Africa/Nairobi Africa/Asmara", 14071 "ES|Europe/Madrid Africa/Ceuta Atlantic/Canary", 14072 "ET|Africa/Nairobi Africa/Addis_Ababa", 14073 "FI|Europe/Helsinki", 14074 "FJ|Pacific/Fiji", 14075 "FK|Atlantic/Stanley", 14076 "FM|Pacific/Chuuk Pacific/Pohnpei Pacific/Kosrae", 14077 "FO|Atlantic/Faroe", 14078 "FR|Europe/Paris", 14079 "GA|Africa/Lagos Africa/Libreville", 14080 "GB|Europe/London", 14081 "GD|America/Port_of_Spain America/Grenada", 14082 "GE|Asia/Tbilisi", 14083 "GF|America/Cayenne",
14084 "GG|Europe/London Europe/Guernsey", 14085 "GH|Africa/Accra", 14086 "GI|Europe/Gibraltar", 14087 "GL|America/Godthab America/Danmarkshavn America/Scoresbysund America/Thule", 14088 "GM|Africa/Abidjan Africa/Banjul", 14089 "GN|Africa/Abidjan Africa/Conakry", 14090 "GP|America/Port_of_Spain America/Guadeloupe", 14091 "GQ|Africa/Lagos Africa/Malabo", 14092 "GR|Europe/Athens", 14093 "GS|Atlantic/South_Georgia", 14094 "GT|America/Guatemala", 14095 "GU|Pacific/Guam", 14096 "GW|Africa/Bissau", 14097 "GY|America/Guyana", 14098 "HK|Asia/Hong_Kong", 14099 "HN|America/Tegucigalpa", 14100 "HR|Europe/Belgrade Europe/Zagreb", 14101 "HT|America/Port-au-Prince", 14102 "HU|Europe/Budapest", 14103 "ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura", 14104 "IE|Europe/Dublin", 14105 "IL|Asia/Jerusalem", 14106 "IM|Europe/London Europe/Isle_of_Man", 14107 "IN|Asia/Kolkata", 14108 "IO|Indian/Chagos", 14109 "IQ|Asia/Baghdad", 14110 "IR|Asia/Tehran", 14111 "IS|Atlantic/Reykjavik", 14112 "IT|Europe/Rome", 14113 "JE|Europe/London Europe/Jersey", 14114 "JM|America/Jamaica", 14115 "JO|Asia/Amman", 14116 "JP|Asia/Tokyo", 14117 "KE|Africa/Nairobi", 14118 "KG|Asia/Bishkek", 14119 "KH|Asia/Bangkok Asia/Phnom_Penh", 14120 "KI|Pacific/Tarawa Pacific/Enderbury Pacific/Kiritimati", 14121 "KM|Africa/Nairobi Indian/Comoro", 14122 "KN|America/Port_of_Spain America/St_Kitts", 14123 "KP|Asia/Pyongyang", 14124 "KR|Asia/Seoul", 14125 "KW|Asia/Riyadh Asia/Kuwait", 14126 "KY|America/Panama America/Cayman", 14127 "KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral", 14128 "LA|Asia/Bangkok Asia/Vientiane", 14129 "LB|Asia/Beirut", 14130 "LC|America/Port_of_Spain America/St_Lucia", 14131 "LI|Europe/Zurich Europe/Vaduz", 14132 "LK|Asia/Colombo", 14133 "LR|Africa/Monrovia", 14134 "LS|Africa/Johannesburg Africa/Maseru", 14135 "LT|Europe/Vilnius", 14136 "LU|Europe/Luxembourg", 14137 "LV|Europe/Riga", 14138 "LY|Africa/Tripoli", 14139 "MA|Africa/Casablanca", 14140 "MC|Europe/Monaco", 14141 "MD|Europe/Chisinau", 14142 "ME|Europe/Belgrade Europe/Podgorica", 14143 "MF|America/Port_of_Spain America/Marigot", 14144 "MG|Africa/Nairobi Indian/Antananarivo", 14145 "MH|Pacific/Majuro Pacific/Kwajalein", 14146 "MK|Europe/Belgrade Europe/Skopje", 14147 "ML|Africa/Abidjan Africa/Bamako", 14148 "MM|Asia/Yangon", 14149 "MN|Asia/Ulaanbaatar Asia/Hovd Asia/Choibalsan", 14150 "MO|Asia/Macau", 14151 "MP|Pacific/Guam Pacific/Saipan", 14152 "MQ|America/Martinique", 14153 "MR|Africa/Abidjan Africa/Nouakchott", 14154 "MS|America/Port_of_Spain America/Montserrat", 14155 "MT|Europe/Malta", 14156 "MU|Indian/Mauritius", 14157 "MV|Indian/Maldives", 14158 "MW|Africa/Maputo Africa/Blantyre", 14159 "MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Mazatlan America/Chihuahua America/Ojinaga America/Hermosillo America/Tijuana America/Bahia_Banderas", 14160 "MY|Asia/Kuala_Lumpur Asia/Kuching", 14161 "MZ|Africa/Maputo", 14162 "NA|Africa/Windhoek", 14163 "NC|Pacific/Noumea", 14164 "NE|Africa/Lagos Africa/Niamey", 14165 "NF|Pacific/Norfolk", 14166 "NG|Africa/Lagos", 14167 "NI|America/Managua", 14168 "NL|Europe/Amsterdam", 14169 "NO|Europe/Oslo", 14170 "NP|Asia/Kathmandu", 14171 "NR|Pacific/Nauru", 14172 "NU|Pacific/Niue", 14173 "NZ|Pacific/Auckland Pacific/Chatham", 14174 "OM|Asia/Dubai Asia/Muscat", 14175 "PA|America/Panama", 14176 "PE|America/Lima", 14177 "PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier", 14178 "PG|Pacific/Port_Moresby Pacific/Bougainville", 14179 "PH|Asia/Manila", 14180 "PK|Asia/Karachi", 14181 "PL|Europe/Warsaw", 14182 "PM|America/Miquelon", 14183 "PN|Pacific/Pitcairn", 14184 "PR|America/Puerto_Rico", 14185 "PS|Asia/Gaza Asia/Hebron", 14186 "PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores", 14187 "PW|Pacific/Palau", 14188 "PY|America/Asuncion", 14189 "QA|Asia/Qatar", 14190 "RE|Indian/Reunion", 14191 "RO|Europe/Bucharest", 14192 "RS|Europe/Belgrade", 14193 "RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Astrakhan Europe/Volgograd Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr",
vendor: 17,644 bytes, lines 14194-14259
14194 "RW|Africa/Maputo Africa/Kigali", 14195 "SA|Asia/Riyadh", 14196 "SB|Pacific/Guadalcanal", 14197 "SC|Indian/Mahe", 14198 "SD|Africa/Khartoum", 14199 "SE|Europe/Stockholm", 14200 "SG|Asia/Singapore", 14201 "SH|Africa/Abidjan Atlantic/St_Helena", 14202 "SI|Europe/Belgrade Europe/Ljubljana", 14203 "SJ|Europe/Oslo Arctic/Longyearbyen", 14204 "SK|Europe/Prague Europe/Bratislava", 14205 "SL|Africa/Abidjan Africa/Freetown", 14206 "SM|Europe/Rome Europe/San_Marino", 14207 "SN|Africa/Abidjan Africa/Dakar", 14208 "SO|Africa/Nairobi Africa/Mogadishu", 14209 "SR|America/Paramaribo", 14210 "SS|Africa/Juba", 14211 "ST|Africa/Sao_Tome", 14212 "SV|America/El_Salvador", 14213 "SX|America/Curacao America/Lower_Princes", 14214 "SY|Asia/Damascus", 14215 "SZ|Africa/Johannesburg Africa/Mbabane", 14216 "TC|America/Grand_Turk", 14217 "TD|Africa/Ndjamena", 14218 "TF|Indian/Reunion Indian/Kerguelen", 14219 "TG|Africa/Abidjan Africa/Lome", 14220 "TH|Asia/Bangkok", 14221 "TJ|Asia/Dushanbe", 14222 "TK|Pacific/Fakaofo", 14223 "TL|Asia/Dili", 14224 "TM|Asia/Ashgabat", 14225 "TN|Africa/Tunis", 14226 "TO|Pacific/Tongatapu", 14227 "TR|Europe/Istanbul", 14228 "TT|America/Port_of_Spain", 14229 "TV|Pacific/Funafuti", 14230 "TW|Asia/Taipei", 14231 "TZ|Africa/Nairobi Africa/Dar_es_Salaam", 14232 "UA|Europe/Simferopol Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye", 14233 "UG|Africa/Nairobi Africa/Kampala", 14234 "UM|Pacific/Pago_Pago Pacific/Wake Pacific/Honolulu Pacific/Midway", 14235 "US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu", 14236 "UY|America/Montevideo", 14237 "UZ|Asia/Samarkand Asia/Tashkent", 14238 "VA|Europe/Rome Europe/Vatican", 14239 "VC|America/Port_of_Spain America/St_Vincent", 14240 "VE|America/Caracas", 14241 "VG|America/Port_of_Spain America/Tortola", 14242 "VI|America/Port_of_Spain America/St_Thomas", 14243 "VN|Asia/Bangkok Asia/Ho_Chi_Minh", 14244 "VU|Pacific/Efate", 14245 "WF|Pacific/Wallis", 14246 "WS|Pacific/Apia", 14247 "YE|Asia/Riyadh Asia/Aden", 14248 "YT|Africa/Nairobi Indian/Mayotte", 14249 "ZA|Africa/Johannesburg", 14250 "ZM|Africa/Maputo Africa/Lusaka", 14251 "ZW|Africa/Maputo Africa/Harare" 14252 ] 14253 }); 14254 14255 14256 return moment; 14257})); 14258; 14259/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=function(b,c){return void 0===c&&(c="undefined"!=typeof window?require("jquery"):require("jquery")(b)),a(c),c}:a(jQuery)}(function(a){var b=function(){if(a&&a.fn&&a.fn.select2&&a.fn.select2.amd)var b=a.fn.select2.amd;var b;return function(){if(!b||!b.requirejs){b?c=b:b={};var a,c,d;!function(b){function e(a,b){return v.call(a,b)}function f(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o=b&&b.split("/"),p=t.map,q=p&&p["*"]||{};if(a){for(a=a.split("/"),g=a.length-1,t.nodeIdCompat&&x.test(a[g])&&(a[g]=a[g].replace(x,"")),"."===a[0].charAt(0)&&o&&(n=o.slice(0,o.length-1),a=n.concat(a)),k=0;k<a.length;k++)if("."===(m=a[k]))a.splice(k,1),k-=1;else if(".."===m){if(0===k||1===k&&".."===a[2]||".."===a[k-1])continue;k>0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}if((o||q)&&p){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),o)for(l=o.length;l>0;l-=1)if((e=p[o.slice(0,l).join("/")])&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function g(a,c){return function(){var d=w.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),o.apply(b,d.concat([a,c]))}}function h(a){return function(b){return f(b,a)}}function i(a){return function(b){r[a]=b}}function j(a){if(e(s,a)){var c=s[a];delete s[a],u[a]=!0,n.apply(b,c)}if(!e(r,a)&&!e(u,a))throw new Error("No "+a);return r[a]}function k(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function l(a){return a?k(a):[]}function m(a){return function(){return t&&t.config&&t.config[a]||{}}}var n,o,p,q,r={},s={},t={},u={},v=Object.prototype.hasOwnProperty,w=[].slice,x=/\.js$/;p=function(a,b){var c,d=k(a),e=d[0],g=b[1];return a=d[1],e&&(e=f(e,g),c=j(e)),e?a=c&&c.normalize?c.normalize(a,h(g)):f(a,g):(a=f(a,g),d=k(a),e=d[0],a=d[1],e&&(c=j(e))),{f:e?e+"!"+a:a,n:a,pr:e,p:c}},q={require:function(a){return g(a)},exports:function(a){var b=r[a];return void 0!==b?b:r[a]={}},module:function(a){return{id:a,uri:"",exports:r[a],config:m(a)}}},n=function(a,c,d,f){var h,k,m,n,o,t,v,w=[],x=typeof d;if(f=f||a,t=l(f),"undefined"===x||"function"===x){for(c=!c.length&&d.length?["require","exports","module"]:c,o=0;o<c.length;o+=1)if(n=p(c[o],t),"require"===(k=n.f))w[o]=q.require(a);else if("exports"===k)w[o]=q.exports(a),v=!0;else if("module"===k)h=w[o]=q.module(a);else if(e(r,k)||e(s,k)||e(u,k))w[o]=j(k);else{if(!n.p)throw new Error(a+" missing "+k);n.p.load(n.n,g(f,!0),i(k),{}),w[o]=r[k]}m=d?d.apply(r[a],w):void 0,a&&(h&&h.exports!==b&&h.exports!==r[a]?r[a]=h.exports:m===b&&v||(r[a]=m))}else a&&(r[a]=d)},a=c=o=function(a,c,d,e,f){if("string"==typeof a)return q[a]?q[a](c):j(p(a,l(c)).f);if(!a.splice){if(t=a,t.deps&&o(t.deps,t.callback),!c)return;c.splice?(a=c,c=d,d=null):a=b}return c=c||function(){},"function"==typeof d&&(d=e,e=f),e?n(b,a,c,d):setTimeout(function(){n(b,a,c,d)},4),o},o.config=function(a){return o(a)},a._defined=r,d=function(a,b,c){if("string"!=typeof a)throw new Error("See almond README: incorrect module build, no module name");b.splice||(c=b,b=[]),e(r,a)||e(s,a)||(s[a]=[a,b,c])},d.amd={jQuery:!0}}(),b.requirejs=a,b.require=c,b.define=d}}(),b.define("almond",function(){}),b.define("jquery",[],function(){var b=a||$;return null==b&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),b}),b.define("select2/utils",["jquery"],function(a){function b(a){var b=a.prototype,c=[];for(var d in b){"function"==typeof b[d]&&("constructor"!==d&&c.push(d))}return c}var c={};c.Extend=function(a,b){function c(){this.constructor=a}var d={}.hasOwnProperty;for(var e in b)d.call(b,e)&&(a[e]=b[e]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},c.Decorate=function(a,c){function d(){var b=Array.prototype.unshift,d=c.prototype.constructor.length,e=a.prototype.constructor;d>0&&(b.call(arguments,a.prototype.constructor),e=c.prototype.constructor),e.apply(this,arguments)}function e(){this.constructor=d}var f=b(c),g=b(a);c.displayName=a.displayName,d.prototype=new e;for(var h=0;h<g.length;h++){var i=g[h];d.prototype[i]=a.prototype[i]}for(var j=(function(a){var b=function(){};a in d.prototype&&(b=d.prototype[a]);var e=c.prototype[a];return function(){return Array.prototype.unshift.call(arguments,b),e.apply(this,arguments)}}),k=0;k<f.length;k++){var l=f[k];d.prototype[l]=j(l)}return d};var d=function(){this.listeners={}};d.prototype.on=function(a,b){this.listeners=this.listeners||{},a in this.listeners?this.listeners[a].push(b):this.listeners[a]=[b]},d.prototype.trigger=function(a){var b=Array.prototype.slice,c=b.call(arguments,1);this.listeners=this.listeners||{},null==c&&(c=[]),0===c.length&&c.push({}),c[0]._type=a,a in this.listeners&&this.invoke(this.listeners[a],b.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},d.prototype.invoke=function(a,b){for(var c=0,d=a.length;c<d;c++)a[c].apply(this,b)},c.Observable=d,c.generateChars=function(a){for(var b="",c=0;c<a;c++){b+=Math.floor(36*Math.random()).toString(36)}return b},c.bind=function(a,b){return function(){a.apply(b,arguments)}},c._convertData=function(a){for(var b in a){var c=b.split("-"),d=a;if(1!==c.length){for(var e=0;e<c.length;e++){var f=c[e];f=f.substring(0,1).toLowerCase()+f.substring(1),f in d||(d[f]={}),e==c.length-1&&(d[f]=a[b]),d=d[f]}delete a[b]}}return a},c.hasScroll=function(b,c){var d=a(c),e=c.style.overflowX,f=c.style.overflowY;return(e!==f||"hidden"!==f&&"visible"!==f)&&("scroll"===e||"scroll"===f||(d.innerHeight()<c.scrollHeight||d.innerWidth()<c.scrollWidth))},c.escapeMarkup=function(a){var b={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return"string"!=typeof a?a:String(a).replace(/[&<>"'\/\\]/g,function(a){return b[a]})},c.appendMany=function(b,c){if("1.7"===a.fn.jquery.substr(0,3)){var d=a();a.map(c,function(a){d=d.add(a)}),c=d}b.append(c)},c.__cache={};var e=0;return c.GetUniqueElementId=function(a){var b=a.getAttribute("data-select2-id");return null==b&&(a.id?(b=a.id,a.setAttribute("data-select2-id",b)):(a.setAttribute("data-select2-id",++e),b=e.toString())),b},c.StoreData=function(a,b,d){var e=c.GetUniqueElementId(a);c.__cache[e]||(c.__cache[e]={}),c.__cache[e][b]=d},c.GetData=function(b,d){var e=c.GetUniqueElementId(b);return d?c.__cache[e]&&null!=c.__cache[e][d]?c.__cache[e][d]:a(b).data(d):c.__cache[e]},c.RemoveData=function(a){var b=c.GetUniqueElementId(a);null!=c.__cache[b]&&delete c.__cache[b]},c}),b.define("select2/results",["jquery","./utils"],function(a,b){function c(a,b,d){this.$element=a,this.data=d,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<ul class="select2-results__options" role="tree"></ul>');return this.options.get("multiple")&&b.attr("aria-multiselectable","true"),this.$results=b,b},c.prototype.clear=function(){this.$results.empty()},c.prototype.displayMessage=function(b){var c=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var d=a('<li role="treeitem" aria-live="assertive" class="select2-results__option"></li>'),e=this.options.get("translations").get(b.message);d.append(c(e(b.args))),d[0].className+=" select2-results__message",this.$results.append(d)},c.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},c.prototype.append=function(a){this.hideLoading();var b=[];if(null==a.results||0===a.results.length)return void(0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"}));a.results=this.sort(a.results);for(var c=0;c<a.results.length;c++){var d=a.results[c],e=this.option(d);b.push(e)}this.$results.append(b)},c.prototype.position=function(a,b){b.find(".select2-results").append(a)},c.prototype.sort=function(a){return this.options.get("sorter")(a)},c.prototype.highlightFirstItem=function(){var a=this.$results.find(".select2-results__option[aria-selected]"),b=a.filter("[aria-selected=true]");b.length>0?b.first().trigger("mouseenter"):a.first().trigger("mouseenter"),this.ensureHighlightVisible()},c.prototype.setClasses=function(){var c=this;this.data.current(function(d){var e=a.map(d,function(a){return a.id.toString()});c.$results.find(".select2-results__option[aria-selected]").each(function(){var c=a(this),d=b.GetData(this,"data"),f=""+d.id;null!=d.element&&d.element.selected||null==d.element&&a.inArray(f,e)>-1?c.attr("aria-selected","true"):c.attr("aria-selected","false")})})},c.prototype.showLoading=function(a){this.hideLoading();var b=this.options.get("translations").get("searching"),c={disabled:!0,loading:!0,text:b(a)},d=this.option(c);d.className+=" loading-results",this.$results.prepend(d)},c.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},c.prototype.option=function(c){var d=document.createElement("li");d.className="select2-results__option";var e={role:"treeitem","aria-selected":"false"};c.disabled&&(delete e["aria-selected"],e["aria-disabled"]="true"),null==c.id&&delete e["aria-selected"],null!=c._resultId&&(d.id=c._resultId),c.title&&(d.title=c.title),c.children&&(e.role="group",e["aria-label"]=c.text,delete e["aria-selected"]);for(var f in e){var g=e[f];d.setAttribute(f,g)}if(c.children){var h=a(d),i=document.createElement("strong");i.className="select2-results__group";a(i);this.template(c,i);for(var j=[],k=0;k<c.children.length;k++){var l=c.children[k],m=this.option(l);j.push(m)}var n=a("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});n.append(j),h.append(i),h.append(n)}else this.template(c,d);return b.StoreData(d,"data",c),d},c.prototype.bind=function(c,d){var e=this,f=c.id+"-results";this.$results.attr("id",f),c.on("results:all",function(a){e.clear(),e.append(a.data),c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("results:append",function(a){e.append(a.data),c.isOpen()&&e.setClasses()}),c.on("query",function(a){e.hideMessages(),e.showLoading(a)}),c.on("select",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("unselect",function(){c.isOpen()&&(e.setClasses(),e.highlightFirstItem())}),c.on("open",function(){e.$results.attr("aria-expanded","true"),e.$results.attr("aria-hidden","false"),e.setClasses(),e.ensureHighlightVisible()}),c.on("close",function(){e.$results.attr("aria-expanded","false"),e.$results.attr("aria-hidden","true"),e.$results.removeAttr("aria-activedescendant")}),c.on("results:toggle",function(){var a=e.getHighlightedResults();0!==a.length&&a.trigger("mouseup")}),c.on("results:select",function(){var a=e.getHighlightedResults();if(0!==a.length){var c=b.GetData(a[0],"data");"true"==a.attr("aria-selected")?e.trigger("close",{}):e.trigger("select",{data:c})}}),c.on("results:previous",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a);if(!(c<=0)){var d=c-1;0===a.length&&(d=0);var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top,h=f.offset().top,i=e.$results.scrollTop()+(h-g);0===d?e.$results.scrollTop(0):h-g<0&&e.$results.scrollTop(i)}}),c.on("results:next",function(){var a=e.getHighlightedResults(),b=e.$results.find("[aria-selected]"),c=b.index(a),d=c+1;if(!(d>=b.length)){var f=b.eq(d);f.trigger("mouseenter");var g=e.$results.offset().top+e.$results.outerHeight(!1),h=f.offset().top+f.outerHeight(!1),i=e.$results.scrollTop()+h-g;0===d?e.$results.scrollTop(0):h>g&&e.$results.scrollTop(i)}}),c.on("results:focus",function(a){a.element.addClass("select2-results__option--highlighted")}),c.on("results:message",function(a){e.displayMessage(a)}),a.fn.mousewheel&&this.$results.on("mousewheel",function(a){var b=e.$results.scrollTop(),c=e.$results.get(0).scrollHeight-b+a.deltaY,d=a.deltaY>0&&b-a.deltaY<=0,f=a.deltaY<0&&c<=e.$results.height();d?(e.$results.scrollTop(0),a.preventDefault(),a.stopPropagation()):f&&(e.$results.scrollTop(e.$results.get(0).scrollHeight-e.$results.height()),a.preventDefault(),a.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(c){var d=a(this),f=b.GetData(this,"data");if("true"===d.attr("aria-selected"))return void(e.options.get("multiple")?e.trigger("unselect",{originalEvent:c,data:f}):e.trigger("close",{}));e.trigger("select",{originalEvent:c,data:f})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(c){var d=b.GetData(this,"data");e.getHighlightedResults().removeClass("select2-results__option--highlighted"),e.trigger("results:focus",{data:d,element:a(this)})})},c.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},c.prototype.destroy=function(){this.$results.remove()},c.prototype.ensureHighlightVisible=function(){var a=this.getHighlightedResults();if(0!==a.length){var b=this.$results.find("[aria-selected]"),c=b.index(a),d=this.$results.offset().top,e=a.offset().top,f=this.$results.scrollTop()+(e-d),g=e-d;f-=2*a.outerHeight(!1),c<=2?this.$results.scrollTop(0):(g>this.$results.outerHeight()||g<0)&&this.$results.scrollTop(f)}},c.prototype.template=function(b,c){var d=this.options.get("templateResult"),e=this.options.get("escapeMarkup"),f=d(b,c);null==f?c.style.display="none":"string"==typeof f?c.innerHTML=e(f):a(c).append(f)},c}),b.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),b.define("select2/selection/base",["jquery","../utils","../keys"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,b.Observable),d.prototype.render=function(){var c=a('<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=b.GetData(this.$element[0],"old-tabindex")?this._tabindex=b.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),c.attr("title",this.$element.attr("title")),c.attr("tabindex",this._tabindex),this.$selection=c,c},d.prototype.bind=function(a,b){var d=this,e=(a.id,a.id+"-results");this.container=a,this.$selection.on("focus",function(a){d.trigger("focus",a)}),this.$selection.on("blur",function(a){d._handleBlur(a)}),this.$selection.on("keydown",function(a){d.trigger("keypress",a),a.which===c.SPACE&&a.preventDefault()}),a.on("results:focus",function(a){d.$selection.attr("aria-activedescendant",a.data._resultId)}),a.on("selection:update",function(a){d.update(a.data)}),a.on("open",function(){d.$selection.attr("aria-expanded","true"),d.$selection.attr("aria-owns",e),d._attachCloseHandler(a)}),a.on("close",function(){d.$selection.attr("aria-expanded","fal
14259se"),d.$selection.removeAttr("aria-activedescendant"),d.$selection.removeAttr("aria-owns"),d.$selection.focus(),window.setTimeout(function(){d.$selection.focus()},0),d._detachCloseHandler(a)}),a.on("enable",function(){d.$selection.attr("tabindex",d._tabindex)}),a.on("disable",function(){d.$selection.attr("tabindex","-1")})},d.prototype._handleBlur=function(b){var c=this;window.setTimeout(function(){document.activeElement==c.$selection[0]||a.contains(c.$selection[0],document.activeElement)||c.trigger("blur",b)},1)},d.prototype._attachCloseHandler=function(c){a(document.body).on("mousedown.select2."+c.id,function(c){var d=a(c.target),e=d.closest(".select2");a(".select2.select2-container--open").each(function(){a(this),this!=e[0]&&b.GetData(this,"element").select2("close")})})},d.prototype._detachCloseHandler=function(b){a(document.body).off("mousedown.select2."+b.id)},d.prototype.position=function(a,b){b.find(".selection").append(a)},d.prototype.destroy=function(){this._detachCloseHandler(this.container)},d.prototype.update=function(a){throw new Error("The `update` method must be defined in child classes.")},d}),b.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(a,b,c,d){function e(){e.__super__.constructor.apply(this,arguments)}return c.Extend(e,b),e.prototype.render=function(){var a=e.__super__.render.call(this);return a.addClass("select2-selection--single"),a.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),a},e.prototype.bind=function(a,b){var c=this;e.__super__.bind.apply(this,arguments);var d=a.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",d).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",d),this.$selection.on("mousedown",function(a){1===a.which&&c.trigger("toggle",{originalEvent:a})}),this.$selection.on("focus",function(a){}),this.$selection.on("blur",function(a){}),a.on("focus",function(b){a.isOpen()||c.$selection.focus()})},e.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},e.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},e.prototype.selectionContainer=function(){return a("<span></span>")},e.prototype.update=function(a){if(0===a.length)return void this.clear();var b=a[0],c=this.$selection.find(".select2-selection__rendered"),d=this.display(b,c);c.empty().append(d),c.attr("title",b.title||b.text)},e}),b.define("select2/selection/multiple",["jquery","./base","../utils"],function(a,b,c){function d(a,b){d.__super__.constructor.apply(this,arguments)}return c.Extend(d,b),d.prototype.render=function(){var a=d.__super__.render.call(this);return a.addClass("select2-selection--multiple"),a.html('<ul class="select2-selection__rendered"></ul>'),a},d.prototype.bind=function(b,e){var f=this;d.__super__.bind.apply(this,arguments),this.$selection.on("click",function(a){f.trigger("toggle",{originalEvent:a})}),this.$selection.on("click",".select2-selection__choice__remove",function(b){if(!f.options.get("disabled")){var d=a(this),e=d.parent(),g=c.GetData(e[0],"data");f.trigger("unselect",{originalEvent:b,data:g})}})},d.prototype.clear=function(){var a=this.$selection.find(".select2-selection__rendered");a.empty(),a.removeAttr("title")},d.prototype.display=function(a,b){var c=this.options.get("templateSelection");return this.options.get("escapeMarkup")(c(a,b))},d.prototype.selectionContainer=function(){return a('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>')},d.prototype.update=function(a){if(this.clear(),0!==a.length){for(var b=[],d=0;d<a.length;d++){var e=a[d],f=this.selectionContainer(),g=this.display(e,f);f.append(g),f.attr("title",e.title||e.text),c.StoreData(f[0],"data",e),b.push(f)}var h=this.$selection.find(".select2-selection__rendered");c.appendMany(h,b)}},d}),b.define("select2/selection/placeholder",["../utils"],function(a){function b(a,b,c){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c)}return b.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},b.prototype.createPlaceholder=function(a,b){var c=this.selectionContainer();return c.html(this.display(b)),c.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),c},b.prototype.update=function(a,b){var c=1==b.length&&b[0].id!=this.placeholder.id;if(b.length>1||c)return a.call(this,b);this.clear();var d=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(d)},b}
vendor: 5,324 bytes, line 14259
14259),b.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(a,b,c){function d(){}return d.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(a){d._handleClear(a)}),b.on("keypress",function(a){d._handleKeyboardClear(a,b)})},d.prototype._handleClear=function(a,b){if(!this.options.get("disabled")){var d=this.$selection.find(".select2-selection__clear");if(0!==d.length){b.stopPropagation();var e=c.GetData(d[0],"data"),f=this.$element.val();this.$element.val(this.placeholder.id);var g={data:e};if(this.trigger("clear",g),g.prevented)return void this.$element.val(f);for(var h=0;h<e.length;h++)if(g={data:e[h]},this.trigger("unselect",g),g.prevented)return void this.$element.val(f);this.$element.trigger("change"),this.trigger("toggle",{})}}},d.prototype._handleKeyboardClear=function(a,c,d){d.isOpen()||c.which!=b.DELETE&&c.which!=b.BACKSPACE||this._handleClear(c)},d.prototype.update=function(b,d){if(b.call(this,d),!(this.$selection.find(".select2-selection__placeholder").length>0||0===d.length)){var e=a('<span class="select2-selection__clear">×</span>');c.StoreData(e[0],"data",d),this.$selection.find(".select2-selection__rendered").prepend(e)}},d}),b.define("select2/selection/search",["jquery","../utils","../keys"],function(a,b,c){function d(a,b,c){a.call(this,b,c)}return d.prototype.render=function(b){var c=a('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" aria-autocomplete="list" /></li>');this.$searchContainer=c,this.$search=c.find("input");var d=b.call(this);return this._transferTabIndex(),d},d.prototype.bind=function(a,d,e){var f=this;a.call(this,d,e),d.on("open",function(){f.$search.trigger("focus")}),d.on("close",function(){f.$search.val(""),f.$search.removeAttr("aria-activedescendant"),f.$search.trigger("focus")}),d.on("enable",function(){f.$search.prop("disabled",!1),f._transferTabIndex()}),d.on("disable",function(){f.$search.prop("disabled",!0)}),d.on("focus",function(a){f.$search.trigger("focus")}),d.on("results:focus",function(a){f.$search.attr("aria-activedescendant",a.id)}),this.$selection.on("focusin",".select2-search--inline",function(a){f.trigger("focus",a)}),this.$selection.on("focusout",".select2-search--inline",function(a){f._handleBlur(a)}),this.$selection.on("keydown",".select2-search--inline",function(a){if(a.stopPropagation(),f.trigger("keypress",a),f._keyUpPrevented=a.isDefaultPrevented(),a.which===c.BACKSPACE&&""===f.$search.val()){var d=f.$searchContainer.prev(".select2-selection__choice");if(d.length>0){var e=b.GetData(d[0],"data");f.searchRemoveChoice(e),a.preventDefault()}}});var g=document.documentMode,h=g&&g<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(a){if(h)return void f.$selection.off("input.search input.searchcheck");f.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(a){if(h&&"input"===a.type)return void f.$selection.off("input.search input.searchcheck");var b=a.which;b!=c.SHIFT&&b!=c.CTRL&&b!=c.ALT&&b!=c.TAB&&f.handleSearch(a)})},d.prototype._transferTabIndex=function(a){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},d.prototype.createPlaceholder=function(a,b){this.$search.attr("placeholder",b.text)},d.prototype.update=function(a,b){var c=this.$search[0]==document.activeElement;if(this.$search.attr("placeholder",""),a.call(this,b),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),c){this.$element.find("[data-select2-tag]").length?this.$element.focus():this.$search.focus()}},d.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var a=this.$search.val();this.trigger("query",{term:a})}this._keyUpPrevented=!1},d.prototype.searchRemoveChoice=function(a,b){this.trigger("unselect",{data:b}),this.$search.val(b.text),this.handleSearch()},d.prototype.resizeSearch=function(){this.$search.css("width","25px");var a="";if(""!==this.$search.attr("placeholder"))a=this.$selection.find(".select2-selection__rendered").innerWidth();else{a=.75*(this.$search.val().length+1)+"em"}this.$search.css("width",a)},d}),b.define("select2/selection/eventRelay",["jquery"],function(a){function b(){}return b.prototype.bind=function(b,c,d){var e=this,f=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],g=["opening","closing","selecting","unselecting","clearing"];b.call(this,c,d),c.on("*",function(b,c){if(-1!==a.inArray(b,f)){c=c||{};var d=a.Event("select2:"+b,{params:c});e.$element.trigger(d),-1!==a.inArray(b,g)&&(c.prevented=d.isDefaultPrevented())}})},b}),b.define("select2/translation",["jquery","require"],function(a,b){function c(a){this.dict=a||{}}return c.prototype.all=function(){return this.dict},c.prototype.get=function(a){return this.dict[a]},c.prototype.extend=function(b){this.dict=a.extend({}
14259,b.all(),this.dict)},c._cache={},c.loadPath=function(a){if(!(a in c._cache)){var d=b(a);c._cache[a]=d}return new c(c._cache[a])},c}),b.define("select2/diacritics",[],function(){return{"â¶":"A","A":"A","Ã":"A","Ã":"A","Ã":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ä":"A","Ä":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ç ":"A","Ã":"A","Ç":"A","Ả":"A","Ã
":"A","Ǻ":"A","Ç":"A","È":"A","È":"A","Ạ":"A","Ậ":"A","Ặ":"A","á¸":"A","Ä":"A","Ⱥ":"A","Ɐ":"A","ê²":"AA","Ã":"AE","Ǽ":"AE","Ç¢":"AE","ê´":"AO","ê¶":"AU","ê¸":"AV","êº":"AV","ê¼":"AY","â·":"B","ï¼¢":"B","á¸":"B","á¸":"B","á¸":"B","É":"B","Æ":"B","Æ":"B","â¸":"C","ï¼£":"C","Ä":"C","Ä":"C","Ä":"C","Ä":"C","Ã":"C","á¸":"C","Æ":"C","È»":"C","ê¾":"C","â¹":"D","D":"D","á¸":"D","Ä":"D","á¸":"D","á¸":"D","á¸":"D","á¸":"D","Ä":"D","Æ":"D","Æ":"D","Æ":"D","ê¹":"D","DZ":"DZ","Ç":"DZ","Dz":"Dz","Ç
":"Dz","âº":"E","ï¼¥":"E","Ã":"E","Ã":"E","Ã":"E","á»":"E","Ế":"E","á»":"E","á»":"E","Ẽ":"E","Ä":"E","á¸":"E","á¸":"E","Ä":"E","Ä":"E","Ã":"E","Ẻ":"E","Ä":"E","È":"E","È":"E","Ẹ":"E","á»":"E","Ȩ":"E","á¸":"E","Ä":"E","á¸":"E","á¸":"E","Æ":"E","Æ":"E","â»":"F","F":"F","á¸":"F","Æ":"F","ê»":"F","â¼":"G","ï¼§":"G","Ç´":"G","Ä":"G","Ḡ":"G","Ä":"G","Ä ":"G","Ǧ":"G","Ä¢":"G","Ǥ":"G","Æ":"G","ê ":"G","ê½":"G","ê¾":"G","â½":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","È":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","â±§":"H","â±µ":"H","ê":"H","â¾":"I","I":"I","Ã":"I","Ã":"I","Ã":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ã":"I","Ḯ":"I","á»":"I","Ç":"I","È":"I","È":"I","á»":"I","Ä®":"I","Ḭ":"I","Æ":"I","â¿":"J","J":"J","Ä´":"J","É":"J","â":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Æ":"K","Ⱪ":"K","ê":"K","ê":"K","ê":"K","ê¢":"K","â":"L","L":"L","Ä¿":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ä»":"L","Ḽ":"L","Ḻ":"L","Å":"L","Ƚ":"L","â±¢":"L","â± ":"L","ê":"L","ê":"L","ê":"L","Ç":"LJ","Ç":"Lj","â":"M","ï¼":"M","Ḿ":"M","á¹":"M","á¹":"M","â±®":"M","Æ":"M","â":"N","ï¼®":"N","Ǹ":"N","Å":"N","Ã":"N","á¹":"N","Å":"N","á¹":"N","Å
":"N","á¹":"N","á¹":"N","È ":"N","Æ":"N","ê":"N","ê¤":"N","Ç":"NJ","Ç":"Nj","â":"O","O":"O","Ã":"O","Ã":"O","Ã":"O","á»":"O","á»":"O","á»":"O","á»":"O","Ã":"O","á¹":"O","Ȭ":"O","á¹":"O","Å":"O","á¹":"O","á¹":"O","Å":"O","È®":"O","Ȱ":"O","Ã":"O","Ȫ":"O","á»":"O","Å":"O","Ç":"O","È":"O","È":"O","Æ ":"O","á»":"O","á»":"O","á» ":"O","á»":"O","Ợ":"O","á»":"O","á»":"O","Ǫ":"O","Ǭ":"O","Ã":"O","Ǿ":"O","Æ":"O","Æ":"O","ê":"O","ê":"O","Æ¢":"OI","ê":"OO","È¢":"OU","â
":"P","ï¼°":"P","á¹":"P","á¹":"P","Ƥ":"P","â±£":"P","ê":"P","ê":"P","ê":"P","â":"Q","ï¼±":"Q","ê":"Q","ê":"Q","É":"Q","â":"R","ï¼²":"R","Å":"R","á¹":"R","Å":"R","È":"R","È":"R","á¹":"R","á¹":"R","Å":"R","á¹":"R","É":"R","Ɽ":"R","ê":"R","ê¦":"R","ê":"R","â":"S","ï¼³":"S","áº":"S","Å":"S","Ṥ":"S","Å":"S","á¹ ":"S","Å ":"S","Ṧ":"S","á¹¢":"S","Ṩ":"S","È":"S","Å":"S","â±¾":"S","ê¨":"S","ê":"S","â":"T","ï¼´":"T","Ṫ":"T","Ť":"T","Ṭ":"T","È":"T","Å¢":"T","á¹°":"T","á¹®":"T","Ŧ":"T","Ƭ":"T","Æ®":"T","Ⱦ":"T","ê":"T","ê¨":"TZ","â":"U","ï¼µ":"U","Ã":"U","Ã":"U","Ã":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ã":"U","Ç":"U","Ç":"U","Ç":"U","Ç":"U","Ủ":"U","Å®":"U","Ű":"U","Ç":"U","È":"U","È":"U","Ư":"U","Ừ":"U","Ứ":"U","á»®":"U","Ử":"U","á»°":"U","Ụ":"U","á¹²":"U","Ų":"U","á¹¶":"U","á¹´":"U","É":"U","â":"V","ï¼¶":"V","á¹¼":"V","á¹¾":"V","Ʋ":"V","ê":"V","É
":"V","ê ":"VY","â":"W","ï¼·":"W","áº":"W","áº":"W","Å´":"W","áº":"W","áº":"W","áº":"W","â±²":"W","â":"X","X":"X","áº":"X","áº":"X","â":"Y","ï¼¹":"Y","Ỳ":"Y","Ã":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","áº":"Y","Ÿ":"Y","á»¶":"Y","á»´":"Y","Ƴ":"Y","É":"Y","Ỿ":"Y","â":"Z","Z":"Z","Ź":"Z","áº":"Z","Å»":"Z","Ž":"Z","áº":"Z","áº":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","ê¢":"Z","â":"a","ï½":"a","áº":"a","à ":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","Ä":"a","Ä":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","Ç¡":"a","ä":"a","Ç":"a","ả":"a","Ã¥":"a","Ç»":"a","Ç":"a","È":"a","È":"a","ạ":"a","áº":"a","ặ":"a","á¸":"a","Ä
":"a","â±¥":"a","É":"a","ê³":"aa","æ":"ae","ǽ":"ae","Ç£":"ae","êµ":"ao","ê·":"au","ê¹":"av","ê»":"av","ê½":"ay","â":"b","ï½":"b","á¸":"b","á¸
":"b","á¸":"b","Æ":"b","Æ":"b","É":"b","â":"c","ï½":"c","Ä":"
14259c","Ä":"c","Ä":"c","Ä":"c","ç":"c","á¸":"c","Æ":"c","ȼ":"c","ê¿":"c","â":"c","â":"d","ï½":"d","á¸":"d","Ä":"d","á¸":"d","á¸":"d","á¸":"d","á¸":"d","Ä":"d","Æ":"d","É":"d","É":"d","êº":"d","dz":"dz","Ç":"dz","â":"e","ï½
":"e","è":"e","é":"e","ê":"e","á»":"e","ế":"e","á»
":"e","á»":"e","ẽ":"e","Ä":"e","á¸":"e","á¸":"e","Ä":"e","Ä":"e","ë":"e","ẻ":"e","Ä":"e","È
":"e","È":"e","ẹ":"e","á»":"e","È©":"e","á¸":"e","Ä":"e","á¸":"e","á¸":"e","É":"e","É":"e","Ç":"e","â":"f","ï½":"f","á¸":"f","Æ":"f","ê¼":"f","â":"g","ï½":"g","ǵ":"g","Ä":"g","ḡ":"g","Ä":"g","Ä¡":"g","ǧ":"g","Ä£":"g","Ç¥":"g","É ":"g","ê¡":"g","áµ¹":"g","ê¿":"g","â":"h","ï½":"h","Ä¥":"h","ḣ":"h","ḧ":"h","È":"h","ḥ":"h","ḩ":"h","ḫ":"h","áº":"h","ħ":"h","ⱨ":"h","â±¶":"h","É¥":"h","Æ":"hv","â":"i","ï½":"i","ì":"i","Ã":"i","î":"i","Ä©":"i","Ä«":"i","Ä":"i","ï":"i","ḯ":"i","á»":"i","Ç":"i","È":"i","È":"i","á»":"i","į":"i","á¸":"i","ɨ":"i","ı":"i","â":"j","ï½":"j","ĵ":"j","ǰ":"j","É":"j","â":"k","ï½":"k","ḱ":"k","Ç©":"k","ḳ":"k","Ä·":"k","ḵ":"k","Æ":"k","ⱪ":"k","ê":"k","ê":"k","ê
":"k","ê£":"k","â":"l","ï½":"l","Å":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","Å¿":"l","Å":"l","Æ":"l","É«":"l","ⱡ":"l","ê":"l","ê":"l","ê":"l","Ç":"lj","â":"m","ï½":"m","ḿ":"m","á¹":"m","á¹":"m","ɱ":"m","ɯ":"m","â":"n","ï½":"n","ǹ":"n","Å":"n","ñ":"n","á¹
":"n","Å":"n","á¹":"n","Å":"n","á¹":"n","á¹":"n","Æ":"n","ɲ":"n","Å":"n","ê":"n","ê¥":"n","Ç":"nj","â":"o","ï½":"o","ò":"o","ó":"o","ô":"o","á»":"o","á»":"o","á»":"o","á»":"o","õ":"o","á¹":"o","È":"o","á¹":"o","Å":"o","á¹":"o","á¹":"o","Å":"o","ȯ":"o","ȱ":"o","ö":"o","È«":"o","á»":"o","Å":"o","Ç":"o","È":"o","È":"o","Æ¡":"o","á»":"o","á»":"o","ỡ":"o","á»":"o","ợ":"o","á»":"o","á»":"o","Ç«":"o","Ç":"o","ø":"o","Ç¿":"o","É":"o","ê":"o","ê":"o","ɵ":"o","Æ£":"oi","È£":"ou","ê":"oo","â":"p","ï½":"p","á¹":"p","á¹":"p","Æ¥":"p","áµ½":"p","ê":"p","ê":"p","ê":"p","â ":"q","ï½":"q","É":"q","ê":"q","ê":"q","â¡":"r","ï½":"r","Å":"r","á¹":"r","Å":"r","È":"r","È":"r","á¹":"r","á¹":"r","Å":"r","á¹":"r","É":"r","ɽ":"r","ê":"r","ê§":"r","ê":"r","â¢":"s","ï½":"s","Ã":"s","Å":"s","á¹¥":"s","Å":"s","ṡ":"s","Å¡":"s","á¹§":"s","á¹£":"s","ṩ":"s","È":"s","Å":"s","È¿":"s","ê©":"s","ê
":"s","áº":"s","â£":"t","ï½":"t","ṫ":"t","áº":"t","Å¥":"t","á¹":"t","È":"t","Å£":"t","á¹±":"t","ṯ":"t","ŧ":"t","Æ":"t","Ê":"t","ⱦ":"t","ê":"t","ê©":"tz","â¤":"u","ï½":"u","ù":"u","ú":"u","û":"u","Å©":"u","á¹¹":"u","Å«":"u","á¹»":"u","Å":"u","ü":"u","Ç":"u","Ç":"u","Ç":"u","Ç":"u","á»§":"u","ů":"u","ű":"u","Ç":"u","È":"u","È":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","á»":"u","á»±":"u","ụ":"u","á¹³":"u","ų":"u","á¹·":"u","á¹µ":"u","Ê":"u","â¥":"v","ï½":"v","á¹½":"v","ṿ":"v","Ê":"v","ê":"v","Ê":"v","ê¡":"vy","â¦":"w","ï½":"w","áº":"w","áº":"w","ŵ":"w","áº":"w","áº
":"w","áº":"w","áº":"w","â±³":"w","â§":"x","ï½":"x","áº":"x","áº":"x","â¨":"y","ï½":"y","ỳ":"y","ý":"y","Å·":"y","ỹ":"y","ȳ":"y","áº":"y","ÿ":"y","á»·":"y","áº":"y","ỵ":"y","Æ´":"y","É":"y","ỿ":"y","â©":"z","ï½":"z","ź":"z","áº":"z","ż":"z","ž":"z","áº":"z","áº":"z","ƶ":"z","È¥":"z","É":"z","ⱬ":"z","ê£":"z","Î":"Î","Î":"Î","Î":"Î","Î":"Î","Ϊ":"Î","Î":"Î","Î":"Î¥","Ϋ":"Î¥","Î":"Ω","ά":"α","Î":"ε","ή":"η","ί":"ι","Ï":"ι","Î":"ι","Ï":"ο","Ï":"Ï
","Ï":"Ï
","ΰ":"Ï
","Ï":"Ï","Ï":"Ï"}}),b.define("select2/data/base",["../utils"],function(a){function b(a,c){b.__super__.constructor.call(this)}return a.Extend(b,a.Observable),b.prototype.current=function(a){throw new Error("The `current` method must be defined in child classes.")},b.prototype.query=function(a,b){throw new Error("The `query` method must be defined in child classes.")},b.prototype.bind=function(a,b){},b.prototype.destroy=function(){},b.prototype.generateResultId=function(b,c){var d=b.id+"-result-";return d+=a.generateChars(4),null!=c.id?d+="-"+c.id.toString():d+="-"+a.generateChars(4),d},b}),b.define("select2/data/select",["./base","../utils","jquery"],function(a,b,c){function d(a,b){this.$element=a,this.options=b,d.__super__.constructor.call(this)}return b.Extend(d,a),d.prototype.current=function(a){var b=[],d=this;this.$element.find(":selected").each(function(){var a=c(this),e=d.item(a);b.push(e)}),a(b)},d.prototype.select=function(a){var b=this;if(a.selected=!0,c(a.element).is("option"))return a.element.selected=!0,void this.$element.trigger("change");if(this.$element.prop("multiple"))this.current(function(d){var e=[];a=[a],a.push.apply(a,d);for(var f=0;f<a.length;f++){var g=a[f].id;-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")});else{var d=a.id;this.$element.val(d),this.$element.trigger("change")}},d.prototype.unselect=function(a){var b=this;if(this.$element.prop("multiple")){if(a.selected=!1,c(a.element).is("option"))return a.element.selected=!1,void this.$element.trigger("change");this.current(function(d){for(var e=[],f=0;f<d.length;f++){var g=d[f].id;g!==a.id&&-1===c.inArray(g,e)&&e.push(g)}b.$element.val(e),b.$element.trigger("change")})}},d.prototype.bind=function(a,b){var c=this;this.container=a,a.on("select",function(a){c.select(a.data)}),a.on("unselect",function(a){c.unselect(a.data)})},d.prototype.destroy=function(){this.$element.find("*").each(function(){b.RemoveData(this)})},d.prototype.query=function(a,b){var d=[],e=this;this.$element.children().each(function(){var b=c(this);if(b.is("option")||b.is("optgroup")){var f=e.item(b),g=e.matches(a,f);null!==g&&d.push(g)}}),b({results:d})},d.prototype.addOptions=function(a){b.appendMany(this.$element,a)},d.prototype.option=function(a){var d;a.children?(d=document.createElement("optgroup"),d.label=a.text):(d=document.createElement("option"),void 0!==d.textContent?d.textContent=a.text:d.innerText=a.text),void 0!==a.id&&(d.value=a.id),a.disabled&&(d.disabled=!0),a.selected&&(
vendor: 14,697 bytes, line 14259
14259d.selected=!0),a.title&&(d.title=a.title);var e=c(d),f=this._normalizeItem(a);return f.element=d,b.StoreData(d,"data",f),e},d.prototype.item=function(a){var d={};if(null!=(d=b.GetData(a[0],"data")))return d;if(a.is("option"))d={id:a.val(),text:a.text(),disabled:a.prop("disabled"),selected:a.prop("selected"),title:a.prop("title")};else if(a.is("optgroup")){d={text:a.prop("label"),children:[],title:a.prop("title")};for(var e=a.children("option"),f=[],g=0;g<e.length;g++){var h=c(e[g]),i=this.item(h);f.push(i)}d.children=f}return d=this._normalizeItem(d),d.element=a[0],b.StoreData(a[0],"data",d),d},d.prototype._normalizeItem=function(a){a!==Object(a)&&(a={id:a,text:a}),a=c.extend({},{text:""},a);var b={selected:!1,disabled:!1};return null!=a.id&&(a.id=a.id.toString()),null!=a.text&&(a.text=a.text.toString()),null==a._resultId&&a.id&&null!=this.container&&(a._resultId=this.generateResultId(this.container,a)),c.extend({},b,a)},d.prototype.matches=function(a,b){return this.options.get("matcher")(a,b)},d}),b.define("select2/data/array",["./select","../utils","jquery"],function(a,b,c){function d(a,b){var c=b.get("data")||[];d.__super__.constructor.call(this,a,b),this.addOptions(this.convertToOptions(c))}return b.Extend(d,a),d.prototype.select=function(a){var b=this.$element.find("option").filter(function(b,c){return c.value==a.id.toString()});0===b.length&&(b=this.option(a),this.addOptions(b)),d.__super__.select.call(this,a)},d.prototype.convertToOptions=function(a){function d(a){return function(){return c(this).val()==a.id}}for(var e=this,f=this.$element.find("option"),g=f.map(function(){return e.item(c(this)).id}).get(),h=[],i=0;i<a.length;i++){var j=this._normalizeItem(a[i]);if(c.inArray(j.id,g)>=0){var k=f.filter(d(j)),l=this.item(k),m=c.extend(!0,{},j,l),n=this.option(m);k.replaceWith(n)}else{var o=this.option(j);if(j.children){var p=this.convertToOptions(j.children);b.appendMany(o,p)}h.push(o)}}return h},d}),b.define("select2/data/ajax",["./array","../utils","jquery"],function(a,b,c){function d(a,b){this.ajaxOptions=this._applyDefaults(b.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),d.__super__.constructor.call(this,a,b)}return b.Extend(d,a),d.prototype._applyDefaults=function(a){var b={data:function(a){return c.extend({},a,{q:a.term})},transport:function(a,b,d){var e=c.ajax(a);return e.then(b),e.fail(d),e}};return c.extend({},b,a,!0)},d.prototype.processResults=function(a){return a},d.prototype.query=function(a,b){function d(){var d=f.transport(f,function(d){var f=e.processResults(d,a);e.options.get("debug")&&window.console&&console.error&&(f&&f.results&&c.isArray(f.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),b(f)},function(){"status"in d&&(0===d.status||"0"===d.status)||e.trigger("results:message",{message:"errorLoading"})});e._request=d}var e=this;null!=this._request&&(c.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var f=c.extend({type:"GET"},this.ajaxOptions);"function"==typeof f.url&&(f.url=f.url.call(this.$element,a)),"function"==typeof f.data&&(f.data=f.data.call(this.$element,a)),this.ajaxOptions.delay&&null!=a.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(d,this.ajaxOptions.delay)):d()},d}),b.define("select2/data/tags",["jquery"],function(a){function b(b,c,d){var e=d.get("tags"),f=d.get("createTag");void 0!==f&&(this.createTag=f);var g=d.get("insertTag");if(void 0!==g&&(this.insertTag=g),b.call(this,c,d),a.isArray(e))for(var h=0;h<e.length;h++){var i=e[h],j=this._normalizeItem(i),k=this.option(j);this.$element.append(k)}}return b.prototype.query=function(a,b,c){function d(a,f){for(var g=a.results,h=0;h<g.length;h++){var i=g[h],j=null!=i.children&&!d({results:i.children},!0);if((i.text||"").toUpperCase()===(b.term||"").toUpperCase()||j)return!f&&(a.data=g,void c(a))}if(f)return!0;var k=e.createTag(b);if(null!=k){var l=e.option(k);l.attr("data-select2-tag",!0),e.addOptions([l]),e.insertTag(g,k)}a.results=g,c(a)}var e=this;if(this._removeOldTags(),null==b.term||null!=b.page)return void a.call(this,b,c);a.call(this,b,d)},b.prototype.createTag=function(b,c){var d=a.trim(c.term);return""===d?null:{id:d,text:d}},b.prototype.insertTag=function(a,b,c){b.unshift(c)},b.prototype._removeOldTags=function(b){this._lastTag;this.$element.find("option[data-select2-tag]").each(function(){this.selected||a(this).remove()})},b}),b.define("select2/data/tokenizer",["jquery"],function(a){function b(a,b,c){var d=c.get("tokenizer");void 0!==d&&(this.tokenizer=d),a.call(this,b,c)}return b.prototype.bind=function(a,b,c){a.call(this,b,c),this.$search=b.dropdown.$search||b.selection.$search||c.find(".select2-search__field")},b.prototype.query=function(b,c,d){function e(b){var c=g._normalizeItem(b);if(!g.$element.find("option").filter(function(){return a(this).val()===c.id}).length){var d=g.option(c);d.attr("data-select2-tag",!0),g._removeOldTags(),g.addOptions([d])}f(c)}function f(a){g.trigger("select",{data:a})}var g=this;c.term=c.term||"";var h=this.tokenizer(c,this.options,e);h.term!==c.term&&(this.$search.length&&(this.$search.val(h.term),this.$search.focus()),c.term=h.term),b.call(this,c,d)},b.prototype.tokenizer=function(b,c,d,e){for(var f=d.get("tokenSeparators")||[],g=c.term,h=0,i=this.createTag||function(a){return{id:a.term,text:a.term}};h<g.length;){var j=g[h];if(-1!==a.inArray(j,f)){var k=g.substr(0,h),l=a.extend({},c,{term:k}),m=i(l);null!=m?(e(m),g=g.substr(h+1)||"",h=0):h++}else h++}return{term:g}},b}),b.define("select2/data/minimumInputLength",[],function(){function a(a,b,c){this.minimumInputLength=c.get("minimumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",b.term.length<this.minimumInputLength)return void this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumInputLength",[],function(){function a(a,b,c){this.maximumInputLength=c.get("maximumInputLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){if(b.term=b.term||"",this.maximumInputLength>0&&b.term.length>this.maximumInputLength)return void this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:b.term,params:b}});a.call(this,b,c)},a}),b.define("select2/data/maximumSelectionLength",[],function(){function a(a,b,c){this.maximumSelectionLength=c.get("maximumSelectionLength"),a.call(this,b,c)}return a.prototype.query=function(a,b,c){var d=this;this.current(function(e){var f=null!=e?e.length:0;if(d.maximumSelectionLength>0&&f>=d.maximumSelectionLength)return void d.trigger("results:message",{message:"maximumSelected",args:{maximum:d.maximumSelectionLength}});a.call(d,b,c)})},a}),b.define("select2/dropdown",["jquery","./utils"],function(a,b){function c(a,b){this.$element=a,this.options=b,c.__super__.constructor.call(this)}return b.Extend(c,b.Observable),c.prototype.render=function(){var b=a('<span class="select2-dropdown"><span class="select2-results"></span></span>');return b.attr("dir",this.options.get("dir")),this.$dropdown=b,b},c.prototype.bind=function(){},c.prototype.position=function(a,b){},c.prototype.destroy=function(){this.$dropdown.remove()},c}),b.define("select2/dropdown/search",["jquery","../utils"],function(a,b){function c(){}return c.prototype.render=function(b){var c=b.call(this),d=a('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="textbox" /></span>');return this.$searchContainer=d,this.$search=d.find("input"),c.prepend(d),c},c.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),this.$search.on("keydown",function(a){e.trigger("keypress",a),e._keyUpPrevented=a.isDefaultPrevented()}),this.$search.on("input",function(b){a(this).off("keyup")}),this.$search.on("keyup input",function(a){e.handleSearch(a)}),c.on("open",function(){e.$search.attr("tabindex",0),e.$search.focus(),window.setTimeout(function(){e.$search.focus()},0)}),c.on("close",function(){e.$search.attr("tabindex",-1),e.$search.val(""),e.$search.blur()}),c.on("focus",function(){c.isOpen()||e.$search.focus()}),c.on("results:all",function(a){if(null==a.query.term||""===a.query.term){e.showSearch(a)?e.$searchContainer.removeClass("select2-search--hide"):e.$searchContainer.addClass("select2-search--hide")}})},c.prototype.handleSearch=function(a){if(!this._keyUpPrevented){var b=this.$search.val();this.trigger("query",{term:b})}this._keyUpPrevented=!1},c.prototype.showSearch=function(a,b){return!0},c}),b.define("select2/dropdown/hidePlaceholder",[],function(){function a(a,b,c,d){this.placeholder=this.normalizePlaceholder(c.get("placeholder")),a.call(this,b,c,d)}return a.prototype.append=function(a,b){b.results=this.removePlaceholder(b.results),a.call(this,b)},a.prototype.normalizePlaceholder=function(a,b){return"string"==typeof b&&(b={id:"",text:b}),b},a.prototype.removePlaceholder=function(a,b){for(var c=b.slice(0),d=b.length-1;d>=0;d--){var e=b[d];this.placeholder.id===e.id&&c.splice(d,1)}return c},a}),b.define("select2/dropdown/infiniteScroll",["jquery"],function(a){function b(a,b,c,d){this.lastParams={},a.call(this,b,c,d),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return b.prototype.append=function(a,b){this.$loadingMore.remove(),this.loading=!1,a.call(this,b),this.showLoadingMore(b)&&this.$results.append(this.$loadingMore)},b.prototype.bind=function(b,c,d){var e=this;b.call(this,c,d),c.on("query",function(a){e.lastParams=a,e.loading=!0}),c.on("query:append",function(a){e.lastParams=a,e.loading=!0}),this.$results.on("scroll",function(){var b=a.contains(document.documentElement,e.$loadingMore[0]);if(!e.loading&&b){e.$results.offset().top+e.$results.outerHeight(!1)+50>=e.$loadingMore.offset().top+e.$loadingMore.outerHeight(!1)&&e.loadMore()}})},b.prototype.loadMore=function(){this.loading=!0;var b=a.extend({},{page:1},this.lastParams);b.page++,this.trigger("query:append",b)},b.prototype.showLoadingMore=function(a,b){return b.pagination&&b.pagination.more},b.prototype.createLoadingMore=function(){var b=a('<li class="select2-results__option select2-results__option--load-more"role="treeitem" aria-disabled="true"></li>'),c=this.options.get("translations").get("loadingMore");return b.html(c(this.lastParams)),b},b}),b.define("select2/dropdown/attachBody",["jquery","../utils"],function(a,b){function c(b,c,d){this.$dropdownParent=d.get("dropdownParent")||a(document.body),b.call(this,c,d)}return c.prototype.bind=function(a,b,c){var d=this,e=!1;a.call(this,b,c),b.on("open",function(){d._showDropdown(),d._attachPositioningHandler(b),e||(e=!0,b.on("results:all",function(){d._positionDropdown(),d._resizeDropdown()}),b.on("results:append",function(){d._positionDropdown(),d._resizeDropdown()}))}),b.on("close",function(){d._hideDropdown(),d._detachPositioningHandler(b)}),this.$dropdownContainer.on("mousedown",function(a){a.stopPropagation()})},c.prototype.destroy=function(a){a.call(this),this.$dropdownContainer.remove()},c.prototype.position=function(a,b,c){b.attr("class",c.attr("class")),b.removeClass("select2"),b.addClass("select2-container--open"),b.css({position:"absolute",top:-999999}),this.$container=c},c.prototype.render=function(b){var c=a("<span></span>"),d=b.call(this);return c.append(d),this.$dropdownContainer=c,c},c.prototype._hideDropdown=function(a){this.$dropdownContainer.detach()},c.prototype._attachPositioningHandler=function(c,d){var e=this,f="scroll.select2."+d.id,g="resize.select2."+d.id,h="orientationchange.select2."+d.id,i=this.$container.parents().filter(b.hasScroll);i.each(function(){b.StoreData(this,"select2-scroll-position",{x:a(this).scrollLeft(),y:a(this).scrollTop()})}),i.on(f,function(c){var d=b.GetData(this,"select2-scroll-position");a(this).scrollTop(d.y)}),a(window).on(f+" "+g+" "+h,function(a){e._positionDropdown(),e._resizeDropdown()})},c.prototype._detachPositioningHandler=function(c,d){var e="scroll.select2."+d.id,f="resize.select2."+d.id,g="orientationchange.select2."+d.id;this.$container.parents().filter(b.hasScroll).off(e),a(window).off(e+" "+f+" "+g)},c.prototype._positionDropdown=function(){var b=a(window),c=this.$dropdown.hasClass("select2-dropdown--above"),d=this.$dropdown.hasClass("select2-dropdown--below"),e=null,f=this.$container.offset();f.bottom=f.top+this.$container.outerHeight(!1);var g={height:this.$container.outerHeight(!1)};g.top=f.top,g.bottom=f.top+g.height;var h={height:this.$dropdown.outerHeight(!1)},i={top:b.scrollTop(),bottom:b.scrollTop()+b.height()},j=i.top<f.top-h.height,k=i.bottom>f.bottom+h.height,l={left:f.left,top:g.bottom},m=this.$dropdownParent;"static"===m.css("position")&&(m=m.offsetParent());var n=m.offset();l.top-=n.top,l.left-=n.left,c||d||(e="below"),k||!j||c?!j&&k&&c&&(e="below"):e="above",("above"==e||c&&"below"!==e)&&(l.top=g.top-n.top-h.height),null!=e&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+e),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+e)),this.$dropdownContainer.css(l)},c.prototype._resizeDropdown=function(){var a={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(a.minWidth=a.width,a.position="relative",a.width="auto"),this.$dropdown.css(a)},c.prototype._showDropdown=function(a){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},c}),b.define("select2/dropdown/minimumResultsForSearch",[],function(){function a(b){for(var c=0,d=0;d<b.length;d++){var e=b[d];e.children?c+=a(e.children):c++}return c}function b(a,b,c,d){this.minimumResultsForSearch=c.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),a.call(this,b,c,d)}return b.prototype.showSearch=function(b,c){return!(a(c.data.results)<this.minimumResultsForSearch)&&b.call(this,c)},b}),b.define("select2/dropdown/selectOnClose",["../utils"],function(a){function b(){}return b.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("close",function(a){d._handleSelectOnClose(a)})},b.prototype._handleSelectOnClose=function(b,c){if(c&&null!=c.originalSelect2Event){var d=c.originalSelect2Event;if("select"===d._type||"unselect"===d._type)return}var e=this.getHighlightedResults();if(!(e.length<1)){var f=a.GetData(e[0],"data");null!=f.element&&f.element.selected||null==f.element&&f.selected||this.trigger("select",{data:f})}},b
vendor: 5,277 bytes, line 14259
14259}),b.define("select2/dropdown/closeOnSelect",[],function(){function a(){}return a.prototype.bind=function(a,b,c){var d=this;a.call(this,b,c),b.on("select",function(a){d._selectTriggered(a)}),b.on("unselect",function(a){d._selectTriggered(a)})},a.prototype._selectTriggered=function(a,b){var c=b.originalEvent;c&&c.ctrlKey||this.trigger("close",{originalEvent:c,originalSelect2Event:b})},a}),b.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(a){var b=a.input.length-a.maximum,c="Please delete "+b+" character";return 1!=b&&(c+="s"),c},inputTooShort:function(a){return"Please enter "+(a.minimum-a.input.length)+" or more characters"},loadingMore:function(){return"Loading more resultsâ¦"},maximumSelected:function(a){var b="You can only select "+a.maximum+" item";return 1!=a.maximum&&(b+="s"),b},noResults:function(){return"No results found"},searching:function(){return"Searchingâ¦"}}}),b.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C){function D(){this.reset()}return D.prototype.apply=function(l){if(l=a.extend(!0,{},this.defaults,l),null==l.dataAdapter){if(null!=l.ajax?l.dataAdapter=o:null!=l.data?l.dataAdapter=n:l.dataAdapter=m,l.minimumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,r)),l.maximumInputLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,s)),l.maximumSelectionLength>0&&(l.dataAdapter=j.Decorate(l.dataAdapter,t)),l.tags&&(l.dataAdapter=j.Decorate(l.dataAdapter,p)),null==l.tokenSeparators&&null==l.tokenizer||(l.dataAdapter=j.Decorate(l.dataAdapter,q)),null!=l.query){var C=b(l.amdBase+"compat/query");l.dataAdapter=j.Decorate(l.dataAdapter,C)}if(null!=l.initSelection){var D=b(l.amdBase+"compat/initSelection");l.dataAdapter=j.Decorate(l.dataAdapter,D)}}if(null==l.resultsAdapter&&(l.resultsAdapter=c,null!=l.ajax&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,x)),null!=l.placeholder&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,w)),l.selectOnClose&&(l.resultsAdapter=j.Decorate(l.resultsAdapter,A))),null==l.dropdownAdapter){if(l.multiple)l.dropdownAdapter=u;else{var E=j.Decorate(u,v);l.dropdownAdapter=E}if(0!==l.minimumResultsForSearch&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,z)),l.closeOnSelect&&(l.dropdownAdapter=j.Decorate(l.dropdownAdapter,B)),null!=l.dropdownCssClass||null!=l.dropdownCss||null!=l.adaptDropdownCssClass){var F=b(l.amdBase+"compat/dropdownCss");l.dropdownAdapter=j.Decorate(l.dropdownAdapter,F)}l.dropdownAdapter=j.Decorate(l.dropdownAdapter,y)}if(null==l.selectionAdapter){if(l.multiple?l.selectionAdapter=e:l.selectionAdapter=d,null!=l.placeholder&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,f)),l.allowClear&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,g)),l.multiple&&(l.selectionAdapter=j.Decorate(l.selectionAdapter,h)),null!=l.containerCssClass||null!=l.containerCss||null!=l.adaptContainerCssClass){var G=b(l.amdBase+"compat/containerCss");l.selectionAdapter=j.Decorate(l.selectionAdapter,G)}l.selectionAdapter=j.Decorate(l.selectionAdapter,i)}if("string"==typeof l.language)if(l.language.indexOf("-")>0){var H=l.language.split("-"),I=H[0];l.language=[l.language,I]}else l.language=[l.language];if(a.isArray(l.language)){var J=new k;l.language.push("en");for(var K=l.language,L=0;L<K.length;L++){var M=K[L],N={};try{N=k.loadPath(M)}catch(a){try{M=this.defaults.amdLanguageBase+M,N=k.loadPath(M)}catch(a){l.debug&&window.console&&console.warn&&console.warn('Select2: The language file for "'+M+'" could not be automatically loaded. A fallback will be used instead.');continue}}J.extend(N)}l.translations=J}else{var O=k.loadPath(this.defaults.amdLanguageBase+"en"),P=new k(l.language);P.extend(O),l.translations=P}return l},D.prototype.reset=function(){function b(a){function b(a){return l[a]||a}return a.replace(/[^\u0000-\u007E]/g,b)}function c(d,e){if(""===a.trim(d.term))return e;if(e.children&&e.children.length>0){for(var f=a.extend(!0,{},e),g=e.children.length-1;g>=0;g--){null==c(d,e.children[g])&&f.children.splice(g,1)}return f.children.length>0?f:c(d,f)}var h=b(e.text).toUpperCase(),i=b(d.term).toUpperCase();return h.indexOf(i)>-1?e:null}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:j.escapeMarkup,language:C,matcher:c,minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,sorter:function(a){return a},templateResult:function(a){return a.text},templateSelection:function(a){return a.text},theme:"default",width:"resolve"}},D.prototype.set=function(b,c){var d=a.camelCase(b),e={};e[d]=c;var f=j._convertData(e);a.extend(
vendor: 8,696 bytes, line 14259
14259!0,this.defaults,f)},new D}),b.define("select2/options",["require","jquery","./defaults","./utils"],function(a,b,c,d){function e(b,e){if(this.options=b,null!=e&&this.fromElement(e),this.options=c.apply(this.options),e&&e.is("input")){var f=a(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=d.Decorate(this.options.dataAdapter,f)}}return e.prototype.fromElement=function(a){var c=["select2"];null==this.options.multiple&&(this.options.multiple=a.prop("multiple")),null==this.options.disabled&&(this.options.disabled=a.prop("disabled")),null==this.options.language&&(a.prop("lang")?this.options.language=a.prop("lang").toLowerCase():a.closest("[lang]").prop("lang")&&(this.options.language=a.closest("[lang]").prop("lang"))),null==this.options.dir&&(a.prop("dir")?this.options.dir=a.prop("dir"):a.closest("[dir]").prop("dir")?this.options.dir=a.closest("[dir]").prop("dir"):this.options.dir="ltr"),a.prop("disabled",this.options.disabled),a.prop("multiple",this.options.multiple),d.GetData(a[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),d.StoreData(a[0],"data",d.GetData(a[0],"select2Tags")),d.StoreData(a[0],"tags",!0)),d.GetData(a[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),a.attr("ajax--url",d.GetData(a[0],"ajaxUrl")),d.StoreData(a[0],"ajax-Url",d.GetData(a[0],"ajaxUrl")));var e={};e=b.fn.jquery&&"1."==b.fn.jquery.substr(0,2)&&a[0].dataset?b.extend(!0,{},a[0].dataset,d.GetData(a[0])):d.GetData(a[0]);var f=b.extend(!0,{},e);f=d._convertData(f);for(var g in f)b.inArray(g,c)>-1||(b.isPlainObject(this.options[g])?b.extend(this.options[g],f[g]):this.options[g]=f[g]);return this},e.prototype.get=function(a){return this.options[a]},e.prototype.set=function(a,b){this.options[a]=b},e}),b.define("select2/core",["jquery","./options","./utils","./keys"],function(a,b,c,d){var e=function(a,d){null!=c.GetData(a[0],"select2")&&c.GetData(a[0],"select2").destroy(),this.$element=a,this.id=this._generateId(a),d=d||{},this.options=new b(d,a),e.__super__.constructor.call(this);var f=a.attr("tabindex")||0;c.StoreData(a[0],"old-tabindex",f),a.attr("tabindex","-1");var g=this.options.get("dataAdapter");this.dataAdapter=new g(a,this.options);var h=this.render();this._placeContainer(h);var i=this.options.get("selectionAdapter");this.selection=new i(a,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,h);var j=this.options.get("dropdownAdapter");this.dropdown=new j(a,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,h);var k=this.options.get("resultsAdapter");this.results=new k(a,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(a){l.trigger("selection:update",{data:a})}),a.addClass("select2-hidden-accessible"),a.attr("aria-hidden","true"),this._syncAttributes(),c.StoreData(a[0],"select2",this),a.data("select2",this)};return c.Extend(e,c.Observable),e.prototype._generateId=function(a){var b="";return b=null!=a.attr("id")?a.attr("id"):null!=a.attr("name")?a.attr("name")+"-"+c.generateChars(2):c.generateChars(4),b=b.replace(/(:|\.|\[|\]|,)/g,""),b="select2-"+b},e.prototype._placeContainer=function(a){a.insertAfter(this.$element);var b=this._resolveWidth(this.$element,this.options.get("width"));null!=b&&a.css("width",b)},e.prototype._resolveWidth=function(a,b){var c=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==b){var d=this._resolveWidth(a,"style");return null!=d?d:this._resolveWidth(a,"element")}if("element"==b){var e=a.outerWidth(!1);return e<=0?"auto":e+"px"}if("style"==b){var f=a.attr("style");if("string"!=typeof f)return null;for(var g=f.split(";"),h=0,i=g.length;h<i;h+=1){var j=g[h].replace(/\s/g,""),k=j.match(c);if(null!==k&&k.length>=1)return k[1]}return null}return b},e.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},e.prototype._registerDomEvents=function(){var b=this;this.$element.on("change.select2",function(){b.dataAdapter.current(function(a){b.trigger("selection:update",{data:a})})}),this.$element.on("focus.select2",function(a){b.trigger("focus",a)}),this._syncA=c.bind(this._syncAttributes,this),this._syncS=c.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var d=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=d?(this._observer=new d(function(c){a.each(c,b._syncA),a.each(c,b._syncS)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",b._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",b._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",b._syncS,!1))},e.prototype._registerDataEvents=function(){var a=this;this.dataAdapter.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerSelectionEvents=function(){var b=this,c=["toggle","focus"];this.selection.on("toggle",function(){b.toggleDropdown()}),this.selection.on("focus",function(a){b.focus(a)}),this.selection.on("*",function(d,e){-1===a.inArray(d,c)&&b.trigger(d,e)})},e.prototype._registerDropdownEvents=function(){var a=this;this.dropdown.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerResultsEvents=function(){var a=this;this.results.on("*",function(b,c){a.trigger(b,c)})},e.prototype._registerEvents=function(){var a=this;this.on("open",function(){a.$container.addClass("select2-container--open")}),this.on("close",function(){a.$container.removeClass("select2-container--open")}),this.on("enable",function(){a.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){a.$container.addClass("select2-container--disabled")}),this.on("blur",function(){a.$container.removeClass("select2-container--focus")}),this.on("query",function(b){a.isOpen()||a.trigger("open",{}),this.dataAdapter.query(b,function(c){a.trigger("results:all",{data:c,query:b})})}),this.on("query:append",function(b){this.dataAdapter.query(b,function(c){a.trigger("results:append",{data:c,query:b})})}),this.on("keypress",function(b){var c=b.which;a.isOpen()?c===d.ESC||c===d.TAB||c===d.UP&&b.altKey?(a.close(),b.preventDefault()):c===d.ENTER?(a.trigger("results:select",{}),b.preventDefault()):c===d.SPACE&&b.ctrlKey?(a.trigger("results:toggle",{}),b.preventDefault()):c===d.UP?(a.trigger("results:previous",{}),b.preventDefault()):c===d.DOWN&&(a.trigger("results:next",{}),b.preventDefault()):(c===d.ENTER||c===d.SPACE||c===d.DOWN&&b.altKey)&&(a.open(),b.preventDefault())})},e.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.options.get("disabled")?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},e.prototype._syncSubtree=function(a,b){var c=!1,d=this;if(!a||!a.target||"OPTION"===a.target.nodeName||"OPTGROUP"===a.target.nodeName){if(b)if(b.addedNodes&&b.addedNodes.length>0)for(var e=0;e<b.addedNodes.length;e++){var f=b.addedNodes[e];f.selected&&(c=!0)}else b.removedNodes&&b.removedNodes.length>0&&(c=!0);else c=!0;c&&this.dataAdapter.current(function(a){d.trigger("selection:update",{data:a})})}},e.prototype.trigger=function(a,b){var c=e.__super__.trigger,d={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===b&&(b={}),a in d){var f=d[a],g={prevented:!1,name:a,args:b};if(c.call(this,f,g),g.prevented)return void(b.prevented=!0)}c.call(this,a,b)},e.prototype.toggleDropdown=function(){this.options.get("disabled")||(this.isOpen()?this.close():this.open())},e.prototype.open=function(){this.isOpen()||this.trigger("query",{})},e.prototype.close=function(){this.isOpen()&&this.trigger("close",{})},e.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},e.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")}
vendor: 4,212 bytes, line 14259
14259,e.prototype.focus=function(a){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},e.prototype.enable=function(a){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=a&&0!==a.length||(a=[!0]);var b=!a[0];this.$element.prop("disabled",b)},e.prototype.data=function(){this.options.get("debug")&&arguments.length>0&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var a=[];return this.dataAdapter.current(function(b){a=b}),a},e.prototype.val=function(b){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==b||0===b.length)return this.$element.val();var c=b[0];a.isArray(c)&&(c=a.map(c,function(a){return a.toString()})),this.$element.val(c).trigger("change")},e.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",c.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),c.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},e.prototype.render=function(){var b=a('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return b.attr("dir",this.options.get("dir")),this.$container=b,this.$container.addClass("select2-container--"+this.options.get("theme")),c.StoreData(b[0],"element",this.$element),b},e}),b.define("select2/compat/utils",["jquery"],function(a){function b(b,c,d){var e,f,g=[];e=a.trim(b.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0===this.indexOf("select2-")&&g.push(this)})),e=a.trim(c.attr("class")),e&&(e=""+e,a(e.split(/\s+/)).each(function(){0!==this.indexOf("select2-")&&null!=(f=d(this))&&g.push(f)})),b.attr("class",g.join(" "))}return{syncCssClasses:b}}),b.define("select2/compat/containerCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("containerCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptContainerCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("containerCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/dropdownCss",["jquery","./utils"],function(a,b){function c(a){return null}function d(){}return d.prototype.render=function(d){var e=d.call(this),f=this.options.get("dropdownCssClass")||"";a.isFunction(f)&&(f=f(this.$element));var g=this.options.get("adaptDropdownCssClass");if(g=g||c,-1!==f.indexOf(":all:")){f=f.replace(":all:","");var h=g;g=function(a){var b=h(a);return null!=b?b+" "+a:a}}var i=this.options.get("dropdownCss")||{};return a.isFunction(i)&&(i=i(this.$element)),b.syncCssClasses(e,this.$element,g),e.css(i),e.addClass(f),e},d}),b.define("select2/compat/initSelection",["jquery"],function(a){function b(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `initSelection` option has been deprecated
14259in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2"),this.initSelection=c.get("initSelection"),this._isInitialized=!1,a.call(this,b,c)}return b.prototype.current=function(b,c){var d=this;if(this._isInitialized)return void b.call(this,c);this.initSelection.call(null,this.$element,function(b){d._isInitialized=!0,a.isArray(b)||(b=[b]),c(b)})},b}),b.define("select2/compat/inputData",["jquery","../utils"],function(a,b){function c(a,b,c){this._currentData=[],this._valueSeparator=c.get("valueSeparator")||",","hidden"===b.prop("type")&&c.get("debug")&&console&&console.warn&&console.warn("Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead."),a.call(this,b,c)}return c.prototype.current=function(b,c){function d(b,c){var e=[];return b.selected||-1!==a.inArray(b.id,c)?(b.selected=!0,e.push(b)):b.selected=!1,b.children&&e.push.apply(e,d(b.children,c)),e}for(var e=[],f=0;f<this._currentData.length;f++){var g=this._currentData[f];e.push.apply(e,d(g,this.$element.val().split(this._valueSeparator)))}c(e)},c.prototype.select=function(b,c){if(this.options.get("multiple")){var d=this.$element.val();d+=this._valueSeparator+c.id,this.$element.val(d),this.$element.trigger("change")}else this.current(function(b){a.map(b,function(a){a.selected=!1})}),this.$element.val(c.id),this.$element.trigger("change")},c.prototype.unselect=function(a,b){var c=this;b.selected=!1,this.current(function(a){for(var d=[],e=0;e<a.length;e++){var f=a[e];b.id!=f.id&&d.push(f.id)}c.$element.val(d.join(c._valueSeparator)),c.$element.trigger("change")})},c.prototype.query=function(a,b,c){for(var d=[],e=0;e<this._currentData.length;e++){var f=this._currentData[e],g=this.matches(b,f);null!==g&&d.push(g)}c({results:d})},c.prototype.addOptions=function(c,d){var e=a.map(d,function(a){return b.GetData(a[0],"data")});this._currentData.push.apply(this._currentData,e)},c}),b.define("select2/compat/matcher",["jquery"],function(a){function b(b){function c(c,d){var e=a.extend(!0,{},d);if(null==c.term||""===a.trim(c.term))return e;if(d.children){for(var f=d.children.length-1;f>=0;f--){var g=d.children[f];b(c.term,g.text,g)||e.children.splice(f,1)}if(e.children.length>0)return e}return b(c.term,d.text,d)?e:null}return c}return b}),b.define("select2/compat/query",[],function(){function a(a,b,c){c.get("debug")&&window.console&&console.warn&&console.warn("Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2."),a.call(this,b,c)}return a.prototype.query=function(a,b,c){b.callback=c,this.options.get("query").call(null,b)},a}),b.define("select2/dropdown/attachContainer",[],function(){function a(a,b,c){a.call(this,b,c)}return a.prototype.position=function(a,b,c){c.find(".dropdown-wrapper").append(b),b.addClass("select2-dropdown--below"),c.addClass("select2-container--below")},a}),b.define("select2/dropdown/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$dropdown.on(d.join(" "),function(a){a.stopPropagation()})},a}),b.define("select2/selection/stopPropagation",[],function(){function a(){}return a.prototype.bind=function(a,b,c){a.call(this,b,c);var d=["blur","change","click","dblclick","focus","focusin","focusout","input","keydown","keyup","keypress","mousedown","mouseenter","mouseleave","mousemove","mouseover","mouseup","search","touchend","touchstart"];this.$selection.on(d.join(" "),function(a){a.stopPropagation()})},a}),function(c){"function"==typeof b.define&&b.define.amd?b.define("jquery-mousewheel",["jquery"],c):"object"==typeof exports?module.exports=c:c(a)}(function(a){function b(b){var g=b||window.event,h=i.call(arguments,1
vendor: 4,326 bytes, lines 14259-14272
14259),j=0,l=0,m=0,n=0,o=0,p=0;if(b=a.event.fix(g),b.type="mousewheel","detail"in g&&(m=-1*g.detail),"wheelDelta"in g&&(m=g.wheelDelta),"wheelDeltaY"in g&&(m=g.wheelDeltaY),"wheelDeltaX"in g&&(l=-1*g.wheelDeltaX),"axis"in g&&g.axis===g.HORIZONTAL_AXIS&&(l=-1*m,m=0),j=0===m?l:m,"deltaY"in g&&(m=-1*g.deltaY,j=m),"deltaX"in g&&(l=g.deltaX,0===m&&(j=-1*l)),0!==m||0!==l){if(1===g.deltaMode){var q=a.data(this,"mousewheel-line-height");j*=q,m*=q,l*=q}else if(2===g.deltaMode){var r=a.data(this,"mousewheel-page-height");j*=r,m*=r,l*=r}if(n=Math.max(Math.abs(m),Math.abs(l)),(!f||n<f)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120==0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}),b.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(a,b,c,d,e){if(null==a.fn.select2){var f=["open","close","destroy"];a.fn.select2=function(b){if("object"==typeof(b=b||{}))return this.each(function(){var d=a.extend(!0,{},b);new c(a(this),d)}),this;if("string"==typeof b){var d,g=Array.prototype.slice.call(arguments,1);return this.each(function(){var a=e.GetData(this,"select2");null==a&&window.console&&console.error&&console.error("The select2('"+b+"') method was called on an element that is not using Select2."),d=a[b].apply(a,g)}),a.inArray(b,f)>-1?this:d}throw new Error("Invalid arguments for Select2: "+b)}}return null==a.fn.select2.defaults&&(a.fn.select2.defaults=d),c}),{define:b.define,require:b.require}}(),c=b.require("jquery.select2");return a.fn.select2.amd=b,c});; 14260/*! Select2 4.0.6-rc.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ 14261 14262(function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nháºp Ãt hÆ¡n "+t+" ký tá»±";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nháºp nhiá»u hÆ¡n "+t+" ký tá»±";return n},loadingMore:function(){return"Äang lấy thêm kết quảâ¦"},maximumSelected:function(e){var t="Chá» có thá» chá»n ÄÆ°á»£c "+e.maximum+" lá»±a chá»n";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Äang tìmâ¦"}}}),{define:e.define,require:e.require}})();; 14263/** 14264 * app.ResourceLoader can be used to load scripts when needed. 14265 * It ensures that every script is only loaded once. 14266 */ 14267var app = app || {}; 14268(function ($) { 14269 14270 /* UrlStates enum */ 14271 var UrlStates = { 14272 LOADING: 'LOADING',
14273 LOADED: 'LOADED', 14274 FAILED: 'FAILED' 14275 }; 14276 14277 /* UrlInfo class */ 14278 function UrlInfo() { 14279 this.state = UrlStates.LOADING; 14280 this.loadCallbacks = []; 14281 this.failCallbacks = []; 14282 } 14283 14284 UrlInfo.prototype.succeed = function () { 14285 this.state = UrlStates.LOADED; 14286 for (var i = 0; i < this.loadCallbacks.length; i++) { 14287 this.loadCallbacks[i](); 14288 } 14289 }; 14290 14291 UrlInfo.prototype.failed = function () { 14292 this.state = UrlStates.FAILED; 14293 for (var i = 0; i < this.failCallbacks.length; i++) { 14294 this.failCallbacks[i](); 14295 } 14296 }; 14297 14298 UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { 14299 switch (this.state) { 14300 case UrlStates.LOADED: 14301 loadCallback && loadCallback(); 14302 break; 14303 case UrlStates.FAILED: 14304 failCallback && failCallback(); 14305 break; 14306 case UrlStates.LOADING: 14307 this.addCallbacks(loadCallback, failCallback); 14308 break; 14309 } 14310 }; 14311 14312 UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { 14313 loadCallback && this.loadCallbacks.push(loadCallback); 14314 failCallback && this.failCallbacks.push(failCallback); 14315 }; 14316 14317 /* ResourceLoader API */ 14318 14319 app.ResourceLoader = (function () { 14320 14321 var _urlInfos = {}; 14322 14323 var _loadScript = function (url, loadCallback, failCallback) { 14324 14325 var urlInfo = _urlInfos[url]; 14326 14327 if (urlInfo) { 14328 urlInfo.handleCallbacks(loadCallback, failCallback); 14329 return; 14330 } 14331 14332 _urlInfos[url] = urlInfo = new UrlInfo(); 14333 urlInfo.addCallbacks(loadCallback, failCallback); 14334 14335 $.getScript(url) 14336 .done(function (script, textStatus) { 14337 urlInfo.succeed(); 14338 }) 14339 .fail(function (jqxhr, settings, exception) { 14340 urlInfo.failed(); 14341 }); 14342 }; 14343 14344 return { 14345 loadScript: _loadScript 14346 } 14347 })(); 14348 14349})(jQuery);; 14350var app = app || {}; 14351 14352(function ($) { 14353 14354 app.modals = app.modals || {}; 14355 14356 app.ModalManager = (function () { 14357 14358 var _normalizeOptions = function (options) { 14359 if (!options.modalId) { 14360 options.modalId = 'Modal_' + (Math.floor((Math.random() * 1000000))) + new Date().getTime(); 14361 } 14362 } 14363 14364 function _removeContainer(modalId) { 14365 var _containerId = modalId + 'Container'; 14366 var _containerSelector = '#' + _containerId; 14367 14368 var $container = $(_containerSelector); 14369 if ($container.length) { 14370 $container.remove(); 14371 } 14372 } 14373 14374 function _createContainer(modalId, options) { 14375 _removeContainer(modalId); 14376 14377 var _modalSize = "modal-lg"; 14378 if (options.modalSize != null) _modalSize = options.modalSize; 14379 var _containerId = modalId + 'Container'; 14380 return $('<div id="' + _containerId + '"></div>') 14381 .append( 14382 '<div id="' + modalId + '" class="modal fade modal-js" tabindex="-1" role="modal" aria-hidden="true">' + 14383 ' <div class="modal-dialog ' + _modalSize + '">' + 14384 ' <div class="modal-content"></div>' + 14385 ' </div>' + 14386 '</div>' 14387 ).appendTo($('#fix').length > 0 ? '#fix' : 'body'); 14388 } 14389 14390 return function (options) { 14391 14392 _normalizeOptions(options); 14393 14394 var _options = options; 14395 var _$modal = null; 14396 var _modalId = options.modalId; 14397 var _modalSelector = '#' + _modalId; 14398 var _modalObject = null; 14399 14400 var _publicApi = null; 14401 var _args = null; 14402 var _getResultCallback = null; 14403 14404 var _onCloseCallbacks = []; 14405 var _onOpenCallBacks = []; 14406 14407 function _saveModal() { 14408 if (_modalObject && _modalObject.save) { 14409 _modalObject.save(); 14410 } 14411 } 14412 14413 function _initAndShowModal() { 14414 _$modal = $(_modalSelector); 14415 14416 if (options.modalBackdrop) { 14417 _$modal.modal(); 14418 } 14419 else { 14420 _$modal.modal({ 14421 backdrop: 'static' 14422 }); 14423 } 14424 14425 //pp custom 14426 _$modal.css({ 14427 display: 'flex', 14428 alignItems: 'center' 14429 }); 14430 14431 if (typeof options.modalStyle === 'object') { 14432 _$modal.css(options.modalStyle); 14433 } 14434 14435 _$modal.on('hidden.bs.modal', function () { 14436 _removeContainer(_modalId); 14437 14438 for (var i = 0; i < _onCloseCallbacks.length; i++) { 14439 _onCloseCallbacks[i]();
14440 } 14441 }); 14442 14443 _$modal.on('shown.bs.modal', function () { 14444 if (_onOpenCallBacks.length) { 14445 for (var i = 0; i < _onOpenCallBacks.length; i++) { 14446 _onOpenCallBacks[i](); 14447 } 14448 } 14449 else if (_$modal.find('input.first-focus:visible, textarea.first-focus:visible').length) { 14450 _$modal.find('input.first-focus:visible, textarea.first-focus:visible').first().focus(); 14451 } 14452 else _$modal.find('input:not([type=hidden]):first').focus(); 14453 }); 14454 14455 14456 var modalClass = app.modals[options.modalClass]; 14457 if (modalClass) { 14458 _modalObject = new modalClass(); 14459 if (_modalObject.init) { 14460 _modalObject.init(_publicApi, _args); 14461 } 14462 } 14463 14464 _$modal.find('.save-button').click(function () { 14465 _saveModal(); 14466 }); 14467 14468 _$modal.find('.modal-body').keydown(function (e) { 14469 if (e.which === 13) { 14470 if (e.target.tagName.toLocaleLowerCase() === "textarea") { 14471 e.stopPropagation(); 14472 } else { 14473 e.preventDefault(); 14474 _saveModal(); 14475 } 14476 14477 } 14478 }); 14479 14480 _$modal.modal('show'); 14481 } 14482 14483 var _open = function (args, getResultCallback) { 14484 14485 _args = args || {}; 14486 _getResultCallback = getResultCallback; 14487 14488 loaddingByEinvoice(true); 14489 14490 _createContainer(_modalId, _options) 14491 .find('.modal-content') 14492 .load(options.viewUrl, _args, function (response, status, xhr) { 14493 loaddingByEinvoice(false); 14494 14495 if (status == "error") { 14496 $.notify({ message: xhr.statusText }, { type: "warning" }); 14497 return; 14498 }; 14499 14500 try { 14501 var mess = JSON.parse(response); 14502 app.notifyMessage(mess); 14503 return; 14504 } catch { } 14505 14506 if (options.scriptUrl) { 14507 app.ResourceLoader.loadScript(options.scriptUrl, function () { 14508 _initAndShowModal(); 14509 }); 14510 } else { 14511 _initAndShowModal(); 14512 } 14513 }); 14514 }; 14515 14516 var _close = function () { 14517 if (!_$modal) { 14518 return; 14519 } 14520 14521 _$modal.modal('hide'); 14522 }; 14523 14524 var _onClose = function (onCloseCallback) { 14525 _onCloseCallbacks.push(onCloseCallback); 14526 }; 14527 14528 var _onOpen = function (onOpenCallback) { 14529 _onOpenCallBacks.push(onOpenCallback); 14530 } 14531 14532 function _setBusy(isBusy) { 14533 if (!_$modal) { 14534 return; 14535 } 14536 14537 _$modal.find('.modal-footer button').buttonBusy(isBusy); 14538 } 14539 14540 _publicApi = { 14541 open: _open, 14542 14543 reopen: function () { 14544 _open(_args); 14545 }, 14546 14547 close: _close, 14548 14549 getModalId: function () { 14550 return _modalId; 14551 }, 14552 14553 getModal: function () { 14554 return _$modal; 14555 }, 14556 14557 getArgs: function () { 14558 return _args; 14559 }, 14560 14561 getOptions: function () { 14562 return _options; 14563 }, 14564 14565 setBusy: _setBusy, 14566 14567 setResult: function () { 14568 _getResultCallback && _getResultCallback.apply(_publicApi, arguments); 14569 }, 14570 14571 onClose: _onClose, 14572 14573 onOpen: _onOpen 14574 }; 14575 14576 return _publicApi; 14577 }; 14578 })(); 14579 14580})(jQuery);; 14581$(document).ready(function () { 14582 //Khá»i tạo validate cho form 14583 $('#formgr').bootstrapValidator({ 14584 excluded: ':disabled' 14585 14586 //feedbackIcons: { 14587 // valid: 'glyphicon glyphicon-ok', 14588 // invalid: 'glyphicon glyphicon-remove', 14589 // validating: 'glyphicon glyphicon-refresh' 14590 //} 14591 });
vendor: 20,656 bytes, lines 14592-14642
14592 $('#loginForm').bootstrapValidator({ 14593 excluded: ':disabled' 14594 14595 }); 14596 //closeAlert(); 14597 //hiá»n thi tooltip 14598 $('#sidebar-toggle').tooltip(); 14599 $('#ctKhoiTao').tooltip(); 14600 $('#ctQuanLy').tooltip(); 14601 $('#ctPhatHanh').tooltip(); 14602 $('#ctXacThuc').tooltip(); 14603 $('#ctLapHoaDon').tooltip(); 14604 $('#createRow').tooltip(); 14605 $('#hidenSearch').tooltip(); 14606 //ANHVT UPDATE 14607 $("#showModal").tooltip(); 14608 14609 $('.delete').tooltip(); 14610 14611 $(".alert").hover(function () { 14612 $(".alert").clearQueue(); 14613 14614 $(".alert").stop(); 14615 }); 14616 $(".alert").mouseout(function () { 14617 $(".alert").delay(5000).fadeTo(100, 100).slideUp(function () { 14618 $(".alert").remove(); 14619 }); 14620 }); 14621 14622}); 14623 14624function closeAlert() { 14625 var content = $(".alert a").prev().text(); 14626 if (!content.includes('"Äóng"')) { 14627 $(".alert").delay(5000).fadeTo(1000, 500).slideUp(function () { 14628 $(".alert").remove(); 14629 }); 14630 } 14631} 14632 14633$.curCSS = function (element, attrib, val) { 14634 $(element).css(attrib, val); 14635} 14636 14637$(document).off('keyup', '.oUni').on('keyup', '.oUni', function (e) { 14638 var value = $(this).val(); 14639 value = value.replace(/[^ -~|\n|â¬]/mg, ""); 14640 $(this).val(value); 14641}); 14642!function(t,e){"use strict";if("undefined"!=typeof module&&module.exports){var n="undefined"!=typeof process,o=n&&"electron"in process.versions;o?t.BootstrapDialog=e(t.jQuery):module.exports=e(require("jquery"),require("bootstrap"))}else"function"==typeof define&&define.amd?define("bootstrap-dialog",["jquery","bootstrap"],function(t){return e(t)}):t.BootstrapDialog=e(t.jQuery)}(this,function(t){"use strict";var e=t.fn.modal.Constructor,n=function(t,n){e.call(this,t,n)};n.getModalVersion=function(){var e=null;return e="undefined"==typeof t.fn.modal.Constructor.VERSION?"v3.1":/3\.2\.\d+/.test(t.fn.modal.Constructor.VERSION)?"v3.2":/3\.3\.[1,2]/.test(t.fn.modal.Constructor.VERSION)?"v3.3":"v3.3.4"},n.ORIGINAL_BODY_PADDING=parseInt(t("body").css("padding-right")||0,10),n.METHODS_TO_OVERRIDE={},n.METHODS_TO_OVERRIDE["v3.1"]={},n.METHODS_TO_OVERRIDE["v3.2"]={hide:function(e){if(e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()){this.isShown=!1;var n=this.getGlobalOpenedDialogs();0===n.length&&this.$body.removeClass("modal-open"),this.resetScrollbar(),this.escape(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal()}}},n.METHODS_TO_OVERRIDE["v3.3"]={setScrollbar:function(){var t=n.ORIGINAL_BODY_PADDING;this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},resetScrollbar:function(){var t=this.getGlobalOpenedDialogs();0===t.length&&this.$body.css("padding-right",n.ORIGINAL_BODY_PADDING)},hideModal:function(){this.$element.hide(),this.backdrop(t.proxy(function(){var t=this.getGlobalOpenedDialogs();0===t.length&&this.$body.removeClass("modal-open"),this.resetAdjustments(),this.resetScrollbar(),this.$element.trigger("hidden.bs.modal")},this))}},n.METHODS_TO_OVERRIDE["v3.3.4"]=t.extend({},n.METHODS_TO_OVERRIDE["v3.3"]),n.prototype={constructor:n,getGlobalOpenedDialogs:function(){var e=[];return t.each(o.dialogs,function(t,n){n.isRealized()&&n.isOpened()&&e.push(n)}),e}},n.prototype=t.extend(n.prototype,e.prototype,n.METHODS_TO_OVERRIDE[n.getModalVersion()]);var o=function(e){this.defaultOptions=t.extend(!0,{id:o.newGuid(),buttons:[],data:{},onshow:null,onshown:null,onhide:null,onhidden:null},o.defaultOptions),this.indexedButtons={},this.registeredButtonHotkeys={},this.draggableData={isMouseDown:!1,mouseOffset:{}},this.realized=!1,this.opened=!1,this.initOptions(e),this.holdThisInstance()};return o.BootstrapDialogModal=n,o.NAMESPACE="bootstrap-dialog",o.TYPE_DEFAULT="type-default",o.TYPE_INFO="type-info",o.TYPE_PRIMARY="type-primary",o.TYPE_SUCCESS="type-success",o.TYPE_WARNING="type-warning",o.TYPE_DANGER="type-danger",o.DEFAULT_TEXTS={},o.DEFAULT_TEXTS[o.TYPE_DEFAULT]="Information",o.DEFAULT_TEXTS[o.TYPE_INFO]="Information",o.DEFAULT_TEXTS[o.TYPE_PRIMARY]="Information",o.DEFAULT_TEXTS[o.TYPE_SUCCESS]="Success",o.DEFAULT_TEXTS[o.TYPE_WARNING]="Warning",o.DEFAULT_TEXTS[o.TYPE_DANGER]="Danger",o.DEFAULT_TEXTS.OK="OK",o.DEFAULT_TEXTS.CANCEL="Cancel",o.DEFAULT_TEXTS.CONFIRM="Confirmation",o.SIZE_NORMAL="size-normal",o.SIZE_SMALL="size-small",o.SIZE_WIDE="size-wide",o.SIZE_LARGE="size-large",o.BUTTON_SIZES={},o.BUTTON_SIZES[o.SIZE_NORMAL]="",o.BUTTON_SIZES[o.SIZE_SMALL]="",o.BUTTON_SIZES[o.SIZE_WIDE]="",o.BUTTON_SIZES[o.SIZE_LARGE]="btn-lg",o.ICON_SPINNER="glyphicon glyphicon-asterisk",o.defaultOptions={type:o.TYPE_PRIMARY,size:o.SIZE_NORMAL,cssClass:"",title:null,message:null,nl2br:!0,closable:!0,closeByBackdrop:!0,closeByKeyboard:!0,spinicon:o.ICON_SPINNER,autodestroy:!0,draggable:!1,animate:!0,description:"",tabindex:-1},o.configDefaultOptions=function(e){o.defaultOptions=t.extend(!0,o.defaultOptions,e)},o.dialogs={},o.openAll=function(){t.each(o.dialogs,function(t,e){e.open()})},o.closeAll=function(){t.each(o.dialogs,function(t,e){e.close()})},o.getDialog=function(t){var e=null;return"undefined"!=typeof o.dialogs[t]&&(e=o.dialogs[t]),e},o.setDialog=function(t){return o.dialogs[t.getId()]=t,t},o.addDialog=function(t){return o.setDialog(t)},o.moveFocus=function(){var e=null;t.each(o.dialogs,function(t,n){e=n}),null!==e&&e.isRealized()&&e.getModal().focus()},o.METHODS_TO_OVERRIDE={},o.METHODS_TO_OVERRIDE["v3.1"]={handleModalBackdropEvent:function(){return this.getModal().on("click",{dialog:this},function(t){t.target===this&&t.data.dialog.isClosable()&&t.data.dialog.canCloseByBackdrop()&&t.data.dialog.close()}),this},updateZIndex:function(){var e=1040,n=1050,i=0;t.each(o.dialogs,function(t,e){i++});var s=this.getModal(),a=s.data("bs.modal").$backdrop;return s.css("z-index",n+20*(i-1)),a.css("z-index",e+20*(i-1)),this},open:function(){return!this.isRealized()&&this.realize(),this.getModal().modal("show"),this.updateZIndex(),this}},o.METHODS_TO_OVERRIDE["v3.2"]={handleModalBackdropEvent:o.METHODS_TO_OVERRIDE["v3.1"].handleModalBackdropEvent,updateZIndex:o.METHODS_TO_OVERRIDE["v3.1"].updateZIndex,open:o.METHODS_TO_OVERRIDE["v3.1"].open},o.METHODS_TO_OVERRIDE["v3.3"]={},o.METHODS_TO_OVERRIDE["v3.3.4"]=t.extend({},o.METHODS_TO_OVERRIDE["v3.1"]),o.prototype={constructor:o,initOptions:function(e){return this.options=t.extend(!0,this.defaultOptions,e),this},holdThisInstance:function(){return o.addDialog(this),this},initModalStuff:function(){return this.setModal(this.createModal()).setModalDialog(this.createModalDialog()).setModalContent(this.createModalContent()).setModalHeader(this.createModalHeader()).setModalBody(this.createModalBody()).setModalFooter(this.createModalFooter()),this.getModal().append(this.getModalDialog()),this.getModalDialog().append(this.getModalContent()),this.getModalContent().append(this.getModalHeader()).append(this.getModalBody()).append(this.getModalFooter()),this},createModal:function(){var e=t('<div class="modal" role="dialog" aria-hidden="true"></div>');return e.prop("id",this.getId()),e.attr("aria-labelledby",this.getId()+"_title"),e},getModal:function(){return this.$modal},setModal:function(t){return this.$modal=t,this},createModalDialog:function(){return t('<div class="modal-dialog"></div>')},getModalDialog:function(){return this.$modalDialog},setModalDialog:function(t){return this.$modalDialog=t,this},createModalContent:function(){return t('<div class="modal-content"></div>')},getModalContent:function(){return this.$modalContent},setModalContent:function(t){return this.$modalContent=t,this},createModalHeader:function(){return t('<div class="modal-header"></div>')},getModalHeader:function(){return this.$modalHeader},setModalHeader:function(t){return this.$modalHeader=t,this},createModalBody:function(){return t('<div class="modal-body"></div>')},getModalBody:function(){return this.$modalBody},setModalBody:function(t){return this.$modalBody=t,this},createModalFooter:function(){return t('<div class="modal-footer"></div>')},getModalFooter:function(){return this.$modalFooter},setModalFooter:function(t){return this.$modalFooter=t,this},createDynamicContent:function(t){var e=null;return e="function"==typeof t?t.call(t,this):t,"string"==typeof e&&(e=this.formatStringContent(e)),e},formatStringContent:function(t){return this.options.nl2br?t.replace(/\r\n/g,"<br />").replace(/[\r\n]/g,"<br />"):t},setData:function(t,e){return this.options.data[t]=e,this},getData:function(t){return this.options.data[t]},setId:function(t){return this.options.id=t,this},getId:function(){return this.options.id},getType:function(){return this.options.type},setType:function(t){return this.options.type=t,this.updateType(),this},updateType:function(){if(this.isRealized()){var t=[o.TYPE_DEFAULT,o.TYPE_INFO,o.TYPE_PRIMARY,o.TYPE_SUCCESS,o.TYPE_WARNING,o.TYPE_DANGER];this.getModal().removeClass(t.join(" ")).addClass(this.getType())}return this},getSize:function(){return this.options.size},setSize:function(t){return this.options.size=t,this.updateSize(),this},updateSize:function(){if(this.isRealized()){var e=this;this.getModal().removeClass(o.SIZE_NORMAL).removeClass(o.SIZE_SMALL).removeClass(o.SIZE_WIDE).removeClass(o.SIZE_LARGE),this.getModal().addClass(this.getSize()),this.getModalDialog().removeClass("modal-sm"),this.getSize()===o.SIZE_SMALL&&this.getModalDialog().addClass("modal-sm"),this.getModalDialog().removeClass("modal-lg"),this.getSize()===o.SIZE_WIDE&&this.getModalDialog().addClass("modal-lg"),t.each(this.options.buttons,function(n,o){var i=e.getButton(o.id),s=["btn-lg","btn-sm","btn-xs"],a=!1;if("string"==typeof o.cssClass){var d=o.cssClass.split(" ");t.each(d,function(e,n){-1!==t.inArray(n,s)&&(a=!0)})}a||(i.removeClass(s.join(" ")),i.addClass(e.getButtonSize()))})}return this},getCssClass:function(){return this.options.cssClass},setCssClass:function(t){return this.options.cssClass=t,this},getTitle:function(){return this.options.title},setTitle:function(t){return this.options.title=t,this.updateTitle(),this},updateTitle:function(){if(this.isRealized()){var t=null!==this.getTitle()?this.createDynamicContent(this.getTitle()):this.getDefaultText();this.getModalHeader().find("."+this.getNamespace("title")).html("").append(t).prop("id",this.getId()+"_title")}return this},getMessage:function(){return this.options.message},setMessage:function(t){return this.options.message=t,this.updateMessage(),this},updateMessage:function(){if(this.isRealized()){var t=this.createDynamicContent(this.getMessage());this.getModalBody().find("."+this.getNamespace("message")).html("").append(t)}return this},isClosable:function(){return this.options.closable},setClosable:function(t){return this.options.closable=t,this.updateClosable(),this},setCloseByBackdrop:function(t){return this.options.closeByBackdrop=t,this},canCloseByBackdrop:function(){return this.options.closeByBackdrop},setCloseByKeyboard:function(t){return this.options.closeByKeyboard=t,this},canCloseByKeyboard:function(){return this.options.closeByKeyboard},isAnimate:function(){return this.options.animate},setAnimate:function(t){return this.options.animate=t,this},updateAnimate:function(){return this.isRealized()&&this.getModal().toggleClass("fade",this.isAnimate()),this},getSpinicon:function(){return this.options.spinicon},setSpinicon:function(t){return this.options.spinicon=t,this},addButton:function(t){return this.options.buttons.push(t),this},addButtons:function(e){var n=this;return t.each(e,function(t,e){n.addButton(e)}),this},getButtons:function(){return this.options.buttons},setButtons:function(t){return this.options.buttons=t,this.updateButtons(),this},getButton:function(t){return"undefined"!=typeof this.indexedButtons[t]?this.indexedButtons[t]:null},getButtonSize:function(){return"undefined"!=typeof o.BUTTON_SIZES[this.getSize()]?o.BUTTON_SIZES[this.getSize()]:""},updateButtons:function(){return this.isRealized()&&(0===this.getButtons().length?this.getModalFooter().hide():this.getModalFooter().show().find("."+this.getNamespace("footer")).html("").append(this.createFooterButtons())),this},isAutodestroy:function(){return this.options.autodestroy},setAutodestroy:function(t){this.options.autodestroy=t},getDescription:function(){return this.options.description},setDescription:function(t){return this.options.description=t,this},setTabindex:function(t){return this.options.tabindex=t,this},getTabindex:function(){return this.options.tabindex},updateTabindex:function(){return this.isRealized()&&this.getModal().attr("tabindex",this.getTabindex()),this},getDefaultText:function(){return o.DEFAULT_TEXTS[this.getType()]},getNamespace:function(t){return o.NAMESPACE+"-"+t},createHeaderContent:function(){var e=t("<div></div>");return e.addClass(this.getNamespace("header")),e.append(this.createTitleContent()),e.prepend(this.createCloseButton()),e},createTitleContent:function(){var e=t("<div></div>");return e.addClass(this.getNamespace("title")),e},createCloseButton:function(){var e=t("<div></div>");e.addClass(this.getNamespace("close-button"));var n=t('<button class="close">×</button>');return e.append(n),e.on("click",{dialog:this},function(t){t.data.dialog.close()}),e},createBodyContent:function(){var e=t("<div></div>");return e.addClass(this.getNamespace("body")),e.append(this.createMessageContent()),e},createMessageContent:function(){var e=t("<div></div>");return e.addClass(this.getNamespace("message")),e},createFooterContent:function(){var e=t("<div></div>");return e.addClass(this.getNamespace("footer")),e},createFooterButtons:function(){var e=this,n=t("<div></div>");return n.addClass(this.getNamespace("footer-buttons")),this.indexedButtons={},t.each(this.options.buttons,function(t,i){i.id||(i.id=o.newGuid());var s=e.createButton(i);e.indexedButtons[i.id]=s,n.append(s)}),n},createButton:function(e){var n=t('<button class="btn"></button>');return n.prop("id",e.id),n.data("button",e),"undefined"!=typeof e.icon&&""!==t.trim(e.icon)&&n.append(this.createButtonIcon(e.icon)),"undefined"!=typeof e.label&&n.append(e.label),n.addClass("undefined"!=typeof e.cssClass&&""!==t.trim(e.cssClass)?e.cssClass:"btn-default"),"undefined"!=typeof e.hotkey&&(this.registeredButtonHotkeys[e.hotkey]=n),n.on("click",{dialog:this,$button:n,button:e},function(t){var e=t.data.dialog,n=t.data.$button,o=n.data("button");"function"==typeof o.action&&o.action.call(n,e,t),o.autospin&&n.toggleSpin(!0)}),this.enhanceButton(n),"undefined"!=typeof e.enabled&&n.toggleEnable(e.enabled),n},enhanceButton:function(t){return t.dialog=this,t.toggleEnable=function(t){var e=this;return"undefined"!=typeof t?e.prop("disabled",!t).toggleClass("disabled",!t):e.prop("disabled",!e.prop("disabled")),e},t.enable=function(){var t=this;return t.toggleEnable(!0),t},t.disable=function(){var t=this;return t.toggleEnable(!1),t},t.toggleSpin=function(e){var n=this,o=n.dialog,i=n.find("."+o.getNamespace("button-icon"));return"undefined"==typeof e&&(e=!(t.find(".icon-spin").length>0)),e?(i.hide(),t.prepend(o.createButtonIcon(o.getSpinicon()).addClass("icon-spin"))):(i.show(),t.find(".icon-spin").remove()),n},t.spin=function(){var t=this;return t.toggleSpin(!0),t},t.stopSpin=function(){var t=this;return t.toggleSpin(!1),t},this},createButtonIcon:function(e){var n=t("<span></span>");return n.addClass(this.getNamespace("button-icon")).addClass(e),n},enableButtons:function(e){return t.each(this.indexedButtons,function(t,n){n.toggleEnable(e)}),this},updateClosable:function(){return this.isRealized()&&this.getModalHeader().find("."+this.getNamespace("close-button")).toggle(this.isClosable()),this},onShow:function(t){return this.options.onshow=t,this},onShown:function(t){return this.options.onshown=t,this},onHide:function(t){return this.options.onhide=t,this},onHidden:function(t){return this.options.onhidden=t,this},isRealized:function(){return this.realized},setRealized:function(t){return this.realized=t,this},isOpened:function(){return this.opened},setOpened:function(t){return this.opened=t,this},handleModalEvents:function(){return this.getModal().on("show.bs.modal",{dialog:this},function(t){var e=t.data.dialog;if(e.setOpened(!0),e.isModalEvent(t)&&"function"==typeof e.options.onshow){var n=e.options.onshow(e);return n===!1&&e.setOpened(!1),n}}),this.getModal().on("shown.bs.modal",{dialog:this},function(t){var e=t.data.dialog;e.isModalEvent(t)&&"function"==typeof e.options.onshown&&e.options.onshown(e)}),this.getModal().on("hide.bs.modal",{dialog:this},function(t){var e=t.data.dialog;if(e.setOpened(!1),e.isModalEvent(t)&&"function"==typeof e.options.onhide){var n=e.options.onhide(e);return n===!1&&e.setOpened(!0),n}}),this.getModal().on("hidden.bs.modal",{dialog:this},function(e){var n=e.data.dialog;n.isModalEvent(e)&&"function"==typeof n.options.onhidden&&n.options.onhidden(n),n.isAutodestroy()&&(delete o.dialogs[n.getId()],t(this).remove()),o.moveFocus()}),this.handleModalBackdropEvent(),this.getModal().on("keyup",{dialog:this},function(t){27===t.which&&t.data.dialog.isClosable()&&t.data.dialog.canCloseByKeyboard()&&t.data.dialog.close()}),this.getModal().on("keyup",{dialog:this},function(e){var n=e.data.dialog;if("undefined"!=typeof n.registeredButtonHotkeys[e.which]){var o=t(n.registeredButtonHotkeys[e.which]);!o.prop("disabled")&&o.focus().trigger("click")}}),this},handleModalBackdropEvent:function(){return this.getModal().on("click",{dialog:this},function(e){t(e.target).hasClass("modal-backdrop")&&e.data.dialog.isClosable()&&e.data.dialog.canCloseByBackdrop()&&e.data.dialog.close()}),this},isModalEvent:function(t){return"undefined"!=typeof t.namespace&&"bs.modal"===t.namespace},makeModalDraggable:function(){return this.options.draggable&&(this.getModalHeader().addClass(this.getNamespace("draggable")).on("mousedown",{dialog:this},function(t){var e=t.data.dialog;e.draggableData.isMouseDown=!0;var n=e.getModalDialog().offset();e.draggableData.mouseOffset={top:t.clientY-n.top,left:t.clientX-n.left}}),this.getModal().on("mouseup mouseleave",{dialog:this},function(t){t.data.dialog.draggableData.isMouseDown=!1}),t("body").on("mousemove",{dialog:this},function(t){var e=t.data.dialog;e.draggableData.isMouseDown&&e.getModalDialog().offset({top:t.clientY-e.draggableData.mouseOffset.top,left:t.clientX-e.draggableData.mouseOffset.left})})),this},realize:function(){return this.initModalStuff(),this.getModal().addClass(o.NAMESPACE).addClass(this.getCssClass()),this.updateSize(),this.getDescription()&&this.getModal().attr("aria-describedby",this.getDescription()),this.getModalFooter().append(this.createFooterContent()),this.getModalHeader().append(this.createHeaderContent()),this.getModalBody().append(this.createBodyContent()),this.getModal().data("bs.modal",new n(this.getModal(),{backdrop:"static",keyboard:!1,show:!1})),this.makeModalDraggable(),this.handleModalEvents(),this.setRealized(!0),this.updateButtons(),this.updateType(),this.updateTitle(),this.updateMessage(),this.updateClosable(),this.updateAnimate(),this.updateSize(),this.updateTabindex(),this},open:function(){return!this.isRealized()&&this.realize(),this.getModal().modal("show"),this},close:function(){return!this.isRealized()&&this.realize(),this.getModal().modal("hide"),this}},o.prototype=t.extend(o.prototype,o.METHODS_TO_OVERRIDE[n.getModalVersion()]),o.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0,n="x"===t?e:3&e|8;return n.toString(16)})},o.show=function(t){return new o(t).open()},o.alert=function(){var e={},n={type:o.TYPE_PRIMARY,title:null,message:null,closable:!1,draggable:!1,buttonLabel:o.DEFAULT_TEXTS.OK,callback:null};return e="object"==typeof arguments[0]&&arguments[0].constructor==={}.constructor?t.extend(!0,n,arguments[0]):t.extend(!0,n,{message:arguments[0],callback:"undefined"!=typeof arguments[1]?arguments[1]:null}),new o({type:e.type,title:e.title,message:e.message,closable:e.closable,draggable:e.draggable,data:{callback:e.callback},onhide:function(t){!t.getData("btnClicked")&&t.isClosable()&&"function"==typeof t.getData("callback")&&t.getData("callback")(!1)},buttons:[{label:e.buttonLabel,action:function(t){t.setData("btnClicked",!0),"function"==typeof t.getData("callback")&&t.getData("callback")(!0),t.close()}}]}).open()},o.confirm=function(){var e={},n={type:o.TYPE_PRIMARY,title:null,message:null,closable:!1,draggable:!1,btnCancelLabel:o.DEFAULT_TEXTS.CANCEL,btnOKLabel:o.DEFAULT_TEXTS.OK,bt
14642nOKClass:null,callback:null};return e="object"==typeof arguments[0]&&arguments[0].constructor==={}.constructor?t.extend(!0,n,arguments[0]):t.extend(!0,n,{message:arguments[0],closable:!1,buttonLabel:o.DEFAULT_TEXTS.OK,callback:"undefined"!=typeof arguments[1]?arguments[1]:null}),null===e.btnOKClass&&(e.btnOKClass=["btn",e.type.split("-")[1]].join("-")),new o({type:e.type,title:e.title,message:e.message,closable:e.closable,draggable:e.draggable,data:{callback:e.callback},buttons:[{label:e.btnCancelLabel,action:function(t){"function"==typeof t.getData("callback")&&t.getData("callback")(!1),t.close()}},{label:e.btnOKLabel,cssClass:e.btnOKClass,action:function(t){"function"==typeof t.getData("callback")&&t.getData("callback")(!0),t.close()}}]}).open()},o.warning=function(t,e){return new o({type:o.TYPE_WARNING,message:t}).open()},o.danger=function(t,e){return new o({type:o.TYPE_DANGER,message:t}).open()},o.success=function(t,e){return new o({type:o.TYPE_SUCCESS,message:t}).open()},o});; 14643/* 14644 14645 Creative Tim Modifications 14646 14647 Lines: 239, 240 was changed from top: 5px to top: 50% and we added margin-top: -13px. In this way the close button will be aligned vertically 14648 Line:242 - modified when the icon is set, we add the class "alert-with-icon", so there will be enough space for the icon. 14649 14650*/ 14651 14652/* 14653* Project: Bootstrap Notify = v3.1.5 14654* Description: Turns standard Bootstrap alerts into "Growl-like" notifications. 14655* Author: Mouse0270 aka Robert McIntosh 14656* License: MIT License 14657* Website: https://github.com/mouse0270/bootstrap-growl 14658*/ 14659 14660/* global define:false, require: false, jQuery:false */ 14661 14662(function (factory) { 14663 if (typeof define === 'function' && define.amd) { 14664 // AMD. Register as an anonymous module. 14665 define(['jquery'], factory); 14666 } else if (typeof exports === 'object') { 14667 // Node/CommonJS 14668 factory(require('jquery')); 14669 } else { 14670 // Browser globals 14671 factory(jQuery); 14672 } 14673}(function ($) { 14674 // Create the defaults once 14675 function getOptionConfig(isNotify) { 14676 let templateNotify = isNotify == true ? 14677 '<div data-notify="container" style="background-color: #f2f7fd; border-color: #f2f7fd;color: #333333; font-family: roboto;min-width: 380px;min-height: 91px; padding: 10px 30px 10px 0px;" class="col-xs-11 col-sm-3 alert alert-{0}" role="alert" style="font-family: roboto;padding-left: 0;"> <button type="button" aria-hidden="true" class="close" data-notify="dismiss">×</button> <div class="itemNotify ahref " style=" "><table style="white-space: normal;" ><tbody><tr><td class="width-55" rowspan="3"><div style=" "><span data-notify="icon"></span></div></td><td class="contentNotify"><p class="titleNotify" style=" font-weight: bold; font-family: roboto; "><span data-notify="title">{1}</span></p><div style="display: -webkit-box !important; overflow: hidden; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; "><span data-notify="message">{2}</span></div></td></tr></tbody></table></div> <div class="progress" data-notify="progressbar"> <div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div> <a href="{3}" target="{4}" data-notify="url"></a></div>' 14678 : '<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-{0}" role="alert"><button type="button" aria-hidden="true" class="close" data-notify="dismiss">×</button><span data-notify="icon"></span> <span data-notify="title">{1}</span> <span data-notify="message">{2}</span><div class="progress" data-notify="progressbar"><div class="progress-bar progress-bar-{0}" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div></div><a href="{3}" target="{4}" data-notify="url"></a></div>'; 14679 let align = isNotify == true ? 'bottom' : 'top'; 14680 let url_target = isNotify == true ? "_self" : "_blank"; 14681 return { 14682 element: 'body', 14683 position: null, 14684 type: "info", 14685 allow_dismiss: true, 14686 allow_duplicates: true, 14687 newest_on_top: false, 14688 showProgressbar: false, 14689 placement: { 14690 from: align, 14691 align: "right" 14692 }, 14693 offset: 50, 14694 spacing: 10, 14695 z_index: 1050, 14696 delay: 7000, 14697 timer: 1000, 14698 url_target: url_target, 14699 mouse_over: null, 14700 animate: { 14701 enter: 'animated fadeInDown', 14702 exit: 'animated fadeOutUp' 14703 }, 14704 onShow: null, 14705 onShown: null, 14706 onClose: null, 14707 onClosed: null, 14708 icon_type: 'class', 14709 template: templateNotify 14710 }; 14711 } 14712 var defaults = getOptionConfig(); 14713 14714 String.format = function () { 14715 var str = arguments[0]; 14716 for (var i = 1; i < arguments.length; i++) { 14717 str = str.replace(RegExp("\\{" + (i - 1) + "\\}", "gm"), arguments[i]); 14718 } 14719 return str; 14720 }; 14721 14722 function isDuplicateNotification(notification) { 14723 var isDupe = false; 14724 14725 $('[data-notify="container"]').each(function (i, el) { 14726 var $el = $(el); 14727 var title = $el.find('[data-notify="title"]').text().trim(); 14728 var message = $el.find('[data-notify="message"]').html().trim(); 14729 14730 // The input string might be different than the actual parsed HTML string! 14731 // (<br> vs <br /> for example) 14732 // So we have to force-parse this as HTML here! 14733 var isSameTitle = title === $("<div>" + notification.settings.content.title + "</div>").html().trim(); 14734 var isSameMsg = message === $("<div>" + notification.settings.content.message + "</div>").html().trim(); 14735 var isSameType = $el.hasClass('alert-' + notification.settings.type); 14736 14737 if (isSameTitle && isSameMsg && isSameType) { 14738 //we found the dupe. Set the var and stop checking. 14739 isDupe = true; 14740 } 14741 return !isDupe; 14742 }); 14743 14744 return isDupe; 14745 } 14746 14747 function Notify(element, content, options) { 14748 // Setup Content of Notify 14749 var contentObj = { 14750 content: { 14751 message: typeof content === 'object' ? content.message : content, 14752 title: content.title ? content.title : '', 14753 icon: content.icon ? content.icon : '', 14754 url: content.url ? content.url : '#', 14755 target: content.target ? content.target : '-' 14756 } 14757 }; 14758 14759 options = $.extend(true, {}, contentObj, options); 14760 this.settings = $.extend(true, {}, defaults, options); 14761 this._defaults = defaults; 14762 if (this.settings.content.target === "-") { 14763 this.settings.content.target = this.settings.url_target; 14764 } 14765 this.animations = { 14766 start: 'webkitAnimationStart oanimationstart MSAnimationStart animationstart', 14767 end: 'webkitAnimationEnd oanimationend MSAnimationEnd animationend' 14768 }; 14769 14770 if (typeof this.settings.offset === 'number') { 14771 this.settings.offset = { 14772 x: this.settings.offset, 14773 y: this.settings.offset 14774 }; 14775 } 14776 14777 //if duplicate messages are not allowed, then only continue if this new message is not a duplicate of one that it already showing 14778 if (this.settings.allow_duplicates || (!this.settings.allow_duplicates && !isDuplicateNotification(this))) { 14779 this.init(); 14780 } 14781 } 14782 14783 $.extend(Notify.prototype, { 14784 init: function () { 14785 var self = this; 14786 14787 this.buildNotify(); 14788 if (this.settings.content.icon) { 14789 this.setIcon(); 14790 } 14791 if (this.settings.content.url != "#") { 14792 this.styleURL(); 14793 } 14794 this.styleDismiss(); 14795 this.placement(); 14796 this.bind(); 14797 14798 this.notify = { 14799 $ele: this.$ele, 14800 update: function (command, update) { 14801 var commands = {}; 14802 if (typeof command === "string") { 14803 commands[command] = update; 14804 } else { 14805 commands = command; 14806 } 14807 for (var cmd in commands) { 14808 switch (cmd) { 14809 case "type": 14810 this.$ele.removeClass('alert-' + self.settings.type); 14811 this.$ele.find('[data-notify="progressbar"] > .progress-bar').removeClass('progress-bar-' + self.settings.type); 14812 self.settings.type = commands[cmd
vendor: 5,494 bytes, lines 14812-14914
14812]; 14813 this.$ele.addClass('alert-' + commands[cmd]).find('[data-notify="progressbar"] > .progress-bar').addClass('progress-bar-' + commands[cmd]); 14814 break; 14815 case "icon": 14816 var $icon = this.$ele.find('[data-notify="icon"]'); 14817 if (self.settings.icon_type.toLowerCase() === 'class') { 14818 $icon.removeClass(self.settings.content.icon).addClass(commands[cmd]); 14819 } else { 14820 if (!$icon.is('img')) { 14821 $icon.find('img'); 14822 } 14823 $icon.attr('src', commands[cmd]); 14824 } 14825 break; 14826 case "progress": 14827 var newDelay = self.settings.delay - (self.settings.delay * (commands[cmd] / 100)); 14828 this.$ele.data('notify-delay', newDelay); 14829 this.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', commands[cmd]).css('width', commands[cmd] + '%'); 14830 break; 14831 case "url": 14832 this.$ele.find('[data-notify="url"]').attr('href', commands[cmd]); 14833 break; 14834 case "target": 14835 this.$ele.find('[data-notify="url"]').attr('target', commands[cmd]); 14836 break; 14837 default: 14838 this.$ele.find('[data-notify="' + cmd + '"]').html(commands[cmd]); 14839 } 14840 } 14841 var posX = this.$ele.outerHeight() + parseInt(self.settings.spacing) + parseInt(self.settings.offset.y); 14842 self.reposition(posX); 14843 }, 14844 close: function () { 14845 self.close(); 14846 } 14847 }; 14848 }, 14849 buildNotify: function () { 14850 var content = this.settings.content; 14851 this.$ele = $(String.format(this.settings.template, this.settings.type, content.title, content.message, content.url, content.target)); 14852 this.$ele.attr('data-notify-position', this.settings.placement.from + '-' + this.settings.placement.align); 14853 if (!this.settings.allow_dismiss) { 14854 this.$ele.find('[data-notify="dismiss"]').css('display', 'none'); 14855 } 14856 if ((this.settings.delay <= 0 && !this.settings.showProgressbar) || !this.settings.showProgressbar) { 14857 this.$ele.find('[data-notify="progressbar"]').remove(); 14858 } 14859 }, 14860 setIcon: function () { 14861 this.$ele.addClass('alert-with-icon'); 14862 14863 if (this.settings.icon_type.toLowerCase() === 'class') { 14864 this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon); 14865 } else { 14866 if (this.$ele.find('[data-notify="icon"]').is('img')) { 14867 this.$ele.find('[data-notify="icon"]').attr('src', this.settings.content.icon); 14868 } else { 14869 this.$ele.find('[data-notify="icon"]').append('<img src="' + this.settings.content.icon + '" alt="Notify Icon" />'); 14870 } 14871 } 14872 }, 14873 styleDismiss: function () { 14874 this.$ele.find('[data-notify="dismiss"]').css({ 14875 position: 'absolute', 14876 right: '10px', 14877 top: '50%', 14878 marginTop: '-13px', 14879 zIndex: this.settings.z_index + 2 14880 }); 14881 }, 14882 styleURL: function () { 14883 this.$ele.find('[data-notify="url"]').css({ 14884 backgroundImage: 'url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)', 14885 height: '100%', 14886 left: 0, 14887 position: 'absolute', 14888 top: 0, 14889 width: '100%', 14890 zIndex: this.settings.z_index + 1 14891 }); 14892 }, 14893 placement: function () { 14894 var self = this, 14895 offsetAmt = this.settings.offset.y, 14896 css = { 14897 display: 'inline-block', 14898 margin: '0px auto', 14899 position: this.settings.position ? this.settings.position : (this.settings.element === 'body' ? 'fixed' : 'absolute'), 14900 transition: 'all .5s ease-in-out', 14901 zIndex: this.settings.z_index 14902 }, 14903 hasAnimation = false, 14904 settings = this.settings; 14905 14906 $('[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])').each(function () { 14907 offsetAmt = Math.max(offsetAmt, parseInt($(this).css(settings.placement.from)) + parseInt($(this).outerHeight()) + parseInt(settings.spacing)); 14908 }); 14909 if (this.settings.newest_on_top === true) { 14910 offsetAmt = this.settings.offset.y; 14911 } 14912 css[this.settings.placement.from] = offsetAmt + 'px'; 14913 14914 switch (this.settings.placement.align) {
vendor: 4,760 bytes, lines 14915-15028
14915 case "left": 14916 case "right": 14917 css[this.settings.placement.align] = this.settings.offset.x + 'px'; 14918 break; 14919 case "center": 14920 css.left = 0; 14921 css.right = 0; 14922 break; 14923 } 14924 this.$ele.css(css).addClass(this.settings.animate.enter); 14925 $.each(Array('webkit-', 'moz-', 'o-', 'ms-', ''), function (index, prefix) { 14926 self.$ele[0].style[prefix + 'AnimationIterationCount'] = 1; 14927 }); 14928 14929 $(this.settings.element).append(this.$ele); 14930 14931 if (this.settings.newest_on_top === true) { 14932 offsetAmt = (parseInt(offsetAmt) + parseInt(this.settings.spacing)) + this.$ele.outerHeight(); 14933 this.reposition(offsetAmt); 14934 } 14935 14936 if ($.isFunction(self.settings.onShow)) { 14937 self.settings.onShow.call(this.$ele); 14938 } 14939 14940 this.$ele.one(this.animations.start, function () { 14941 hasAnimation = true; 14942 }).one(this.animations.end, function () { 14943 if ($.isFunction(self.settings.onShown)) { 14944 self.settings.onShown.call(this); 14945 } 14946 }); 14947 14948 setTimeout(function () { 14949 if (!hasAnimation) { 14950 if ($.isFunction(self.settings.onShown)) { 14951 self.settings.onShown.call(this); 14952 } 14953 } 14954 }, 600); 14955 }, 14956 bind: function () { 14957 var self = this; 14958 14959 this.$ele.find('[data-notify="dismiss"]').on('click', function () { 14960 self.close(); 14961 }); 14962 14963 this.$ele.mouseover(function () { 14964 $(this).data('data-hover', "true"); 14965 }).mouseout(function () { 14966 $(this).data('data-hover', "false"); 14967 }); 14968 this.$ele.data('data-hover', "false"); 14969 14970 if (this.settings.delay > 0) { 14971 self.$ele.data('notify-delay', self.settings.delay); 14972 var timer = setInterval(function () { 14973 var delay = parseInt(self.$ele.data('notify-delay')) - self.settings.timer; 14974 if ((self.$ele.data('data-hover') === 'false' && self.settings.mouse_over === "pause") || self.settings.mouse_over != "pause") { 14975 var percent = ((self.settings.delay - delay) / self.settings.delay) * 100; 14976 self.$ele.data('notify-delay', delay); 14977 self.$ele.find('[data-notify="progressbar"] > div').attr('aria-valuenow', percent).css('width', percent + '%'); 14978 } 14979 if (delay <= -(self.settings.timer)) { 14980 clearInterval(timer); 14981 self.close(); 14982 } 14983 }, self.settings.timer); 14984 } 14985 }, 14986 close: function () { 14987 var self = this, 14988 posX = parseInt(this.$ele.css(this.settings.placement.from)), 14989 hasAnimation = false; 14990 14991 this.$ele.data('closing', 'true').addClass(this.settings.animate.exit); 14992 self.reposition(posX); 14993 14994 if ($.isFunction(self.settings.onClose)) { 14995 self.settings.onClose.call(this.$ele); 14996 } 14997 14998 this.$ele.one(this.animations.start, function () { 14999 hasAnimation = true; 15000 }).one(this.animations.end, function () { 15001 $(this).remove(); 15002 if ($.isFunction(self.settings.onClosed)) { 15003 self.settings.onClosed.call(this); 15004 } 15005 }); 15006 15007 setTimeout(function () { 15008 if (!hasAnimation) { 15009 self.$ele.remove(); 15010 if (self.settings.onClosed) { 15011 self.settings.onClosed(self.$ele); 15012 } 15013 } 15014 }, 600); 15015 }, 15016 reposition: function (posX) { 15017 var self = this, 15018 notifies = '[data-notify-position="' + this.settings.placement.from + '-' + this.settings.placement.align + '"]:not([data-closing="true"])', 15019 $elements = this.$ele.nextAll(notifies); 15020 if (this.settings.newest_on_top === true) { 15021 $elements = this.$ele.prevAll(notifies); 15022 } 15023 $elements.each(function () { 15024 $(this).css(self.settings.placement.from, posX); 15025 posX = (parseInt(posX) + parseInt(self.settings.spacing)) + $(this).outerHeight(); 15026 }); 15027 } 15028 });
15029 15030 $.notify = function (content, options) { 15031 var plugin = new Notify(this, content, options); 15032 return plugin.notify; 15033 }; 15034 $.notifyDefaults = function (options) { 15035 defaults = $.extend(true, {}, defaults, options); 15036 return defaults; 15037 }; 15038 $.notifyClose = function (command) { 15039 if (typeof command === "undefined" || command === "all") { 15040 $('[data-notify]').find('[data-notify="dismiss"]').trigger('click'); 15041 } else { 15042 $('[data-notify-position="' + command + '"]').find('[data-notify="dismiss"]').trigger('click'); 15043 } 15044 }; 15045 $.notifyMenu = function (content) { 15046 return new Notify(this, content, getOptionConfig(true)).notify; 15047 }; 15048}));; 15049!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'<button type="button">×</button>',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e("<div/>"),c=e("<div/>"),p=e("<div/>"),f=e("<div/>"),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); 15050//# sourceMappingURL=/toastr.js.map; 15051!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function a(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}
15051function c(t,e){return(c=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function l(t,e,n){return(l=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);var i=new(Function.bind.apply(t,o));return n&&c(i,n.prototype),i}).apply(null,arguments)}function d(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function p(t,e,n){return(p="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var o=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(o){var i=Object.getOwnPropertyDescriptor(o,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function f(e){return Object.keys(e).map(function(t){return e[t]})}function m(t){return Array.prototype.slice.call(t)}function g(t){console.error("".concat(e," ").concat(t))}function h(t,e){!function(t){-1===n.indexOf(t)&&(n.push(t),w(t))}('"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'))}function v(t){return t&&Promise.resolve(t)===t}function t(t){var e={};for(var n in t)e[t[n]]="swal2-"+t[n];return e}function b(t,e){return t.classList.contains(e)}function y(t,e,n){if(function(e){m(e.classList).forEach(function(t){-1===f(x).indexOf(t)&&-1===f(S).indexOf(t)&&e.classList.remove(t)})}(t),e&&e[n]){if("string"!=typeof e[n]&&!e[n].forEach)return w("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e[n]),'"'));rt(t,e[n])}}var e="SweetAlert2:",w=function(t){console.warn("".concat(e," ").concat(t))},n=[],C=function(t){return"function"==typeof t?t():t},k=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),x=t(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","toast","toast-shown","toast-column","fade","show","hide","noanimation","close","title","header","content","actions","confirm","cancel","footer","icon","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl"]),S=t(["success","warning","info","question","error"]),P={previousBodyPadding:null};function B(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return st(t,x[e]);case"checkbox":return t.querySelector(".".concat(x.checkbox," input"));case"radio":return t.querySelector(".".concat(x.radio," input:checked"))||t.querySelector(".".concat(x.radio," input:first-child"));case"range":return t.querySelector(".".concat(x.range," input"));default:return st(t,x.input)}}function A(t){if(t.focus(),"file"!==t.type){var e=t.value;t.value="",t.value=e}}function E(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function T(t,e,n){n||0===parseInt(n)?t.style[e]="number"==typeof n?n+"px":n:t.style.removeProperty(e)}function L(t,e){var n=1<arguments.length&&void 0!==e?e:"flex";t.style.opacity="",t.style.display=n}function O(t){t.style.opacity="",t.style.display="none"}function M(t,e,n){e?L(t,n):O(t)}function V(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))}function j(t){var e=window.getComputedStyle(t),n=parseFloat(e.getPropertyValue("animation-duration")||"0"),o=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<n||0<o}function H(){return document.body.querySelector("."+x.container)}function I(t){var e=H();return e?e.querySelector(t):null}function q(t){return I("."+t)}function R(){return q(x.popup)}function D(){var t=R();return m(t.querySelectorAll("."+x.icon))}function N(){var t=D().filter(function(t){return V(t)});return t.length?t[0]:null}function U(){return q(x.title)}function F(){return q(x.content)}function _(){return q(x.image)}function z(){return q(x["progress-steps"])}function W(){return q(x["validation-message"])}function K(){return I("."+x.actions+" ."+x.confirm)}function Y(){return I("."+x.actions+" ."+x.cancel)}function Z(){return q(x.actions)}function Q(){return q(x.header)}function $(){return q(x.footer)}function J(){return q(x.close)}
15051function X(){var t=m(R().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=m(R().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return V(t)})}function G(){return!ut()&&!document.body.classList.contains(x["no-backdrop"])}function tt(){return"undefined"==typeof window||"undefined"==typeof document}function et(t){Fe.isVisible()&&it!==t.target.value&&Fe.resetValidationMessage(),it=t.target.value}function nt(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?dt(e,t):t&&(e.innerHTML=t)}function ot(t,e){var n=Z(),o=K(),i=Y();e.showConfirmButton||e.showCancelButton||O(n),y(n,e.customClass,"actions"),ft(o,"confirm",e),ft(i,"cancel",e),e.buttonsStyling?function(t,e,n){rt([t,e],x.styled),n.confirmButtonColor&&(t.style.backgroundColor=n.confirmButtonColor);n.cancelButtonColor&&(e.style.backgroundColor=n.cancelButtonColor);var o=window.getComputedStyle(t).getPropertyValue("background-color");t.style.borderLeftColor=o,t.style.borderRightColor=o}(o,i,e):(at([o,i],x.styled),o.style.backgroundColor=o.style.borderLeftColor=o.style.borderRightColor="",i.style.backgroundColor=i.style.borderLeftColor=i.style.borderRightColor=""),e.reverseButtons&&o.parentNode.insertBefore(i,o)}var it,rt=function(t,e){E(t,e,!0)},at=function(t,e){E(t,e,!1)},st=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(b(t.childNodes[n],e))return t.childNodes[n]},ut=function(){return document.body.classList.contains(x["toast-shown"])},ct='\n <div aria-labelledby="'.concat(x.title,'" aria-describedby="').concat(x.content,'" class="').concat(x.popup,'">\n <div class="').concat(x.header,'">\n <ul class="').concat(x["progress-steps"],'"></ul>\n <div class="').concat(x.icon," ").concat(S.error,'">\n <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n </div>\n <div class="').concat(x.icon," ").concat(S.question,'"></div>\n <div class="').concat(x.icon," ").concat(S.warning,'"></div>\n <div class="').concat(x.icon," ").concat(S.info,'"></div>\n <div class="').concat(x.icon," ").concat(S.success,'">\n <div class="swal2-success-circular-line-left"></div>\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n </div>\n <img class="').concat(x.image,'" />\n <h2 class="').concat(x.title,'" id="').concat(x.title,'"></h2>\n <button type="button" class="').concat(x.close,'"></button>\n </div>\n <div class="').concat(x.content,'">\n <div id="').concat(x.content,'"></div>\n <input class="').concat(x.input,'" />\n <input type="file" class="').concat(x.file,'" />\n <div class="').concat(x.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat(x.select,'"></select>\n <div class="').concat(x.radio,'"></div>\n <label for="').concat(x.checkbox,'" class="').concat(x.checkbox,'">\n <input type="checkbox" />\n <span class="').concat(x.label,'"></span>\n </label>\n <textarea class="').concat(x.textarea,'"></textarea>\n <div class="').concat(x["validation-message"],'" id="').concat(x["validation-message"],'"></div>\n </div>\n <div class="').concat(x.actions,'">\n <button type="button" class="').concat(x.confirm,'">OK</button>\n <button type="button" class="').concat(x.cancel,'">Cancel</button>\n </div>\n <div class="').concat(x.footer,'">\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),lt=function(t){if(function(){var t=H();t&&(t.parentNode.removeChild(t),at([document.documentElement,document.body],[x["no-backdrop"],x["toast-shown"],x["has-column"]]))}(),tt())g("SweetAlert2 requires document to initialize");else{var e=document.createElement("div");e.className=x.container,e.innerHTML=ct;var n=function(t){return"string"==typeof t?document.querySelector(t):t}(t.target);n.appendChild(e),function(t){var e=R();e.setAttribute("role",t.toast?"alert":"dialog"),e.setAttribute("aria-live",t.toast?"polite":"assertive"),t.toast||e.setAttribute("aria-modal","true")}(t),function(t){"rtl"===window.getComputedStyle(t).direction&&rt(H(),x.rtl)}(n),function(){var t=F(),e=st(t,x.input),n=st(t,x.file),o=t.querySelector(".".concat(x.range," input")),i=t.querySelector(".".concat(x.range," output")),r=st(t,x.select),a=t.querySelector(".".concat(x.checkbox," input")),s=st(t,x.textarea);e.oninput=et,n.onchange=et,r.onchange=et,a.onchange=et,s.oninput=et,o.oninput=function(t){et(t),i.value=o.value},o.onchange=function(t){et(t),o.nextSibling.value=o.value}}()}},dt=function(t,e){if(t.innerHTML="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},pt=function(){if(tt())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function ft(t,e,n){M(t,n["showC"+e.substring(1)+"Button"],"inline-block"),t.innerHTML=n[e+"ButtonText"],t.setAttribute("aria-label",n[e+"ButtonAriaLabel"]),t.className=x[e],y(t,
15051n.customClass,e+"Button"),rt(t,n[e+"ButtonClass"])}function mt(t,e){var n=H();n&&(function(t,e){"string"==typeof e?t.style.background=e:e||rt([document.documentElement,document.body],x["no-backdrop"])}(n,e.backdrop),!e.backdrop&&e.allowOutsideClick&&w('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),function(t,e){e in x?rt(t,x[e]):(w('The "position" parameter is not valid, defaulting to "center"'),rt(t,x.center))}(n,e.position),function(t,e){if(e&&"string"==typeof e){var n="grow-"+e;n in x&&rt(t,x[n])}}(n,e.grow),y(n,e.customClass,"container"),e.customContainerClass&&rt(n,e.customContainerClass))}function gt(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var ht={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},vt=["input","file","range","select","radio","checkbox","textarea"],bt=function(t){if(!kt[t.input])return g('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=Ct(t.input),n=kt[t.input](e,t);L(n),setTimeout(function(){A(n)})},yt=function(t,e){var n=B(F(),t);if(n)for(var o in function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},wt=function(t){var e=Ct(t.input);t.inputClass&&rt(e,t.inputClass),t.customClass&&rt(e,t.customClass.input)},Ct=function(t){var e=x[t]?x[t]:x.input;return st(F(),e)},kt={};kt.text=kt.email=kt.password=kt.number=kt.tel=kt.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:v(e.inputValue)||w('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),gt(t,e),t.type=e.input,t},kt.file=function(t,e){return gt(t,e),t},kt.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,t},kt.select=function(t,e){if(t.innerHTML="",e.inputPlaceholder){var n=document.createElement("option");n.innerHTML=e.inputPlaceholder,n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)}return t},kt.radio=function(t){return t.innerHTML="",t},kt.checkbox=function(t,e){var n=B(F(),"checkbox");return n.value=1,n.id=x.checkbox,n.checked=Boolean(e.inputValue),t.querySelector("span").innerHTML=e.inputPlaceholder,t},kt.textarea=function(e,t){if(e.value=t.inputValue,gt(e,t),"MutationObserver"in window){var n=parseInt(window.getComputedStyle(R()).width),o=parseInt(window.getComputedStyle(R()).paddingLeft)+parseInt(window.getComputedStyle(R()).paddingRight);new MutationObserver(function(){var t=e.offsetWidth+o;R().style.width=n<t?t+"px":null}).observe(e,{attributes:!0,attributeFilter:["style"]})}return e};function xt(t,e){var n=F().querySelector("#"+x.content);e.html?(nt(e.html,n),L(n,"block")):e.text?(n.textContent=e.text,L(n,"block")):O(n),function(t,o){var i=F(),e=ht.innerParams.get(t),r=!e||o.input!==e.input;vt.forEach(function(t){var e=x[t],n=st(i,e);yt(t,o.inputAttributes),n.className=e,r&&O(n)}),o.input&&(r&&bt(o),wt(o))}(t,e),y(F(),e.customClass,"content")}function St(t,i){var r=z();if(!i.progressSteps||0===i.progressSteps.length)return O(r);L(r),r.innerHTML="";var a=parseInt(null===i.currentProgressStep?Fe.getQueueStep():i.currentProgressStep);a>=i.progressSteps.length&&w("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),i.progressSteps.forEach(function(t,e){var n=function(t){var e=document.createElement("li");return rt(e,x["progress-step"]),e.innerHTML=t,e}(t);if(r.appendChild(n),e===a&&rt(n,x["active-progress-step"]),e!==i.progressSteps.length-1){var o=function(t){var e=document.createElement("li");return rt(e,x["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e}(t);r.appendChild(o)}})}function Pt(t,e){var n=Q();y(n,e.customClass,"header"),St(0,e),function(t,e){var n=ht.innerParams.get(t);if(n&&e.type===n.type&&N())y(N(),e.customClass,"icon");else if(Et(),e.type)if(Tt(),-1!==Object.keys(S).indexOf(e.type)){var o=I(".".concat(x.icon,".").concat(S[e.type]));L(o),y(o,e.customClass,"icon"),E(o,"swal2-animate-".concat(e.type,"-icon"),e.animation)}else g('Unknown type! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.type,'"'))}(t,e),function(t,e){var n=_();if(!e.imageUrl)return O(n);L(n),n.setAttribute("src",e.imageUrl),n.setAttribute("alt",e.imageAlt),T(n,"width",e.imageWidth),T(n,"height",e.imageHeight),n.className=x.image,y(n,e.customClass,"image"),e.imageClass&&rt(n,e.imageClass)}(0,e),function(t,e){var n=U();M(n,e.title||e.titleText),e.title&&nt(e.title,n),e.titleText&&(n.innerText=e.titleText),y(n,e.customClass,"title")}(0,e),function(t,e){var n=J();n.innerHTML=e.closeButtonHtml,y(n,e.customClass,"closeButton"),M(n,e.showCloseButton),n.setAttribute("aria-label",e.closeButtonAriaLabel)}(0,e)}function Bt(t,e){!function(t,e){var n=R();T(n,"width",e.width),T(n,"padding",e.padding),e.background&&(n.style.background=e.background),n.className=x.popup,e.toast?(rt([document.documentElement,document.body],x["toast-shown"]),rt(n,x.toast)):rt(n,x.modal),y(n,e.customClass,"popup"),"string"==typeof e.customClass&&rt(n,e.customClass),E(n,x.noanimation,!e.animation)}(0,e),mt(0,e),Pt(t,e),xt(t,e),ot(0,e),function(t,e){var n=$();M(n,e.footer),e.footer&&nt(e.footer,n),y(n,e.customClass,"footer")}(0,e),"function"==typeof e.onRender&&e.onRender(R())}function At(){return K()&&K().click()}var Et=function(){for(var t=D(),e=0;e<t.length;e++)O(t[e])},Tt=function(){for(var t=R(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e};function Lt(){var t=R();t||Fe.fire(""),t=R();var e=Z(),n=K(),o=Y();L(e),L(n),rt([t,e],x.loading),n.disabled=!0,o.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Ot(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;Ht.restoreFocusTimeout=setTimeout(function(){Ht.previousActiveElement&&Ht.previousActiveElement.focus?(Ht.previousActiveElement.focus(),Ht.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Mt(t){return Object.prototype.hasOwnProperty.call(It,t)}function Vt(t){return Rt[t]}var jt=[],Ht={},It={title:"",titleText:"",text:"",html:"",footer:"",type:null,toast:!1,
15051customClass:"",customContainerClass:"",target:"body",backdrop:!0,animation:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:null,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:null,confirmButtonClass:"",cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:null,cancelButtonClass:"",buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:null,imageWidth:null,imageHeight:null,imageAlt:"",imageClass:"",timer:null,width:null,padding:null,background:null,input:null,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputClass:"",inputAttributes:{},inputValidator:null,validationMessage:null,grow:!1,position:"center",progressSteps:[],currentProgressStep:null,progressStepsDistance:null,onBeforeOpen:null,onOpen:null,onRender:null,onClose:null,onAfterClose:null,scrollbarPadding:!0},qt=["title","titleText","text","html","type","customClass","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","confirmButtonClass","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","cancelButtonClass","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeigth","imageAlt","imageClass","progressSteps","currentProgressStep"],Rt={customContainerClass:"customClass",confirmButtonClass:"customClass",cancelButtonClass:"customClass",imageClass:"customClass",inputClass:"customClass"},Dt=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],Nt=Object.freeze({isValidParameter:Mt,isUpdatableParameter:function(t){return-1!==qt.indexOf(t)},isDeprecatedParameter:Vt,argsToParams:function(n){var o={};switch(r(n[0])){case"object":s(o,n[0]);break;default:["title","html","type"].forEach(function(t,e){switch(r(n[e])){case"string":o[t]=n[e];break;case"undefined":break;default:g("Unexpected type of ".concat(t,'! Expected "string", got ').concat(r(n[e])))}})}return o},isVisible:function(){return V(R())},clickConfirm:At,clickCancel:function(){return Y()&&Y().click()},getContainer:H,getPopup:R,getTitle:U,getContent:F,getImage:_,getIcon:N,getIcons:D,getCloseButton:J,getActions:Z,getConfirmButton:K,getCancelButton:Y,getHeader:Q,getFooter:$,getFocusableElements:X,getValidationMessage:W,isLoading:function(){return R().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return l(this,e)},mixin:function(n){return function(t){function e(){return o(this,e),d(this,u(e).apply(this,arguments))}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}(e,t),a(e,[{key:"_main",value:function(t){return p(u(e.prototype),"_main",this).call(this,s({},n,t))}}]),e}(this)},queue:function(t){var r=this;jt=t;function a(t,e){jt=[],document.body.removeAttribute("data-swal2-queue-step"),t(e)}var s=[];return new Promise(function(i){!function e(n,o){n<jt.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(jt[n]).then(function(t){void 0!==t.value?(s.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:s})}(0)})},getQueueStep:function(){return document.body.getAttribute("data-swal2-queue-step")},insertQueueStep:function(t,e){return e&&e<jt.length?jt.splice(e,0,t):jt.push(t)},deleteQueueStep:function(t){void 0!==jt[t]&&jt.splice(t,1)},showLoading:Lt,enableLoading:Lt,getTimerLeft:function(){return Ht.timeout&&Ht.timeout.getTimerLeft()},stopTimer:function(){return Ht.timeout&&Ht.timeout.stop()},resumeTimer:function(){return Ht.timeout&&Ht.timeout.start()},toggleTimer:function(){var t=Ht.timeout;return t&&(t.running?t.stop():t.start())},increaseTimer:function(t){return Ht.timeout&&Ht.timeout.increase(t)},isTimerRunning:function(){return Ht.timeout&&Ht.timeout.isRunning()}});function Ut(){var t=ht.innerParams.get(this),e=ht.domCache.get(this);t.showConfirmButton||(O(e.confirmButton),t.showCancelButton||O(e.actions)),at([e.popup,e.actions],x.loading),e.popup.removeAttribute("aria-busy"),e.popup.removeAttribute("data-loading"),e.confirmButton.disabled=!1,e.cancelButton.disabled=!1}function Ft(){null===P.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(P.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=P.previousBodyPadding+function(){if("ontouchstart"in window||navigator.msMaxTouchPoints)return 0;var t=document.createElement("div");t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e}()+"px")}function _t(){return!!window.MSInputMethodContext&&!!document.documentMode}function zt(){var t=H(),e=R();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var Wt=function(){var e,n=H();n.ontouchstart=function(t){e=t.target===n||!function(t){return!!(t.scrollHeight>t.clientHeight)}(n)&&"INPUT"!==t.target.tagName},n.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},Kt={swalPromiseResolve:new WeakMap};function Yt(t,e,n,o){n?Jt(t,o):(Ot().then(function(){return Jt(t,o)}),Ht.keydownTarget.removeEventListener("keydown",Ht.keydownHandler,{capture:Ht.keydownListenerCapture}),Ht.keydownHandlerAdded=!1),e.parentNode&&e.parentNode.removeChild(e),G()&&(null!==P.previousBodyPadding&&(document.body.style.paddingRight=P.previousBodyPadding+"px",P.previousBodyPadding=null),function(){if(b(document.body,x.iosfix)){var t=parseInt(document.body.style.top,10);at(document.body,x.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),"undefined"!=typeof window&&_t()&&window.removeEventListener("resize",zt),m(document.body.children).forEac
15051h(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),at([document.documentElement,document.body],[x.shown,x["height-auto"],x["no-backdrop"],x["toast-shown"],x["toast-column"]])}function Zt(t){var e=R();if(e&&!b(e,x.hide)){var n=ht.innerParams.get(this);if(n){var o=Kt.swalPromiseResolve.get(this);at(e,x.show),rt(e,x.hide),function(t,e,n){var o=H(),i=pt&&j(e),r=n.onClose,a=n.onAfterClose;if(r!==null&&typeof r==="function"){r(e)}if(i){$t(t,e,o,a)}else{Yt(t,o,ut(),a)}}(this,e,n),o(t||{})}}}function Qt(t){for(var e in t)t[e]=new WeakMap}var $t=function(t,e,n,o){Ht.swalCloseEventFinishedCallback=Yt.bind(null,t,n,ut(),o),e.addEventListener(pt,function(t){t.target===e&&(Ht.swalCloseEventFinishedCallback(),delete Ht.swalCloseEventFinishedCallback)})},Jt=function(t,e){setTimeout(function(){null!==e&&"function"==typeof e&&e(),R()||function(t){delete t.params,delete Ht.keydownHandler,delete Ht.keydownTarget,Qt(ht),Qt(Kt)}(t)})};function Xt(t,e,n){var o=ht.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function Gt(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var te=function(){function n(t,e){o(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return a(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),ee={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function ne(t){!function(e){e.inputValidator||Object.keys(ee).forEach(function(t){e.input===t&&(e.inputValidator=ee[t])})}(t),t.showLoaderOnConfirm&&!t.preConfirm&&w("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=C(t.animation),function(t){t.target&&("string"!=typeof t.target||document.querySelector(t.target))&&("string"==typeof t.target||t.target.appendChild)||(w('Target parameter is not valid, defaulting to "body"'),t.target="body")}(t),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),lt(t)}function oe(t,e){t.removeEventListener(pt,oe),e.style.overflowY="auto"}function ie(t){var e=H(),n=R();"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n),me(e,n,t),pe(e,n),G()&&fe(e,t.scrollbarPadding),ut()||Ht.previousActiveElement||(Ht.previousActiveElement=document.activeElement),"function"==typeof t.onOpen&&setTimeout(function(){return t.onOpen(n)})}function re(t,e){"select"===e.input||"radio"===e.input?be(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&v(e.inputValue)&&ye(t,e)}function ae(t,e){t.disableButtons(),e.input?ke(t,e):xe(t,e,!0)}function se(t,e){t.disableButtons(),e(k.cancel)}function ue(t,e){t.closePopup({value:e})}function ce(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return Be(e,t,n,o)},t.keydownTarget=n.keydownListenerCapture?window:R(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function le(t,e,n){for(var o=X(),i=0;i<o.length;i++)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();R().focus()}function de(t,e,n){e.toast?Oe(t,e,n):(Ve(t),je(t),He(t,e,n))}var pe=function(t,e){pt&&j(e)?(t.style.overflowY="hidden",e.addEventListener(pt,oe.bind(null,e,t))):t.style.overflowY="auto"},fe=function(t,e){!function(){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&!b(document.body,x.iosfix)){var t=document.body.scrollTop;document.body.style.top=-1*t+"px",rt(document.body,x.iosfix),Wt()}}(),"undefined"!=typeof window&&_t()&&(zt(),window.addEventListener("resize",zt)),m(document.body.children).forEac
15051h(function(t){t===H()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,H())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))}),e&&Ft(),setTimeout(function(){t.scrollTop=0})},me=function(t,e,n){n.animation&&(rt(e,x.show),rt(t,x.fade)),L(e),rt([document.documentElement,document.body,t],x.shown),n.heightAuto&&n.backdrop&&!n.toast&&rt([document.documentElement,document.body],x["height-auto"])},ge=function(t){return t.checked?1:0},he=function(t){return t.checked?t.value:null},ve=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},be=function(e,n){function o(t){return we[n.input](i,Ce(t),n)}var i=F();v(n.inputOptions)?(Lt(),n.inputOptions.then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):g("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},ye=function(e,n){var o=e.getInput();O(o),n.inputValue.then(function(t){o.value="number"===n.input?parseFloat(t)||0:t+"",L(o),o.focus(),e.hideLoading()}).catch(function(t){g("Error in inputValue promise: "+t),o.value="",L(o),o.focus(),e.hideLoading()})},we={select:function(t,e,i){var r=st(t,x.select);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("option");o.value=e,o.innerHTML=n,i.inputValue.toString()===e.toString()&&(o.selected=!0),r.appendChild(o)}),r.focus()},radio:function(t,e,a){var s=st(t,x.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),i=document.createElement("label");o.type="radio",o.name=x.radio,o.value=e,a.inputValue.toString()===e.toString()&&(o.checked=!0);var r=document.createElement("span");r.innerHTML=n,r.className=x.label,i.appendChild(o),i.appendChild(r),s.appendChild(i)});var n=s.querySelectorAll("input");n.length&&n[0].focus()}},Ce=function(e){var n=[];return"undefined"!=typeof Map&&e instanceof Map?e.forEach(function(t,e){n.push([e,t])}):Object.keys(e).forEach(function(t){n.push([t,e[t]])}),n},ke=function(e,n){var o=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return ge(n);case"radio":return he(n);case"file":return ve(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(e,n);n.inputValidator?(e.disableInput(),Promise.resolve().then(function(){return n.inputValidator(o,n.validationMessage)}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):xe(e,n,o)})):e.getInput().checkValidity()?xe(e,n,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},xe=function(e,t,n){(t.showLoaderOnConfirm&&Lt(),t.preConfirm)?(e.resetValidationMessage(),Promise.resolve().then(function(){return t.preConfirm(n,t.validationMessage)}).then(function(t){V(W())||!1===t?e.hideLoading():ue(e,void 0===t?n:t)})):ue(e,n)},Se=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Left","Right","Up","Down"],Pe=["Escape","Esc"],Be=function(t,e,n,o){n.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?Ae(t,e,n):"Tab"===e.key?Ee(e,n):-1!==Se.indexOf(e.key)?Te():-1!==Pe.indexOf(e.key)&&Le(e,n,o)},Ae=function(t,e,n){if(!e.isComposing&&e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML){if(-1!==["textarea","file"].indexOf(n.input))return;At(),e.preventDefault()}},Ee=function(t,e){for(var n=t.target,o=X(),i=-1,r=0;r<o.length;r++)if(n===o[r]){i=r;break}t.shiftKey?le(0,i,-1):le(0,i,1),t.stopPropagation(),t.preventDefault()},Te=function(){var t=K(),e=Y();document.activeElement===t&&V(e)?e.focus():document.activeElement===e&&V(t)&&t.focus()},Le=function(t,e,n){C(e.allowEscapeKey)&&(t.preventDefault(),n(k.esc))},Oe=function(t,e,n){t.popup.onclick=function(){e.showConfirmButton||e.showCancelButton||e.showCloseButton||e.input||n(k.close)}},Me=!1,Ve=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(Me=!0)}}},je=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(Me=!0)}}},He=function(e,n,o){e.container.onclick=function(t){Me?Me=!1:t.target===e.container&&C(n.allowOutsideClick)&&o(k.backdrop)}};var Ie=function(t,e,n){e.timer&&(t.timeout=new te(function(){n("timer"),delete t.timeout},e.timer))},qe=function(t,e){if(!e.toast)return C(e.allowEnterKey)?e.focusCancel&&V(t.cancelButton)?t.cancelButton.focus():e.focusConfirm&&V(t.confirmButton)?t.confirmButton.focus():void le(0,-1,1):Re()},Re=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};
15051var De,Ne=Object.freeze({hideLoading:Ut,disableLoading:Ut,getInput:function(t){var e=ht.innerParams.get(t||this),n=ht.domCache.get(t||this);return n?B(n.content,e.input):null},close:Zt,closePopup:Zt,closeModal:Zt,closeToast:Zt,enableButtons:function(){Xt(this,["confirmButton","cancelButton"],!1)},disableButtons:function(){Xt(this,["confirmButton","cancelButton"],!0)},enableConfirmButton:function(){h("Swal.enableConfirmButton()","Swal.getConfirmButton().removeAttribute('disabled')"),Xt(this,["confirmButton"],!1)},disableConfirmButton:function(){h("Swal.disableConfirmButton()","Swal.getConfirmButton().setAttribute('disabled', '')"),Xt(this,["confirmButton"],!0)},enableInput:function(){return Gt(this.getInput(),!1)},disableInput:function(){return Gt(this.getInput(),!0)},showValidationMessage:function(t){var e=ht.domCache.get(this);e.validationMessage.innerHTML=t;var n=window.getComputedStyle(e.popup);e.validationMessage.style.marginLeft="-".concat(n.getPropertyValue("padding-left")),e.validationMessage.style.marginRight="-".concat(n.getPropertyValue("padding-right")),L(e.validationMessage);var o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedBy",x["validation-message"]),A(o),rt(o,x.inputerror))},resetValidationMessage:function(){var t=ht.domCache.get(this);t.validationMessage&&O(t.validationMessage);var e=this.getInput();e&&(e.removeAttribute("aria-invalid"),e.removeAttribute("aria-describedBy"),at(e,x.inputerror))},getProgressSteps:function(){return h("Swal.getProgressSteps()","const swalInstance = Swal.fire({progressSteps: ['1', '2', '3']}); const progressSteps = swalInstance.params.progressSteps"),ht.innerParams.get(this).progressSteps},setProgressSteps:function(t){h("Swal.setProgressSteps()","Swal.update()");var e=s({},ht.innerParams.get(this),{progressSteps:t});St(0,e),ht.innerParams.set(this,e)},showProgressSteps:function(){var t=ht.domCache.get(this);L(t.progressSteps)},hideProgressSteps:function(){var t=ht.domCache.get(this);O(t.progressSteps)},_main:function(t){!function(t){for(var e in t)Mt(i=e)||w('Unknown parameter "'.concat(i,'"')),t.toast&&(o=e,-1!==Dt.indexOf(o)&&w('The parameter "'.concat(o,'" is incompatible with toasts'))),Vt(n=void 0)&&h(n,Vt(n));var n,o,i}(t),R()&&Ht.swalCloseEventFinishedCallback&&(Ht.swalCloseEventFinishedCallback(),delete Ht.swalCloseEventFinishedCallback),Ht.deferDisposalTimer&&(clearTimeout(Ht.deferDisposalTimer),delete Ht.deferDisposalTimer);var e=s({},It,t);ne(e),Object.freeze(e),Ht.timeout&&(Ht.timeout.stop(),delete Ht.timeout),clearTimeout(Ht.restoreFocusTimeout);var n=function(t){var e={popup:R(),container:H(),content:F(),actions:Z(),confirmButton:K(),cancelButton:Y(),closeButton:J(),validationMessage:W(),progressSteps:z()};return ht.domCache.set(t,e),e}(this);return Bt(this,e),ht.innerParams.set(this,e),function(n,o,i){return new Promise(function(t){var e=function t(e){n.closePopup({dismiss:e})};Kt.swalPromiseResolve.set(n,t);Ie(Ht,i,e);o.confirmButton.onclick=function(){return ae(n,i)};o.cancelButton.onclick=function(){return se(n,e)};o.closeButton.onclick=function(){return e(k.close)};de(o,i,e);ce(n,Ht,i,e);if(i.toast&&(i.input||i.footer||i.showCloseButton)){rt(document.body,x["toast-column"])}else{at(document.body,x["toast-column"])}re(n,i);ie(i);qe(o,i);o.container.scrollTop=0})}(this,n,e)},update:function(e){var t=R();if(!t||b(t,x.hide))return w("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var n={};Object.keys(e).forEach(function(t){Fe.isUpdatableParameter(t)?n[t]=e[t]:w('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js'))});var o=s({},ht.innerParams.get(this),n);Bt(this,o),ht.innerParams.set(this,o),Object.defineProperties(this,{params:{value:s({},this.params,e),writable:!1,enumerable:!0}})}});function Ue(){if("undefined"!=typeof window){"undefined"==typeof Promise&&g("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),De=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});var i=this._main(this.params);ht.promise.set(this,i)}}Ue.prototype.then=function(t){return ht.promise.get(this).then(t)},Ue.prototype.finally=function(t){return ht.promise.get(this).finally(t)},s(Ue.prototype,Ne),s(Ue,Nt),Object.keys(Ne).forEach(function(e){Ue[e]=function(){var t;if(De)return(t=De)[e].apply(t,arguments)}}),Ue.DismissReason=k,Ue.version="8.18.5";var Fe=Ue;return Fe.default=Fe}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); 15052"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,"@charset \"UTF-8\";
15052.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon::before{display:flex;align-items:center;font-size:2em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon::before{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 .0625em #fff,0 0 0 .125em rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-container{display:flex;position:fixed;z-index:1060;
15052top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;background-color:transparent;-webkit-overflow-scrolling:touch}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-container.swal2-fade{transition:background-color .1s}.swal2-container.swal2-shown{background-color:rgba(0,0,0,.4)}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\"\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;outline:initial;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:inherit}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:inherit;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;zoom:normal;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;zoom:normal;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon::before{display:flex;align-items:center;height:92%;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning::before{content:\"!\"}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info::before{content:\"i\"}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question::before{content:\"?\"}.swal2-icon.swal2-question.swal2-arabic-question-mark::before{content:\"Ø\"}.swal2-icon.swal2-success{border-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;
15052left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.875em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-show.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-hide.swal2-noanimation{-webkit-animation:none;animation:none}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-animate-success-icon .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-animate-success-icon .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-animate-success-icon .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-animate-error-icon{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-animate-error-icon .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}
15052}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.875em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}
1505250%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-shown{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent}body.swal2-no-backdrop .swal2-shown>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-shown.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-top-left,body.swal2-no-backdrop .swal2-shown.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-top-end,body.swal2-no-backdrop .swal2-shown.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-shown.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-left,body.swal2-no-backdrop .swal2-shown.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-center-end,body.swal2-no-backdrop .swal2-shown.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-shown.swal2-bottom-left,body.swal2-no-backdrop .swal2-shown.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-shown.swal2-bottom-end,body.swal2-no-backdrop .swal2-shown.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-shown{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}");; 15053/*************************************************************************************************** 15054LoadingOverlay - A flexible loading overlay jQuery plugin 15055 Author : Gaspare Sganga 15056 Version : 2.1.6 15057 License : MIT 15058 Documentation : https://gasparesganga.com/labs/jquery-loading-overlay/ 15059***************************************************************************************************/ 15060!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?e(require("jquery")):e(jQuery)}(function(g,a){"use strict";var o={background:"rgba(255, 255, 255, 0.8)",backgroundClass:"",image:"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1000'><circle r='80' cx='500' cy='90'/><circle r='80' cx='500' cy='910'/><circle r='80' cx='90' cy='500'/><circle r='80' cx='910' cy='500'/><circle r='80' cx='212' cy='212'/><circle r='80' cx='788' cy='212'/><circle r='80' cx='212' cy='788'/><circle r='80' cx='788' cy='788'/></svg>",imageAnimation:"2000ms rotate_right",imageAutoResize:!0,imageResizeFactor:1,imageColor:"#202020",imageClass:"",imageOrder:1,fontawesome:"",fontawesomeAnimation:"",fontawesomeAutoResize:!0,fontawesomeResizeFactor:1,fontawesomeColor:"#202020",fontawesomeOrder:2,custom:"",customAnimation:"",customAutoResize:!0,customResizeFactor:1,customOrder:3,text:"",textAnimation:"",textAutoResize:!0,textResizeFactor:.5,textColor:"#202020",textClass:"",textOrder:4,progress:!1,progressAutoResize:!0,progressResizeFactor:.25,progressColor:"#a0a0a0",progressClass:"",progressOrder:5,progressFixedPosition:"",progressSpeed:200,progressMin:0,progressMax:100,size:50,maxSize:120,minSize:20,direction:"column",fade:!0,resizeInterval:50,zIndex:2147483647},c={overlay:{"box-sizing":"border-box",position:"relative",display:"flex","flex-wrap":"nowrap","align-items":"center","justify-content":"space-around"},element:{"box-sizing":"border-box",overflow:"visible",flex:"0 0 auto",display:"flex","justify-content":"center","align-items":"center"},element_svg:{width:"50%",height:"50%"},progress_fixed:{position:"absolute",left:"0",width:"100%"},progress_wrapper:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%"},progress_bar:{position:"absolute",left:"0"}},n={count:0,container:a,settings:a,wholePage:a,resizeIntervalId:a,text:a,progress:a},s={animations:["rotate_right","rotate_left","fadein","pulse"],progressPosition:["top","bottom"]},d={animations:{name:"rotate_right",time:"2000ms"},fade:[400,200]};function r(e,s){e=g(e),s.size=b(s.size),s.maxSize=parseInt(s.maxSize,10)||0,s.minSize=parseInt(s.minSize,10)||0,s.resizeInterval=parseInt(s.resizeInterval,10)||0;var t=u(e),a=v(e);if(!1===a){if((a=g.extend({},n)).container=e,a.wholePage=e.is("body"),t=g("<div>",{class:"loadingoverlay"}).css(c.overlay).css("flex-direction","row"===s.direction.toLowerCase()?"row":"column"),s.backgroundClass?t.addClass(s.backgroundClass):t.css("background",s.background),a.wholePage&&t.css({position:"fixed",top:0,left:0,width:"100%",height:"100%"}),void 0!==s.zIndex&&t.css("z-index",s.zIndex),s.image){g.isArray(s.imageColor)?0===s.imageColor.length?s.imageColor=!1:1===s.imageColor.length?s.imageColor={fill:s.imageColor[0]}:s.imageColor={fill:s.imageColor[0],stroke:s.imageColor[1]}:s.imageColor&&(s.imageColor={fill:s.imageColor});var o=x(t,s.imageOrder,s.imageAutoResize,s.imageResizeFactor,s.imageAnimation);"<svg"===s.image.slice(0,4).toLowerCase()&&"</svg>"===s.image.slice(-6).toLowerCase()?(o.append(s.image),o.children().css(c.element_svg),!s.imageClass&&s.imageColor&&o.find("*").css(s.imageColor)):".svg"===s.image.slice(-4).toLowerCase()||"data:image/svg"===s.image.slice(0,14).toLowerCase()?g.ajax({url:s.image,type:"GET",dataType:"html",global:!1}).done(function(e){o.html(e),o.children().css(c.element_svg),!s.imageClass&&s.imageColor&&o.find("*").css(s.imageColor)}):o.css({"background-image":"url("+s.image+")","background-position":"center","background-repeat":"no-repeat","background-size":"cover"}),s.imageClass&&o.addClass(s.imageClass)}if(s.fontawesome){o=x(t,s.fontawesomeOrder,s.fontawesomeAutoResize,s.fontawesomeResizeFactor,s.fontawesomeAnimation).addClass("loadingoverlay_fa");g("<div>",{class:s.fontawesome}).appendTo(o),s.fontawesomeColor&&o.css("color",s.fontawesomeColor)}if(s.custom)o=x(t,s.customOrder,s.customAutoResize,s.customResizeFactor,s.customAnimation).append(s.custom);
vendor: 7,751 bytes, lines 15060-15067
15060if(s.text&&(a.text=x(t,s.textOrder,s.textAutoResize,s.textResizeFactor,s.textAnimation).addClass("loadingoverlay_text").text(s.text),s.textClass?a.text.addClass(s.textClass):s.textColor&&a.text.css("color",s.textColor)),s.progress){o=x(t,s.progressOrder,s.progressAutoResize,s.progressResizeFactor,!1).addClass("loadingoverlay_progress");var r=g("<div>").css(c.progress_wrapper).appendTo(o);a.progress={bar:g("<div>").css(c.progress_bar).appendTo(r),fixed:!1,margin:0,min:parseFloat(s.progressMin),max:parseFloat(s.progressMax),speed:parseInt(s.progressSpeed,10)};var i=(s.progressFixedPosition+"").replace(/\s\s+/g," ").toLowerCase().split(" ");2===i.length&&w(i[0])?(a.progress.fixed=i[0],a.progress.margin=b(i[1])):2===i.length&&w(i[1])?(a.progress.fixed=i[1],a.progress.margin=b(i[0])):1===i.length&&w(i[0])&&(a.progress.fixed=i[0],a.progress.margin=0),"top"===a.progress.fixed?o.css(c.progress_fixed).css("top",a.progress.margin?a.progress.margin.value+(a.progress.margin.fixed?a.progress.margin.units:"%"):0):"bottom"===a.progress.fixed&&o.css(c.progress_fixed).css("top","auto"),s.progressClass?a.progress.bar.addClass(s.progressClass):s.progressColor&&a.progress.bar.css("background",s.progressColor)}s.fade?!0===s.fade?s.fade=d.fade:"string"==typeof s.fade||"number"==typeof s.fade?s.fade=[s.fade,s.fade]:g.isArray(s.fade)&&s.fade.length<2&&(s.fade=[s.fade[0],s.fade[0]]):s.fade=[0,0],s.fade=[parseInt(s.fade[0],10),parseInt(s.fade[1],10)],a.settings=s,t.data("loadingoverlay_data",a),e.data("loadingoverlay",t),t.fadeTo(0,.01).appendTo("body"),p(e,!0),0<s.resizeInterval&&(a.resizeIntervalId=setInterval(function(){p(e,!1)},s.resizeInterval)),t.fadeTo(s.fade[0],1)}a.count++}function i(e,s){var t=u(e=g(e)),a=v(e);!1!==a&&(a.count--,(s||a.count<=0)&&t.animate({opacity:0},a.settings.fade[1],function(){a.resizeIntervalId&&clearInterval(a.resizeIntervalId),g(this).remove(),e.removeData("loadingoverlay")}))}function l(e){p(g(e),!0)}function m(e,s){var t=v(e=g(e));!1!==t&&t.text&&(!1===s?t.text.hide():t.text.show().text(s))}function f(e,s){var t=v(e=g(e));if(!1!==t&&t.progress)if(!1===s)t.progress.bar.hide();else{var a=100*((parseFloat(s)||0)-t.progress.min)/(t.progress.max-t.progress.min);a<0&&(a=0),100<a&&(a=100),t.progress.bar.show().animate({width:a+"%"},t.progress.speed)}}function p(e,t){var s=u(e),a=v(e);if(!1!==a){if(!a.wholePage){var o="fixed"===e.css("position"),r=o?e[0].getBoundingClientRect():e.offset();s.css({position:o?"fixed":"absolute",top:r.top+parseInt(e.css("border-top-width"),10),left:r.left+parseInt(e.css("border-left-width"),10),width:e.innerWidth(),height:e.innerHeight()})}if(a.settings.size){var i=a.wholePage?g(window):e,n=a.settings.size.value;a.settings.size.fixed||(n=Math.min(i.innerWidth(),i.innerHeight())*n/100,a.settings.maxSize&&n>a.settings.maxSize&&(n=a.settings.maxSize),a.settings.minSize&&n<a.settings.minSize&&(n=a.settings.minSize)),s.children(".loadingoverlay_element").each(function(){var e=g(this);if(t||e.data("loadingoverlay_autoresize")){var s=e.data("loadingoverlay_resizefactor");e.hasClass("loadingoverlay_fa")||e.hasClass("loadingoverlay_text")?e.css("font-size",n*s+a.settings.size.units):e.hasClass("loadingoverlay_progress")?(a.progress.bar.css("height",n*s+a.settings.size.units),a.progress.fixed?"bottom"===a.progress.fixed&&e.css("bottom",a.progress.margin?a.progress.margin.value+(a.progress.margin.fixed?a.progress.margin.units:"%"):0).css("bottom","+="+n*s+a.settings.size.units):a.progress.bar.css("top",e.position().top).css("top","-="+n*s*.5+a.settings.size.units)):e.css({width:n*s+a.settings.size.units,height:n*s+a.settings.size.units})}})}}}function u(e){return e.data("loadingoverlay")}function v(e){var s=u(e),t=void 0===s?a:s.data("loadingoverlay_data");return void 0===t?(g(".loadingoverlay").each(function(){var e=g(this),s=e.data("loadingoverlay_data");document.body.contains(s.container[0])||(s.resizeIntervalId&&clearInterval(s.resizeIntervalId),e.remove())}),!1):(s.toggle(e.is(":visible")),t)}function x(e,s,t,a,o){var r=g("<div>",{class:"loadingoverlay_element",css:{order:s}}).css(c.element).data({loadingoverlay_autoresize:t,loadingoverlay_resizefactor:a}).appendTo(e);if(!0===o&&(o=d.animations.time+" "+d.animations.name),"string"==typeof o){var i,n,l=o.replace(/\s\s+/g," ").toLowerCase().split(" ");2===l.length&&h(l[0])&&y(l[1])?(i=l[1],n=l[0]):2===l.length&&h(l[1])&&y(l[0])?(i=l[0],n=l[1]):1===l.length&&h(l[0])?(i=d.animations.name,n=l[0]):1===l.length&&y(l[0])&&(i=l[0],n=d.animations.time),r.css({"animation-name":"loadingoverlay_animation__"+i,"animation-duration":n,"animation-timing-function":"linear","animation-iteration-count":"infinite"})}return r}function h(e){return!isNaN(parseFloat(e))&&("s"===e.slice(-1)||"ms"===e.slice(-2))}function y(e){return-1<s.animations.indexOf(e)}function w(e){return-1<s.progressPosition.indexOf(e)}function b(e){return!(!e||e<0)&&("string"==typeof e&&-1<["vmin","vmax"].indexOf(e.slice(-4))?{fixed:!0,units:e.slice(-4),value:e.slice(0,-4)}:"string"==typeof e&&-1<["rem"].indexOf(e.slice(-3))?{fixed:!0,units:e.slice(-3),value:e.slice(0,-3)}:"string"==typeof e&&-1<["px","em","cm","mm","in","pt","pc","vh","vw"].indexOf(e.slice(-2))?{fixed:!0,units:e.slice(-2),value:e.slice(0,-2)}:{fixed:!1,units:"px",value:parseFloat(e)})}g.LoadingOverlaySetup=function(e){g.extend(!0,o,e)},g.LoadingOverlay=function(e,s){switch(e.toLowerCase()){case"show":r("body",g.extend(!0,{},o,s));break;case"hide":i("body",s);break;case"resize":l("body");break;case"text":m("body",s);break;case"progress":f("body",s)}},g.fn.LoadingOverlay=function(e,s){switch(e.toLowerCase()){case"show":var t=g.extend(!0,{},o,s);return this.each(function(){r(this,t)});case"hide":return this.each(function(){i(this,s)});case"resize":return this.each(function(){l(this)});case"text":return this.each(function(){m(this,s)});case"progress":return this.each(function(){f(this,s)})}},g(function(){g("head").append(["<style>","@-webkit-keyframes loadingoverlay_animation__rotate_right {","to {","-webkit-transform : rotate(360deg);","transform : rotate(360deg);","}","}","@keyframes loadingoverlay_animation__rotate_right {","to {","-webkit-transform : rotate(360deg);","transform : rotate(360deg);","}","}","@-webkit-keyframes loadingoverlay_animation__rotate_left {","to {","-webkit-transform : rotate(-360deg);","transform : rotate(-360deg);","}","}","@keyframes loadingoverlay_animation__rotate_left {","to {","-webkit-transform : rotate(-360deg);","transform : rotate(-360deg);","}","}","@-webkit-keyframes loadingoverlay_animation__fadein {","0% {","opacity : 0;","-webkit-transform : scale(0.1, 0.1);","transform : scale(0.1, 0.1);","}","50% {","opacity : 1;","}","100% {","opacity : 0;","-webkit-transform : scale(1, 1);","transform : scale(1, 1);","}","}","@keyframes loadingoverlay_animation__fadein {","0% {","opacity : 0;","-webkit-transform : scale(0.1, 0.1);","transform : scale(0.1, 0.1);","}","50% {","opacity : 1;","}","100% {","opacity : 0;","-webkit-transform : scale(1, 1);","transform : scale(1, 1);","}","}","@-webkit-keyframes loadingoverlay_animation__pulse {","0% {","-webkit-transform : scale(0, 0);","transform : scale(0, 0);","}","50% {","-webkit-transform : scale(1, 1);","transform : scale(1, 1);","}","100% {","-webkit-transform : scale(0, 0);","transform : scale(0, 0);","}","}","@keyframes loadingoverlay_animation__pulse {","0% {","-webkit-transform : scale(0, 0);","transform : scale(0, 0);","}","50% {","-webkit-transform : scale(1, 1);","transform : scale(1, 1);","}","100% {","-webkit-transform : scale(0, 0);","transform : scale(0, 0);","}","}","</style>"].join(" "))})});; 15061/* 15062* jQuery File Download Plugin v1.4.5 15063* 15064* http://www.johnculviner.com 15065* 15066* Copyright (c) 2013 - John Culviner 15067*
15068* Licensed under the MIT license: 15069* http://www.opensource.org/licenses/mit-license.php 15070* 15071* !!!!NOTE!!!! 15072* You must also write a cookie in conjunction with using this plugin in the server's response headers containing the file download: 15073* Set-Cookie: fileDownload=true; path=/" 15074* !!!!NOTE!!!! 15075*/ 15076 15077(function($, window){ 15078 // i'll just put them here to get evaluated on script load 15079 var htmlSpecialCharsRegEx = /[<>&\r\n"']/gm; 15080 var htmlSpecialCharsPlaceHolders = { 15081 '<': 'lt;', 15082 '>': 'gt;', 15083 '&': 'amp;', 15084 '\r': "#13;", 15085 '\n': "#10;", 15086 '"': 'quot;', 15087 "'": '#39;' /*single quotes just to be safe, IE8 doesn't support ', so use ' instead */ 15088 }; 15089 15090$.extend({ 15091 // 15092 //$.fileDownload('/path/to/url/', options) 15093 // see directly below for possible 'options' 15094 fileDownload: function (fileUrl, options) { 15095 15096 //provide some reasonable defaults to any unspecified options below 15097 var settings = $.extend({ 15098 15099 // 15100 //Requires jQuery UI: provide a message to display to the user when the file download is being prepared before the browser's dialog appears 15101 // 15102 preparingMessageHtml: null, 15103 15104 // 15105 //Requires jQuery UI: provide a message to display to the user when a file download fails 15106 // 15107 failMessageHtml: null, 15108 15109 // 15110 //the stock android browser straight up doesn't support file downloads initiated by a non GET: http://code.google.com/p/android/issues/detail?id=1780 15111 //specify a message here to display if a user tries with an android browser 15112 //if jQuery UI is installed this will be a dialog, otherwise it will be an alert 15113 //Set to null to disable the message and attempt to download anyway 15114 // 15115 androidPostUnsupportedMessageHtml: "Unfortunately your Android browser doesn't support this type of file download. Please try again with a different browser.", 15116 15117 // 15118 //Requires jQuery UI: options to pass into jQuery UI Dialog 15119 // 15120 dialogOptions: { modal: true }, 15121 15122 // 15123 //a function to call while the dowload is being prepared before the browser's dialog appears 15124 //Args: 15125 // url - the original url attempted 15126 // 15127 prepareCallback: function (url) { }, 15128 15129 // 15130 //a function to call after a file download successfully completed 15131 //Args: 15132 // url - the original url attempted 15133 // 15134 successCallback: function (url) { }, 15135 15136 // 15137 //a function to call after a file download request was canceled 15138 //Args: 15139 // url - the original url attempted 15140 // 15141 abortCallback: function (url) { }, 15142 15143 // 15144 //a function to call after a file download failed 15145 //Args: 15146 // responseHtml - the html that came back in response to the file download. this won't necessarily come back depending on the browser. 15147 // in less than IE9 a cross domain error occurs because 500+ errors cause a cross domain issue due to IE subbing out the 15148 // server's error message with a "helpful" IE built in message 15149 // url - the original url attempted 15150 // error - original error cautch from exception 15151 // 15152 failCallback: function (responseHtml, url, error) { }, 15153 15154 // 15155 // the HTTP method to use. Defaults to "GET". 15156 // 15157 httpMethod: "GET", 15158 15159 // 15160 // if specified will perform a "httpMethod" request to the specified 'fileUrl' using the specified data. 15161 // data must be an object (which will be $.param serialized) or already a key=value param string 15162 // 15163 data: null, 15164 15165 // 15166 //a period in milliseconds to poll to determine if a successful file download has occured or not 15167 // 15168 checkInterval: 100, 15169 15170 // 15171 //the cookie name to indicate if a file download has occured 15172 // 15173 cookieName: "fileDownload", 15174 15175 // 15176 //the cookie name to indicate if a file download has occured in Server Back 15177 // 15178 cookieNameResult: "fileDownloadDataResult", 15179 15180 // 15181 //the cookie value for the above name to indicate that a file download has occured 15182 // 15183 cookieValue: "true", 15184 15185 // 15186 //the cookie path for above name value pair 15187 // 15188 cookiePath: "/", 15189 15190 // 15191 //if specified it will be used when attempting to clear the above name value pair 15192 //useful for when downloads are being served on a subdomain (e.g. downloads.example.com) 15193 // 15194 cookieDomain: null, 15195 15196 // 15197 //the title for the popup second window as a download is processing in the case of a mobile browser 15198 // 15199 popupWindowTitle: "Initiating file download...", 15200 15201 // 15202 //Functionality to encode HTML entities for a POST, need this if data is an object with properties whose values contains strings with quotation marks. 15203 //HTML entity encoding is done by replacing all &,<,>,',",\r,\n characters. 15204 //Note that some browsers will POST the string htmlentity-encoded whilst others will decode it before POSTing. 15205 //It is recommended that on the server, htmlentity decoding is done irrespective. 15206 // 15207 encodeHTMLEntities: true 15208 15209 }, options); 15210 15211 var deferred = new $.Deferred(); 15212 15213 //Setup mobile browser detection: Partial credit: http://detectmobilebrowser.com/ 15214 var userAgent = (navigator.userAgent || navigator.vendor || window.opera).toLowerCase(); 15215 15216 var isIos; //has full support of features in iOS 4.0+, uses a new window to accomplish this. 15217 var isAndroid; //has full support of GET features in 4.0+ by using a new window. Non-GET is completely unsupported by the browser. See above for specifying a message. 15218 var isOtherMobileBrowser; //there is no way to reliably guess here so all other mobile devices will GET and POST to the current window. 15219 15220 if (/ip(ad|hone|od)/.test(userAgent)) { 15221 15222 isIos = true; 15223 15224 } else if (userAgent.indexOf('android') !== -1) { 15225 15226 isAndroid = true; 15227 15228 } else { 15229 15230 isOtherMobileBrowser = /avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|playbook|silk|iemobile|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
15230sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(userAgent.substr(0, 4)); 15231 15232 } 15233 15234 var httpMethodUpper = settings.httpMethod.toUpperCase(); 15235 15236 if (isAndroid && httpMethodUpper !== "GET" && settings.androidPostUnsupportedMessageHtml) { 15237 //the stock android browser straight up doesn't support file downloads initiated by non GET requests: http://code.google.com/p/android/issues/detail?id=1780 15238 15239 if ($().dialog) { 15240 $("<div>").html(settings.androidPostUnsupportedMessageHtml).dialog(settings.dialogOptions); 15241 } else { 15242 alert(settings.androidPostUnsupportedMessageHtml); 15243 } 15244 15245 return deferred.reject(); 15246 } 15247 15248 var $preparingDialog = null; 15249 15250 var internalCallbacks = { 15251 15252 onPrepare: function (url) { 15253 15254 //wire up a jquery dialog to display the preparing message if specified 15255 if (settings.preparingMessageHtml) { 15256 15257 $preparingDialog = $("<div>").html(settings.preparingMessageHtml).dialog(settings.dialogOptions); 15258 15259 } else if (settings.prepareCallback) { 15260 15261 settings.prepareCallback(url); 15262 15263 } 15264 15265 }, 15266 15267 onSuccess: function (url, data) { 15268 15269 //remove the perparing message if it was specified 15270 if ($preparingDialog) { 15271 $preparingDialog.dialog('close'); 15272 } 15273 15274 settings.successCallback(url, data); 15275 15276 deferred.resolve(url); 15277 }, 15278 15279 onAbort: function (url) { 15280 15281 //remove the perparing message if it was specified 15282 if ($preparingDialog) { 15283 $preparingDialog.dialog('close'); 15284 }; 15285 15286 settings.abortCallback(url); 15287 15288 deferred.reject(url); 15289 }, 15290 15291 onFail: function (responseHtml, url, error) { 15292 15293 //remove the perparing message if it was specified 15294 if ($preparingDialog) { 15295 $preparingDialog.dialog('close'); 15296 } 15297 15298 //wire up a jquery dialog to display the fail message if specified 15299 if (settings.failMessageHtml) { 15300 $("<div>").html(settings.failMessageHtml).dialog(settings.dialogOptions); 15301 } 15302 15303 settings.failCallback(responseHtml, url, error); 15304 15305 deferred.reject(responseHtml, url); 15306 } 15307 }; 15308 15309 internalCallbacks.onPrepare(fileUrl); 15310 15311 //make settings.data a param string if it exists and isn't already 15312 if (settings.data !== null && typeof settings.data !== "string") { 15313 settings.data = $.param(settings.data); 15314 } 15315 15316 15317 var $iframe, 15318 downloadWindow, 15319 formDoc, 15320 $form; 15321 15322 if (httpMethodUpper === "GET") { 15323 15324 if (settings.data !== null) { 15325 //need to merge any fileUrl params with the data object 15326 15327 var qsStart = fileUrl.indexOf('?'); 15328 15329 if (qsStart !== -1) { 15330 //we have a querystring in the url 15331 15332 if (fileUrl.substring(fileUrl.length - 1) !== "&") { 15333 fileUrl = fileUrl + "&"; 15334 } 15335 } else { 15336 15337 fileUrl = fileUrl + "?"; 15338 } 15339 15340 fileUrl = fileUrl + settings.data; 15341 } 15342 15343 if (isIos || isAndroid) { 15344 15345 downloadWindow = window.open(fileUrl); 15346 downloadWindow.document.title = settings.popupWindowTitle; 15347 window.focus(); 15348 15349 } else if (isOtherMobileBrowser) { 15350 15351 window.location(fileUrl); 15352 15353 } else { 15354 15355 //create a temporary iframe that is used to request the fileUrl as a GET request 15356 $iframe = $("<iframe style='display: none' src='"+fileUrl+"'></iframe>").appendTo("body"); 15357 } 15358 15359 } else { 15360 15361 var formInnerHtml = ""; 15362 15363 if (settings.data !== null) { 15364 15365 $.each(settings.data.replace(/\+/g, ' ').split("&"), function () { 15366 15367 var kvp = this.split("="); 15368 15369 //Issue: When value contains sign '=' then the kvp array does have more than 2 items. We have to join value back 15370 var k = kvp[0]; 15371 kvp.shift(); 15372 var v = kvp.join("="); 15373 kvp = [k, v]; 15374 15375 var key = settings.encodeHTMLEntities ? htmlSpecialCharsEntityEncode(decodeURIComponent(kvp[0])) : decodeURIComponent(kvp[0]); 15376 if (key) { 15377 var value = settings.encodeHTMLEntities ? htmlSpecialCharsEntityEncode(decodeURIComponent(kvp[1])) : decodeURIComponent(kvp[1]); 15378 formInnerHtml += '<input type="hidden" name="' + key + '" value="' + value + '" />'; 15379 } 15380 }); 15381 } 15382 15383 if (isOtherMobileBrowser) { 15384 15385 $form = $("<form>").appendTo("body"); 15386 $form.hide() 15387 .prop('method', settings.httpMethod) 15388 .prop('action', fileUrl) 15389 .html(formInnerHtml); 15390 15391 } else { 15392 15393 if (isIos) { 15394 15395 downloadWindow = window.open("about:blank"); 15396 downloadWindow.document.title = settings.popupWindowTitle; 15397 formDoc = downloadWindow.document; 15398 window.focus(); 15399 15400 } else { 15401 15402 $iframe = $("<iframe style='display: none' src='about:blank'></iframe>").appendTo("body"); 15403 formDoc = getiframeDocument($iframe); 15404 } 15405 15406 formDoc.write("<html><head></head><body><form method='" + settings.httpMethod + "' action='" + fileUrl + "'>" + formInnerHtml + "</form>" + settings.popupWindowTitle + "</body></html>"); 15407 $form = $(formDoc).find('form'); 15408 } 15409 15410 $form.submit(); 15411 } 15412 15413 15414 //check if the file download has completed every checkInterval ms 15415 setTimeout(checkFileDownloadComplete, settings.checkInterval); 15416 15417 15418 function checkFileDownloadComplete() { 15419 //has the cookie been written due to a file download occuring? 15420 15421 var cookieValue = settings.cookieValue; 15422 if(typeof cookieValue == 'string') { 15423 cookieValue = cookieValue.toLowerCase(); 15424 } 15425 15426 var lowerCaseCookie = settings.cookieName.toLowerCase() + "=" + cookieValue; 15427 15428 if (document.cookie.toLowerCase().indexOf(lowerCaseCookie) > -1) { 15429 15430 let dataCallBack = getCookieValue(settings.cookieNameResult); 15431 15432 //execute specified callback 15433 internalCallbacks.onSuccess(fileUrl, dataCallBack); 15434 15435 //remove cookie 15436 var cookieData = settings.cookieName + "=; path=" + settings.cookiePath + "; expires=" + new Date(0).toUTCString() + ";"; 15437 if (settings.cookieDomain) cookieData += " domain=" + settings.cookieDomain + ";"; 15438 document.cookie = cookieData; 15439 15440 var cookieData = settings.cookieNameResult + "=; path=" + settings.cookiePath + "; expires=" + new Date(0).toUTCString() + ";"; 15441 if (settings.cookieDomain) cookieData += " domain=" + settings.cookieDomain + ";"; 15442 document.cookie = cookieData; 15443 15444 15445 15446 //remove iframe 15447 cleanUp(false); 15448 15449 return; 15450 } 15451 15452 //has an error occured? 15453 //if neither containers exist below then the file download is occuring on the current window 15454 if (downloadWindow || $iframe) { 15455 15456 //has an error occured? 15457 try { 15458 15459 var formDoc = downloadWindow ? downloadWindow.document : getiframeDocument($iframe); 15460 15461 if (formDoc && formDoc.body !== null && formDoc.body.innerHTML.length) { 15462 15463 var isFailure = true; 15464 15465 if ($form && $form.length) { 15466 var $contents = $(formDoc.body).contents().first(); 15467 15468 try { 15469 if ($contents.length && $contents[0] === $form[0]) { 15470 isFailure = false; 15471 } 15472 } catch (e) { 15473 if (e && e.number == -2146828218) { 15474 // IE 8-10 throw a permission denied after the form reloads on the "$contents[0] === $form[0]" comparison 15475 isFailure = true; 15476 } else { 15477 throw e; 15478 } 15479 } 15480 } 15481 15482 if (isFailure) { 15483 // IE 8-10 don't always have the full content available right away, they need a litle bit to finish 15484 setTimeout(function () { 15485 internalCallbacks.onFail(formDoc.body.innerHTML, fileUrl); 15486 cleanUp(true); 15487 }, 100); 15488 15489 return; 15490 } 15491 } 15492 } 15493 catch (err) { 15494 15495 //500 error less than IE9 15496 internalCallbacks.onFail('', fileUrl, err); 15497 15498 cleanUp(true); 15499 15500 return; 15501 } 15502 } 15503 15504 15505 //keep checking... 15506 setTimeout(checkFileDownloadComplete, settings.checkInterval); 15507 } 15508 15509 //gets an iframes document in a cross browser compatible manner 15510 function getiframeDocument($iframe) { 15511 var iframeDoc = $iframe[0].contentWindow || $iframe[0].contentDocument; 15512 if (iframeDoc.document) { 15513 iframeDoc = iframeDoc.document; 15514 } 15515 return iframeDoc; 15516 } 15517 15518 function cleanUp(isFailure) { 15519 15520 setTimeout(function() { 15521 15522 if (downloadWindow) { 15523 15524 if (isAndroid) { 15525 downloadWindow.close(); 15526 } 15527 15528 if (isIos) { 15529 if (downloadWindow.focus) { 15530 downloadWindow.focus(); //ios safari bug doesn't allow a window to be closed unless it is focused 15531 if (isFailure) { 15532 downloadWindow.close(); 15533 } 15534 } 15535 } 15536 } 15537
15538 //iframe cleanup appears to randomly cause the download to fail 15539 //not doing it seems better than failure... 15540 //if ($iframe) { 15541 // $iframe.remove(); 15542 //} 15543 15544 }, 0); 15545 } 15546 15547 15548 function htmlSpecialCharsEntityEncode(str) { 15549 return str.replace(htmlSpecialCharsRegEx, function(match) { 15550 return '&' + htmlSpecialCharsPlaceHolders[match]; 15551 }); 15552 } 15553 var promise = deferred.promise(); 15554 promise.abort = function() { 15555 cleanUp(); 15556 $iframe.attr('src', '').html(''); 15557 internalCallbacks.onAbort(fileUrl); 15558 }; 15559 return promise; 15560 15561 function getCookieValue(name) { 15562 const value = `; ${document.cookie}`; 15563 const parts = value.split(`; ${name}=`); 15564 if (parts.length === 2) return parts.pop().split(';').shift(); 15565 } 15566 } 15567}); 15568 15569})(jQuery, this || window); 15570; 15571/*! jquery.cookie v1.4.1 | MIT */ 15572!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?a(require("jquery")):a(jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});; 15573/** 15574 * 15575 */ 15576//toastr.options.timeOut = 4000; 15577//toastr.options.closeButton = true; 15578//toastr.options.positionClass = "toast-bottom-left"; 15579 15580var configCongViec = { 15581 urlCheckMHDNextStep: '/MauHoaDonDeXuat/CheckMHDNextStep', 15582 urlFilterMauHoaDon: '/MauHoaDonDeXuat/FilterMauHoaDon', 15583 urlTaoYeuCauSuaMau: '/MauHoaDonDeXuat/TaoYeuCauSuaMau', 15584 urlTaoYeuCauThietKeMoi: '/MauHoaDonDeXuat/TaoYeuCauThietKeMoi', 15585 urlLuuMauHoaDon: '/MauHoaDonDeXuat/luuMau', 15586 urlSaveAndSendEmail: '/MauHoaDonDeXuat/saveAndSendEmail', 15587 urlViewSuaMau: '/MauHoaDonDeXuat/_ViewSuaMauHoaDon', 15588 urlViewMauDaChinhSua: '/MauHoaDonDeXuat/ViewMauDaChinhSua', 15589 urlQuanLyCongViec: '/MauHoaDonDeXuat', 15590 urlGetXlstData: "/MauHoaDonDeXuat/getXSLTData", 15591 urlGenInvoiceInfo: "/MauHoaDonDeXuat/GenInvoiceInfo", 15592 urlDownloadMauDaSuaPDF: '/MauHoaDonDeXuat/DownloadMauDaSuaPDF', 15593 urlDownloadMauDaSuaImage: '/MauHoaDonDeXuat/DownloadMauDaSuaImage', 15594 urlGetKyHieuTienTo: '/MauHoaDonDeXuat/GetKyHieuTienTo', 15595 isKhachHang: true, 15596 pageSize: 3 15597} 15598 15599var notifyObj = { 15600 success: function (success) { 15601 $.notify({ message: success }, { type: 'success' }); 15602 }, 15603 danger: function (danger) { 15604 $.notify({ message: danger }, { type: 'danger' }); 15605 }, 15606 info: function (info) { 15607 $.notify({ message: info }, { type: 'info' }); 15608 }, 15609 warning: function (warning) { 15610 $.notify({ message: warning }, { type: 'warning' }); 15611 } 15612} 15613function callApi(method, urls, formData, async = true) { 15614 return new Promise((resolve, reject) => { 15615 $.ajax({
15616 type: method, 15617 url: urls, 15618 contentType: false, 15619 processData: false, 15620 async: async, 15621 data: formData, 15622 success: function (data) { 15623 loading(false); 15624 resolve(data); 15625 }, 15626 error: function (err) { 15627 15628 loading(false); 15629 reject(err); 15630 } 15631 , fail: function (err) { 15632 loading(false); 15633 } 15634 }); 15635 }); 15636} 15637 15638var IsThongTu = { 15639 TT32: 0, 15640 TT68: 1, 15641 TT92: 2, 15642 TT78: 3, 15643 ND70: 5 15644} 15645 15646 15647function confirmDialog(message) { 15648 return new Promise((resolve, reject) => { 15649 BootstrapDialog.show({ 15650 title: 'Thông báo', 15651 message: message, 15652 closable: true, 15653 closeByBackdrop: false, 15654 closeByKeyboard: true, 15655 buttons: [{ 15656 label: '<i class="icon-thuchien"></i> Thá»±c hiá»n', 15657 cssClass: 'btn-primary btnfixwidth', 15658 data: { 15659 js: 'btn-confirm' 15660 }, 15661 action: function () { 15662 $('.bootstrap-dialog-close-button').trigger('click'); 15663 resolve(); 15664 } 15665 }, { 15666 icon: 'icon-close', label: 'Äóng', 15667 cssClass: 'btn-primary btnfixwidth btn-white', 15668 data: { 15669 js: 'btn-confirm' 15670 }, 15671 action: function () { 15672 $('.bootstrap-dialog-close-button').trigger('click'); 15673 reject(); 15674 } 15675 }] 15676 }); 15677 }); 15678} 15679 15680function alertDialog(message, type = "info") { 15681 Swal.fire({ 15682 title: 'Thông báo', 15683 html: '<div class="swal2-icon swal2-' + type + ' swal2-animate-warning-icon" style="display: flex;"></div>' + 15684 '<div class="notify-text">' + message + '</div>', 15685 type: type, 15686 showCancelButton: true,
15687 showConfirmButton: false, 15688 cancelButtonText: '<i class="icon-close"></i> Äóng', 15689 customClass: { 15690 container: 'lbl-new notify-info', 15691 cancelButton: 'btn btnfixwidth btn-white', 15692 } 15693 }).then((result) => { 15694 if (result.value) { 15695 Swal.close(); 15696 } else if (result.dismiss === Swal.DismissReason.cancel) { 15697 Swal.close(); 15698 } 15699 }); 15700} 15701 15702function readXmlFile(file) { 15703 if (file.name.indexOf('.xslt') >= 0 || file.name.indexOf('.xsl') >= 0) { 15704 return new Promise((resolve, reject) => { 15705 var fileReader = new FileReader(); 15706 fileReader.readAsText(file); 15707 fileReader.onload = () => resolve(fileReader.result); 15708 fileReader.onerror = error => reject(error); 15709 }); 15710 } 15711 else { 15712 alert('File không hợp lá». Vui lòng chá»n Äúng Äá»nh dạng file!'); 15713 return new Promise(resolve => { 15714 resolve("File không hợp lá»"); 15715 }); 15716 } 15717} 15718function loading(status) { 15719 if (status) { 15720 if ($(".loading-container").length === 0) { 15721 $('html').append("<div class='loading-container'><div class='loading'><div></div>"); 15722 } 15723 } 15724 else { 15725 $(".loading-container").remove(); 15726 } 15727} 15728 15729function getUrlParameterByName(name) { 15730 name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 15731 var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 15732 results = regex.exec(location.search); 15733 return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 15734} 15735 15736function GetObjectSearch() { 15737 var obj = { 15738 dateFrom: $("#txtDateFrom").val().split("/").reverse().join("-"), 15739 dateTo: $("#txtDateTo").val().split("/").reverse().join("-"), 15740 region: $("input[name=groupRegion]:checked").val() 15741 }; 15742 var d = new Date(); 15743 if (obj.dateFrom === '') obj.dateFrom = (d.getFullYear() + "/" + (d.getMonth() + 1) + "/1"); 15744 if (obj.dateTo === '') obj.dateTo = (d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()); 15745 obj.dateFrom += " 00:00:00"; 15746 obj.dateTo += " 23:59:00"; 15747 return obj; 15748} 15749 15750function loadingBC(status) { 15751 if (status) { 15752 if ($(".loading-container").length == 0) { 15753 $('html').append("<div class='loading-container'><div class='loading'><div></div>"); 15754 } 15755 } 15756 else { 15757 $(".loading-container").remove(); 15758 } 15759} 15760 15761function GetKyHieu(isSBL) { 15762 if (isSBL != true) { 15763 let maLoaiHoaDon = ($("#hdnLOAI_HOA_DON").val() != null ? $("#hdnLOAI_HOA_DON").val() : $('#LoaiHoaDonCbo').val()); 15764 isSBL = (maLoaiHoaDon == "10" || maLoaiHoaDon == "11" || maLoaiHoaDon == "13"); 15765 } 15766 15767 var kiTuDau = $("#kyHieuMau").val(); 15768 var kiTuCuoi = $("#KY_HIEU").val(); 15769 var kyHieuFull70 = $.trim($('#year').val()) + $('#kyHieuMauHauTo').val(); 15770 if (kiTuCuoi?.length === 1) { 15771 kiTuCuoi = "00" + kiTuCuoi; 15772 } else if (kiTuCuoi?.length === 2) { 15773 kiTuCuoi = "0" + kiTuCuoi; 15774 } else if (kiTuCuoi?.length === 0) { 15775 kiTuCuoi = "000"; 15776 } 15777 if (isSBL != null && isSBL == true) { 15778 if ($('#IS_TT68').val() == "5") return kyHieuFull70; 15779 return kiTuDau + "-" + kiTuCuoi; 15780 } 15781 return kiTuDau + "/" + kiTuCuoi; 15782} 15783 15784function getKyHieuFull() { 15785 if ($('#IS_TT68').val() == "3" && ($('#LoaiHoaDonCbo').val() == 7 || $('#hdnLOAI_HOA_DON').val() == 7)) { 15786 return $("#kyHieuMauTienTo37").val() + '/' + $('#year37').val() + '/' + $('#kyHieuMauHauTo37').val(); 15787 } 15788 return $('#MAU_SO_HAU_TO').val() + $.trim($('#year').val()) + $('#kyHieuMauHauTo').val() + $('#kyHieuMauTienTo').val(); 15789} 15790 15791function FillMauSoKyHieu() { 15792 if ($('#IS_TT68').val() == "3" && ($('#LoaiHoaDonCbo').val() == 7 || $('#hdnLOAI_HOA_DON').val() == 7)) { 15793 var kyhieu = $("#kyHieuMauTienTo37").val() + '/' + $('#year37').val() + '/' + $('#kyHieuMauHauTo37').val(); 15794 binddingValue('txt_invoiceSeries', kyhieu); 15795 $('#kyHieuFull37').text(kyhieu); 15796 } 15797 else if ($('#IS_TT68').val() == "5") { 15798 var kyhieu = $.trim($('#year').val()) + $('#kyHieuMauHauTo').val(); 15799 $('#kyHieuFull70').text(kyhieu); 15800 } 15801 else { 15802 var mausokyhieu = $('#MAU_SO').val() + getKyHieuFull(); 15803 $('#kyHieuFull').text(mausokyhieu); 15804 binddingValue('txt_invoiceSeries', mausokyhieu); 15805 return mausokyhieu; 15806 } 15807} 15808 15809function FillMauSoKyHieu37() { 15810 var kyhieu = $("#kyHieuMauTienTo37").val() + '/' + $('#year37').val() + '/' + $('#MAU_SO_HAU_TO37').val(); 15811 15812 binddingValue('txt_invoiceSeries', kyhieu); 15813 $('#kyHieuFull37').text(kyhieu); 15814} 15815 15816function createSuaHoaDonRequest(isInsert = false) { 15817 var formData = new FormData(); 15818 formData.append("MaMau", $('#maHoaDonDuocChon').val() ? $('#maHoaDonDuocChon').val() : $('#groupItem').find("li.checked").data("mamau")); 15819 if ($('#IS_TT68').val() == IsThongTu.TT78 && $('#LoaiHoaDonCbo').val() == 7) { 15820 formData.append("MauSo", $("#MAU_SO").val()); 15821 formData.append("KyHieuTienTo", $("#kyHieuMauTienTo37").val()); 15822 formData.append("KyHieuHauTo", $("#kyHieuMauHauTo37").val()); 15823 formData.append("NamPhatHanh", $("#year37").val()); 15824 formData.append("KyHieu", getKyHieuFull()); 15825 } 15826 else if ($('#IS_TT68').val() == IsThongTu.TT78) { 15827 formData.append("MauSo", $("#MAU_SO").val()); 15828 formData.append("KyHieuTienTo", $("#kyHieuMauTienTo").val()); 15829 formData.append("KyHieuHauTo", $("#kyHieuMauHauTo").val()); 15830 formData.append("NamPhatHanh", $("#year").val()); 15831 formData.append("MauSoHauTo", $("#MAU_SO_HAU_TO").val()); 15832 formData.append("KyHieu", getKyHieuFull()); 15833 } 15834 else if ($('#IS_TT68').val() == IsThongTu.ND70) { 15835 formData.append("KyHieuHauTo", $("#kyHieuMauHauTo").val()); 15836 formData.append("MauSo", $("#MAU_SO").val()); 15837 formData.append("NamPhatHanh", $("#year").val()); 15838 formData.append("KyHieu", GetKyHieu()); 15839 } 15840 else { 15841 formData.append("MauSo", $("#MAU_SO").val()); 15842 formData.append("KyHieuTienTo", $("#kyHieuMau").val()); 15843 formData.append("KyHieuHauTo", $("#year").val()); 15844 formData.append("KyHieu", GetKyHieu()); 15845 } 15846 15847 formData.append("IS_TT68", $("#IS_TT68").val()); 15848 formData.append("TenMau", $("#TEN_MAU").val()); 15849 formData.append("STT", $("#txtSTT").val()); 15850 formData.append("NguonHoaDon", $('#NguonHoaDonCbo').val() === "0" || $('#NguonHoaDonCbo').val() === "1" ? "MG" : "MDTK"); 15851 formData.append("LoaiHoaDon", $('#LoaiHoaDonCbo').val()); 15852 formData.append("NgonNgu", $('#NgonNguCbo').val()); 15853 formData.append("KhoGiay", $('#KhoGiayCbo').val()); 15854 formData.append("LoaiTrang", $('#LoaiTrangCbo').val()); 15855 formData.append("IsInsert", isInsert); 15856 formData.append("KhoiTaoIdString", $('#maKhoiTaoId').val()); 15857 return formData; 15858} 15859 15860 15861function ValidateFileUpload(selector, selectorFileName) { 15862 //Upload file import lên Äá» lấy cấu hình sheet 15863 //Check file extension 15864 var fileUpload = $(selector)[0].files[0]; 15865 var fileExtension = ['jpg', 'pdf', 'png', 'xls', 'xlsx', 'xps', 'xslt', 'doc', 'docx', 'xls', 'csv']; 15866 if ($.inArray(fileUpload.name.split('.').pop().toLowerCase(), fileExtension) === -1) { 15867 notifyObj.warning('File lá»±a chá»n không Äúng Äá»nh dạng. Vui lòng chá»n các file có Äá»nh dạng jpg, pdf, png, xls, xlsx, xps, xslt, doc, docx.'); 15868 } else { 15869 $(selectorFileName).val(fileUpload.name); 15870 var formdata = new FormData(); 15871 formdata.append(fileUpload.name, fileUpload); 15872 formdata.append('fileName', fileUpload.name); 15873 callApi('POST', '/MauHoaDonDeXuat/GetDataPrevew', formdata).then(function (result) { 15874 if (result.code != 1) { 15875 notifyObj.warning(result.msg); 15876 } 15877 }, function (error) { 15878 console.log(error); 15879 }); 15880 } 15881} 15882 15883function KhoiTaoToDB() { 15884 loading(true); 15885 15886 callApi('POST', '/thiet-ke-mau/khoi-tao/' + $('#maKhoiTaoId').val()).then( 15887 function (data) { 15888 if (data.code === 1) { 15889 notifyObj.success(data.msg); 15890 setTimeout(() => { 15891 window.location.href = data.directLink; 15892 }, 15893 2000); 15894 } 15895 else { 15896 notifyObj.warning(data.msg); 15897 } 15898 loading(false); 15899 }, 15900 function (err) { 15901 console.log(err); 15902 loading(false); 15903 } 15904 ); 15905} 15906 15907function KhoiTao() { 15908 luuMau(false); 15909 if (validateMHD()) { 15910 if (SaveThongTinMR()) { 15911 KhoiTaoToDB(); 15912 } 15913 } 15914} 15915 15916function GuiYeuCauHoTro(type = 0) { 15917 var eleValidate = type === 0 ? 'Frm_YeuCauMoiMHD #GHI_CHU' : 'Frm_YeuCauChinhSuaMHD #GHI_CHU'; 15918 15919 if (validateAlert(validateYeuCau(eleValidate))) { 15920 //lấy thông tin kà hiá»u mẫu sá», loại hóa ÄÆ¡n 15921 var formData = new FormData(); 15922 formData.append("MaMau", $('#maHoaDonDuocChon').val() ? $('#maHoaDonDuocChon').val() : $('#groupItem').find("li.checked").data("mamau")); 15923 formData.append("MauSo", $("#MAU_SO").val()); 15924 formData.append("KyHieuTienTo", $("#kyHieuMau").val()); 15925 formData.append("KyHieuHauTo", $("#KY_HIEU").val()); 15926 formData.append("KyHieu", GetKyHieu()); 15927 formData.append("TenMau", $("#TEN_MAU").val()); 15928 formData.append("STT", $("#txtSTT").val()); 15929 formData.append("NguonHoaDon", $('#NguonHoaDonCbo').val() === "0" || $('#NguonHoaDonCbo').val() === "1" ? "MG" : "MDTK"); 15930 formData.append("LoaiHoaDon", $('#LoaiHoaDonCbo').val()); 15931 formData.append("NgonNgu", $('#NgonNguCbo').val()); 15932 formData.append("KhoGiay", $('#KhoGiayCbo').val()); 15933 formData.append("LoaiTrang", $('#LoaiTrangCbo').val()); 15934 formData.append("IsInsert", $('#Frm_YeuCauMoiMHD').length > 0); 15935 formData.append('GhiChu', type === 0 ? $('#Frm_YeuCauMoiMHD #GHI_CHU').val() : $('#Frm_YeuCauChinhSuaMHD #GHI_CHU').val()); 15936 15937 var fileThietKe = $('[name=FileThietKe]'); 15938 fileThietKe = type === 1 && $('#maHoaDonDuocChon').length === 0 ? fileThietKe[1].files[0] : fileThietKe[0].files[0]; 15939 formData.append('FileThietKe', fileThietKe); 15940 15941 var link = type === 0 ? configCongViec.urlTaoYeuCauThietKeMoi : configCongViec.urlTaoYeuCauSuaMau; 15942 15943 callApi('POST', link, formData).then( 15944 function (data) { 15945 if (data.code === 1) { 15946 EnableKhoiPhuc(false); 15947 notifyObj.success(data.msg); 15948 $("#popup_YeuCauMoiMHD").modal('hide'); 15949 15950 setTimeout(() => { 15951 if (data.url) 15952 window.location.href = data.url; 15953 }, 2000); 15954 } else { notifyObj.warning(data.msg); } 15955 }, 15956 function (err) { 15957 console.log(err); 15958 } 15959 ); 15960 } 15961}; 15962//Show video nhiá»u trang 15963$(document).ready(function () { 15964 var isShowpopoverVideo = $.cookie('isShowpopoverVideo'); 15965 $(".btn-SPVideoXuLy").popover({ 15966 html: true, 15967 content: function () { 15968 var content = $(this).attr("data-popover-content"); 15969 var html = $(content).children(".popover-content").html() 15970 return html; 15971 }, 15972 title: function () { 15973 var content = $(this).attr("data-popover-content"); 15974 return $(content).children(".popover-title").html(); 15975 } 15976 }).on("show.bs.popover", function () { 15977 $(this).data("bs.popover").tip().css("width", "300px"); 15978 $(this).data("bs.popover").tip().css("max-width", "300px"); 15979 }).on("shown.bs.popover", function () { 15980 $('.not-show-video').prop('checked', $.cookie('isShowpopoverVideo') == "true"); 15981 });
15982 15983 15984 $(document).on('click', ".not-show-video", function (e) { 15985 if (isShowpopoverVideo == undefined) { 15986 $.cookie('isShowpopoverVideo', $(this).prop('checked'), { expires: 1000, path: '/' }); 15987 } else { 15988 $.removeCookie('isShowpopoverVideo', { path: '/' }); 15989 $.cookie('isShowpopoverVideo', $(this).prop('checked'), { expires: 1000, path: '/' }); 15990 } 15991 isShowpopoverVideo = $.cookie('isShowpopoverVideo'); 15992 if (isShowpopoverVideo == "true") { 15993 $(".btn-SPVideoXuLy").popover('hide'); 15994 } 15995 }) 15996 15997 $(document).on('shown.bs.modal', '#XyLyHoaDonModal', function () { 15998 if (isShowpopoverVideo == "false" || isShowpopoverVideo == undefined) { 15999 $(".btn-SPVideoXuLy").popover('show'); 16000 } 16001 }) 16002 16003 $(document).on('shown.bs.modal', '#chonHoaDonXuLy', function () { 16004 if (isShowpopoverVideo == "false" || isShowpopoverVideo == undefined) { 16005 $(".btn-SPVideoXuLy").popover('show'); 16006 } 16007 }) 16008 16009 16010 $("body").on("click", function (e) { 16011 $(".btn-SPVideoXuLy").each(function () { 16012 if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $(".popover").has(e.target).length === 0) { 16013 $(this).popover('hide') 16014 } 16015 }) 16016 }) 16017}); 16018 16019$(document).ready(function () { 16020 16021 // chá»nh height tá»± Äá»ng cá»§a site 16022 var heightWindow = $(document).height() - 45; 16023 if ($('#side').width() < heightWindow) { 16024 $("#side").attr('style', 'min-height:' + heightWindow + 'px !important'); 16025 } 16026 16027 if (!document.body.classList.contains("[email protected]")) { 16028 sessionStorage.removeItem("[email protected]"); 16029 } 16030 16031 $(".selectpicker:not(.bs-select-hidden):not(.selectpicker-noSearch)").selectpicker({ 16032 liveSearch: true, 16033 showSubtext: true 16034 }); 16035 16036 setContentDanhMuc(); 16037}); 16038$(".table-responsive").find("table").on("draw.dt", function () { 16039 ModifyCheckbox(); 16040}); 16041 16042$(document).on('click', 'form button[type="submit"]', function (e) { 16043 var formid = $(this).closest('form').attr('id'); 16044 if (formid != null && formid != undefined) { 16045 var valid = $('#' + formid)[0].checkValidity(); 16046 if (valid) { 16047 loaddingByEinvoice(true); 16048 e.preventDefault(); 16049 setTimeout(function () { 16050 $('#' + formid).submit(); 16051 }, 500); 16052 } 16053 } 16054}); 16055$(document).on('click', 'form .submit-skip', function (e) { 16056 $("#submitskip").val('true'); 16057}); 16058 16059function callShowToolTipFull(str) { 16060 var container = '<div class = "fix" style="page-break-inside: avoid " xmlns:hnx="http://www.w3.org/2000/09/xmldsig#" xmlns:exsl="http://exslt.org/common" xmlns:inv="http://laphoadon.gdt.gov.vn/2014/09/invoicexml/v1">'; 16061 container += '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; 16062 container += '<title>Bạn cần trợ giúp?</title>'; 16063 container += '<meta name="viewport" content="width=device-width, initial-scale=1.0">'; 16064 container += '<meta http-equiv="X-UA-Compatible" content="IE=Edge">'; 16065 container += '<style type="text/css">body{ background-color: #eeeeee;} .fix{min-height: calc(100vh - 170px);margin: auto;margin-top: 20px;padding: 15px 15px 15px 15px;border-radius: 5px;box-shadow: 0px 0px 5px #ccc;background-color: white;max-width: 1080px;} .container { height: calc(100% - 120px);font-size: 14px;line-height: 20px;font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;padding: 40px;border-radius: 5px; margin: 20px;position: relative;display: table;color: #000;text-align: justify;}img{max-width:700px;margin-bottom:15px}</style>'; 16066 container += '<div class="container">' + str + '</div></div>'; 16067 var tab = window.open('', '_blank'); 16068 tab.document.write(container); 16069} 16070 16071function callShowToolTipFullEmail(str) { 16072 var container = '<div class = "fix" style="page-break-inside: avoid " xmlns:hnx="http://www.w3.org/2000/09/xmldsig#" xmlns:exsl="http://exslt.org/common" xmlns:inv="http://laphoadon.gdt.gov.vn/2014/09/invoicexml/v1">'; 16073 container += '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">'; 16074 container += '<title>Bạn cần trợ giúp?</title>'; 16075 container += '<meta name="viewport" content="width=device-width, initial-scale=1.0">'; 16076 container += '<meta http-equiv="X-UA-Compatible" content="IE=Edge">'; 16077 container += '<style type="text/css">body{ background-color: #eeeeee;margin: 0; padding: 0; height: 100%; overflow: hidden;} .fix{min-height: calc(100vh - 170px);margin: auto;margin-top: 20px;padding: 15px 15px 15px 15px;border-radius: 5px;box-shadow: 0px 0px 5px #ccc;background-color: white;max-width: 1080px;} .container { position: absolute; left: 0; right: 0; bottom: 0; top: 0;}img{max-width:700px;margin-bottom:15px}</style>'; 16078 container += '<div class="container">' + str + '</div></div>'; 16079 var tab = window.open('', '_blank'); 16080 tab.document.write(container); 16081} 16082 16083function setContentDanhMuc() { 16084 var href = window.location.href; 16085 const heightScreen = $(window).height() - 40; 16086 const heightNavMenu = $(".navbar-top").height(); 16087 const heightHeadMenu = $("#fix .row .headMenu").height(); 16088 var minHeight = heightScreen - heightNavMenu - heightHeadMenu; 16089 if (href.indexOf("quan-ly-danh-muc") > -1) { 16090 $(".contentFix.box-shadow-border, #demoCssCha").css("min-height", (minHeight + 7) + "px"); 16091 $("#demoCssCha").css("height", "auto"); 16092 } else if (href.indexOf("quan-ly-gui-email") > -1 || href.indexOf("quan-ly-gui-sms") > -1 || href.indexOf("danh-sach-bien-ban-hoa-don") > -1 16093 || href.indexOf("danh-sach-hoa-don-dien-tu") > -1 16094 || href.indexOf("kho-hoa-don") > -1 16095 || href.indexOf("kho-tin-nhan") > -1 16096 || href.indexOf("danh-sach-don-hang") > -1 16097 || href.indexOf("quan-ly-ky-hoa-don") > -1 16098 || href.indexOf("danh-sach-hoa-don-dien-tu") > -1 16099 || href.indexOf("danh-sach-bien-ban-hoa-don") > -1 16100 || href.indexOf("danh-sach-thong-bao-dieu-chinh-thong-tin-hoa-don") > -1 16101 ) { 16102 $("#demoCssCha").css("min-height", minHeight + "px"); 16103 } else if (href.indexOf("quan-ly-ky-hoa-don") > -1) { 16104 $("#demoCssCha").css("min-height", (minHeight + 30) + "px"); 16105 } else if (href.indexOf("/bao-cao/") > -1 16106 || href.indexOf("danh-sach-phat-hanh-hoa-don") > -1 16107 || href.indexOf("mau-hoa-don-da-tao") > -1 16108 || href.indexOf("mau-hoa-don") > -1 16109 || href.indexOf("danh-sach-giu-lai-hoa-don") > -1 16110 ) { 16111 $(".content-bao-cao, .contentFix.box-shadow-border").css("min-height", minHeight + "px"); 16112 } else if (href.indexOf("countuser") > -1 16113 ) { 16114 $(".content-bao-cao, .contentFix.box-shadow-border").css("min-height", (minHeight + 15) + "px"); 16115 } 16116} 16117 16118$(document).ready(function () { 16119 // set border-color input success 16120 $('#formgr').on('success.field.bv', function (e, data) { 16121 data.element.attr('style', 'border-color: #468847 !important'); 16122 });
16123 $('#formgr').on('error.field.bv', function (e, data) { 16124 data.element.attr('style', 'border-color: #b94a48 !important'); 16125 }); 16126 16127 //ẩn warning cua datatable 16128 if ($.fn.dataTable !== undefined) 16129 $.fn.dataTable.ext.errMode = 'throw'; 16130 16131 $('.datepicker').datepicker({ format: "dd/mm/yyyy", autoclose: true, todayHighlight: true }).on('changeDate', function (ev) { 16132 if ($("#formgr").length > 0) { 16133 //$("#formgr").data('bootstrapValidator').revalidateField($(this).attr('id')); 16134 } 16135 }); 16136 $('.datepickerndc').datepicker({ format: "dd/mm/yyyy", autoclose: true, todayHighlight: true }); 16137 // Äóng thông báo (lá»i hoặc success) sau má»t khoảng thá»i gian 16138 closeAlert(); 16139 // sẽ reload page khi sá» dụng back cá»§a browser.(issure resubmit form) 16140 if ($('#isReload').val() === 'yes') { 16141 location.reload(true); 16142 } else { 16143 $('#isReload').val('yes'); 16144 } 16145 16146 $('#dock').Fisheye( 16147 { 16148 maxWidth: 40, 16149 items: 'a', 16150 itemsText: 'span', 16151 container: '.dock-container', 16152 itemWidth: 40, 16153 proximity: 90, 16154 halign: 'center' 16155 } 16156 ); 16157 16158});;
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.