//! moment.js //! version : 2.14.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com !(function (a, b) { 'object' == typeof exports && 'undefined' != typeof module ? (module.exports = b()) : 'function' == typeof define && define.amd ? define(b) : (a.moment = b()); })(this, function () { 'use strict'; function a() { return md.apply(null, arguments); } // This is done to register the method called with moment() // without creating circular dependencies. function b(a) { md = a; } function c(a) { return a instanceof Array || '[object Array]' === Object.prototype.toString.call(a); } function d(a) { return '[object Object]' === Object.prototype.toString.call(a); } function e(a) { var b; // even if its not own property I'd still call it non-empty for (b in a) return !1; return !0; } function f(a) { return a instanceof Date || '[object Date]' === Object.prototype.toString.call(a); } function g(a, b) { var c, d = []; for (c = 0; c < a.length; ++c) d.push(b(a[c], c)); return d; } function h(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } function i(a, b) { for (var c in b) h(b, c) && (a[c] = b[c]); return h(b, 'toString') && (a.toString = b.toString), h(b, 'valueOf') && (a.valueOf = b.valueOf), a; } function j(a, b, c, d) { return qb(a, b, c, d, !0).utc(); } function k() { // We need to deep clone this object. return { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, }; } function l(a) { return null == a._pf && (a._pf = k()), a._pf; } function m(a) { if (null == a._isValid) { var b = l(a), c = nd.call(b.parsedDateParts, function (a) { return null != a; }); (a._isValid = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || (b.meridiem && c))), a._strict && (a._isValid = a._isValid && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour); } return a._isValid; } function n(a) { var b = j(NaN); return null != a ? i(l(b), a) : (l(b).userInvalidated = !0), b; } function o(a) { return void 0 === a; } function p(a, b) { var c, d, e; if ( (o(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), o(b._i) || (a._i = b._i), o(b._f) || (a._f = b._f), o(b._l) || (a._l = b._l), o(b._strict) || (a._strict = b._strict), o(b._tzm) || (a._tzm = b._tzm), o(b._isUTC) || (a._isUTC = b._isUTC), o(b._offset) || (a._offset = b._offset), o(b._pf) || (a._pf = l(b)), o(b._locale) || (a._locale = b._locale), od.length > 0) ) for (c in od) (d = od[c]), (e = b[d]), o(e) || (a[d] = e); return a; } // Moment prototype object function q(b) { p(this, b), (this._d = new Date(null != b._d ? b._d.getTime() : NaN)), pd === !1 && ((pd = !0), a.updateOffset(this), (pd = !1)); } function r(a) { return a instanceof q || (null != a && null != a._isAMomentObject); } function s(a) { return 0 > a ? Math.ceil(a) || 0 : Math.floor(a); } function t(a) { var b = +a, c = 0; return 0 !== b && isFinite(b) && (c = s(b)), c; } // compare two arrays, return the number of differences function u(a, b, c) { var d, e = Math.min(a.length, b.length), f = Math.abs(a.length - b.length), g = 0; for (d = 0; e > d; d++) ((c && a[d] !== b[d]) || (!c && t(a[d]) !== t(b[d]))) && g++; return g + f; } function v(b) { a.suppressDeprecationWarnings === !1 && 'undefined' != typeof console && console.warn && console.warn('Deprecation warning: ' + b); } function w(b, c) { var d = !0; return i(function () { return ( null != a.deprecationHandler && a.deprecationHandler(null, b), d && (v(b + '\nArguments: ' + Array.prototype.slice.call(arguments).join(', ') + '\n' + new Error().stack), (d = !1)), c.apply(this, arguments) ); }, c); } function x(b, c) { null != a.deprecationHandler && a.deprecationHandler(b, c), qd[b] || (v(c), (qd[b] = !0)); } function y(a) { return a instanceof Function || '[object Function]' === Object.prototype.toString.call(a); } function z(a) { var b, c; for (c in a) (b = a[c]), y(b) ? (this[c] = b) : (this['_' + c] = b); (this._config = a), // Lenient ordinal parsing accepts just a number in addition to // number + (possibly) stuff coming from _ordinalParseLenient. (this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source)); } function A(a, b) { var c, e = i({}, a); for (c in b) h(b, c) && (d(a[c]) && d(b[c]) ? ((e[c] = {}), i(e[c], a[c]), i(e[c], b[c])) : null != b[c] ? (e[c] = b[c]) : delete e[c]); for (c in a) h(a, c) && !h(b, c) && d(a[c]) && // make sure changes to properties don't modify parent config (e[c] = i({}, e[c])); return e; } function B(a) { null != a && this.set(a); } function C(a, b, c) { var d = this._calendar[a] || this._calendar.sameElse; return y(d) ? d.call(b, c) : d; } function D(a) { var b = this._longDateFormat[a], c = this._longDateFormat[a.toUpperCase()]; return b || !c ? b : ((this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) { return a.slice(1); })), this._longDateFormat[a]); } function E() { return this._invalidDate; } function F(a) { return this._ordinal.replace('%d', a); } function G(a, b, c, d) { var e = this._relativeTime[c]; return y(e) ? e(a, b, c, d) : e.replace(/%d/i, a); } function H(a, b) { var c = this._relativeTime[a > 0 ? 'future' : 'past']; return y(c) ? c(b) : c.replace(/%s/i, b); } function I(a, b) { var c = a.toLowerCase(); zd[c] = zd[c + 's'] = zd[b] = a; } function J(a) { return 'string' == typeof a ? zd[a] || zd[a.toLowerCase()] : void 0; } function K(a) { var b, c, d = {}; for (c in a) h(a, c) && ((b = J(c)), b && (d[b] = a[c])); return d; } function L(a, b) { Ad[a] = b; } function M(a) { var b = []; for (var c in a) b.push({ unit: c, priority: Ad[c] }); return ( b.sort(function (a, b) { return a.priority - b.priority; }), b ); } function N(b, c) { return function (d) { return null != d ? (P(this, b, d), a.updateOffset(this, c), this) : O(this, b); }; } function O(a, b) { return a.isValid() ? a._d['get' + (a._isUTC ? 'UTC' : '') + b]() : NaN; } function P(a, b, c) { a.isValid() && a._d['set' + (a._isUTC ? 'UTC' : '') + b](c); } // MOMENTS function Q(a) { return (a = J(a)), y(this[a]) ? this[a]() : this; } function R(a, b) { if ('object' == typeof a) { a = K(a); for (var c = M(a), d = 0; d < c.length; d++) this[c[d].unit](a[c[d].unit]); } else if (((a = J(a)), y(this[a]))) return this[a](b); return this; } function S(a, b, c) { var d = '' + Math.abs(a), e = b - d.length, f = a >= 0; return (f ? (c ? '+' : '') : '-') + Math.pow(10, Math.max(0, e)).toString().substr(1) + d; } // token: 'M' // padded: ['MM', 2] // ordinal: 'Mo' // callback: function () { this.month() + 1 } function T(a, b, c, d) { var e = d; 'string' == typeof d && (e = function () { return this[d](); }), a && (Ed[a] = e), b && (Ed[b[0]] = function () { return S(e.apply(this, arguments), b[1], b[2]); }), c && (Ed[c] = function () { return this.localeData().ordinal(e.apply(this, arguments), a); }); } function U(a) { return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, '') : a.replace(/\\/g, ''); } function V(a) { var b, c, d = a.match(Bd); for (b = 0, c = d.length; c > b; b++) Ed[d[b]] ? (d[b] = Ed[d[b]]) : (d[b] = U(d[b])); return function (b) { var e, f = ''; for (e = 0; c > e; e++) f += d[e] instanceof Function ? d[e].call(b, a) : d[e]; return f; }; } // format date using native date object function W(a, b) { return a.isValid() ? ((b = X(b, a.localeData())), (Dd[b] = Dd[b] || V(b)), Dd[b](a)) : a.localeData().invalidDate(); } function X(a, b) { function c(a) { return b.longDateFormat(a) || a; } var d = 5; for (Cd.lastIndex = 0; d >= 0 && Cd.test(a); ) (a = a.replace(Cd, c)), (Cd.lastIndex = 0), (d -= 1); return a; } function Y(a, b, c) { Wd[a] = y(b) ? b : function (a, d) { return a && c ? c : b; }; } function Z(a, b) { return h(Wd, a) ? Wd[a](b._strict, b._locale) : new RegExp($(a)); } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript function $(a) { return _( a.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) { return b || c || d || e; }) ); } function _(a) { return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); } function aa(a, b) { var c, d = b; for ( 'string' == typeof a && (a = [a]), 'number' == typeof b && (d = function (a, c) { c[b] = t(a); }), c = 0; c < a.length; c++ ) Xd[a[c]] = d; } function ba(a, b) { aa(a, function (a, c, d, e) { (d._w = d._w || {}), b(a, d._w, d, e); }); } function ca(a, b, c) { null != b && h(Xd, a) && Xd[a](b, c._a, c, a); } function da(a, b) { return new Date(Date.UTC(a, b + 1, 0)).getUTCDate(); } function ea(a, b) { return c(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || fe).test(b) ? 'format' : 'standalone'][a.month()]; } function fa(a, b) { return c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[fe.test(b) ? 'format' : 'standalone'][a.month()]; } function ga(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._monthsParse) for ( // this is not used this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; 12 > d; ++d ) (f = j([2e3, d])), (this._shortMonthsParse[d] = this.monthsShort(f, '').toLocaleLowerCase()), (this._longMonthsParse[d] = this.months(f, '').toLocaleLowerCase()); return c ? 'MMM' === b ? ((e = sd.call(this._shortMonthsParse, g)), -1 !== e ? e : null) : ((e = sd.call(this._longMonthsParse, g)), -1 !== e ? e : null) : 'MMM' === b ? ((e = sd.call(this._shortMonthsParse, g)), -1 !== e ? e : ((e = sd.call(this._longMonthsParse, g)), -1 !== e ? e : null)) : ((e = sd.call(this._longMonthsParse, g)), -1 !== e ? e : ((e = sd.call(this._shortMonthsParse, g)), -1 !== e ? e : null)); } function ha(a, b, c) { var d, e, f; if (this._monthsParseExact) return ga.call(this, a, b, c); // TODO: add sorting // Sorting makes sure if one month (or abbr) is a prefix of another // see sorting in computeMonthsParse for (this._monthsParse || ((this._monthsParse = []), (this._longMonthsParse = []), (this._shortMonthsParse = [])), d = 0; 12 > d; d++) { // test the regex if ( ((e = j([2e3, d])), c && !this._longMonthsParse[d] && ((this._longMonthsParse[d] = new RegExp('^' + this.months(e, '').replace('.', '') + '$', 'i')), (this._shortMonthsParse[d] = new RegExp('^' + this.monthsShort(e, '').replace('.', '') + '$', 'i'))), c || this._monthsParse[d] || ((f = '^' + this.months(e, '') + '|^' + this.monthsShort(e, '')), (this._monthsParse[d] = new RegExp(f.replace('.', ''), 'i'))), c && 'MMMM' === b && this._longMonthsParse[d].test(a)) ) return d; if (c && 'MMM' === b && this._shortMonthsParse[d].test(a)) return d; if (!c && this._monthsParse[d].test(a)) return d; } } // MOMENTS function ia(a, b) { var c; if (!a.isValid()) // No op return a; if ('string' == typeof b) if (/^\d+$/.test(b)) b = t(b); // TODO: Another silent failure? else if (((b = a.localeData().monthsParse(b)), 'number' != typeof b)) return a; return (c = Math.min(a.date(), da(a.year(), b))), a._d['set' + (a._isUTC ? 'UTC' : '') + 'Month'](b, c), a; } function ja(b) { return null != b ? (ia(this, b), a.updateOffset(this, !0), this) : O(this, 'Month'); } function ka() { return da(this.year(), this.month()); } function la(a) { return this._monthsParseExact ? (h(this, '_monthsRegex') || na.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (h(this, '_monthsShortRegex') || (this._monthsShortRegex = ie), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex); } function ma(a) { return this._monthsParseExact ? (h(this, '_monthsRegex') || na.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (h(this, '_monthsRegex') || (this._monthsRegex = je), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex); } function na() { function a(a, b) { return b.length - a.length; } var b, c, d = [], e = [], f = []; for (b = 0; 12 > b; b++) (c = j([2e3, b])), d.push(this.monthsShort(c, '')), e.push(this.months(c, '')), f.push(this.months(c, '')), f.push(this.monthsShort(c, '')); for ( // Sorting makes sure if one month (or abbr) is a prefix of another it // will match the longer piece. d.sort(a), e.sort(a), f.sort(a), b = 0; 12 > b; b++ ) (d[b] = _(d[b])), (e[b] = _(e[b])); for (b = 0; 24 > b; b++) f[b] = _(f[b]); (this._monthsRegex = new RegExp('^(' + f.join('|') + ')', 'i')), (this._monthsShortRegex = this._monthsRegex), (this._monthsStrictRegex = new RegExp('^(' + e.join('|') + ')', 'i')), (this._monthsShortStrictRegex = new RegExp('^(' + d.join('|') + ')', 'i')); } // HELPERS function oa(a) { return pa(a) ? 366 : 365; } function pa(a) { return (a % 4 === 0 && a % 100 !== 0) || a % 400 === 0; } function qa() { return pa(this.year()); } function ra(a, b, c, d, e, f, g) { //can't just apply() to create a date: //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply var h = new Date(a, b, c, d, e, f, g); //the date constructor remaps years 0-99 to 1900-1999 return 100 > a && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h; } function sa(a) { var b = new Date(Date.UTC.apply(null, arguments)); //the Date.UTC function remaps years 0-99 to 1900-1999 return 100 > a && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b; } // start-of-first-week - start-of-year function ta(a, b, c) { var // first-week day -- which january is always in the first week (4 for iso, 1 for other) d = 7 + b - c, // first-week day local weekday -- which local weekday is fwd e = (7 + sa(a, 0, d).getUTCDay() - b) % 7; return -e + d - 1; } //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday function ua(a, b, c, d, e) { var f, g, h = (7 + c - d) % 7, i = ta(a, d, e), j = 1 + 7 * (b - 1) + h + i; return ( 0 >= j ? ((f = a - 1), (g = oa(f) + j)) : j > oa(a) ? ((f = a + 1), (g = j - oa(a))) : ((f = a), (g = j)), { year: f, dayOfYear: g } ); } function va(a, b, c) { var d, e, f = ta(a.year(), b, c), g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1; return ( 1 > g ? ((e = a.year() - 1), (d = g + wa(e, b, c))) : g > wa(a.year(), b, c) ? ((d = g - wa(a.year(), b, c)), (e = a.year() + 1)) : ((e = a.year()), (d = g)), { week: d, year: e } ); } function wa(a, b, c) { var d = ta(a, b, c), e = ta(a + 1, b, c); return (oa(a) - d + e) / 7; } // HELPERS // LOCALES function xa(a) { return va(a, this._week.dow, this._week.doy).week; } function ya() { return this._week.dow; } function za() { return this._week.doy; } // MOMENTS function Aa(a) { var b = this.localeData().week(this); return null == a ? b : this.add(7 * (a - b), 'd'); } function Ba(a) { var b = va(this, 1, 4).week; return null == a ? b : this.add(7 * (a - b), 'd'); } // HELPERS function Ca(a, b) { return 'string' != typeof a ? a : isNaN(a) ? ((a = b.weekdaysParse(a)), 'number' == typeof a ? a : null) : parseInt(a, 10); } function Da(a, b) { return 'string' == typeof a ? b.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a; } function Ea(a, b) { return c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? 'format' : 'standalone'][a.day()]; } function Fa(a) { return this._weekdaysShort[a.day()]; } function Ga(a) { return this._weekdaysMin[a.day()]; } function Ha(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._weekdaysParse) for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; 7 > d; ++d) (f = j([2e3, 1]).day(d)), (this._minWeekdaysParse[d] = this.weekdaysMin(f, '').toLocaleLowerCase()), (this._shortWeekdaysParse[d] = this.weekdaysShort(f, '').toLocaleLowerCase()), (this._weekdaysParse[d] = this.weekdays(f, '').toLocaleLowerCase()); return c ? 'dddd' === b ? ((e = sd.call(this._weekdaysParse, g)), -1 !== e ? e : null) : 'ddd' === b ? ((e = sd.call(this._shortWeekdaysParse, g)), -1 !== e ? e : null) : ((e = sd.call(this._minWeekdaysParse, g)), -1 !== e ? e : null) : 'dddd' === b ? ((e = sd.call(this._weekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._shortWeekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._minWeekdaysParse, g)), -1 !== e ? e : null))) : 'ddd' === b ? ((e = sd.call(this._shortWeekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._weekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._minWeekdaysParse, g)), -1 !== e ? e : null))) : ((e = sd.call(this._minWeekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._weekdaysParse, g)), -1 !== e ? e : ((e = sd.call(this._shortWeekdaysParse, g)), -1 !== e ? e : null))); } function Ia(a, b, c) { var d, e, f; if (this._weekdaysParseExact) return Ha.call(this, a, b, c); for ( this._weekdaysParse || ((this._weekdaysParse = []), (this._minWeekdaysParse = []), (this._shortWeekdaysParse = []), (this._fullWeekdaysParse = [])), d = 0; 7 > d; d++ ) { // test the regex if ( ((e = j([2e3, 1]).day(d)), c && !this._fullWeekdaysParse[d] && ((this._fullWeekdaysParse[d] = new RegExp('^' + this.weekdays(e, '').replace('.', '.?') + '$', 'i')), (this._shortWeekdaysParse[d] = new RegExp('^' + this.weekdaysShort(e, '').replace('.', '.?') + '$', 'i')), (this._minWeekdaysParse[d] = new RegExp('^' + this.weekdaysMin(e, '').replace('.', '.?') + '$', 'i'))), this._weekdaysParse[d] || ((f = '^' + this.weekdays(e, '') + '|^' + this.weekdaysShort(e, '') + '|^' + this.weekdaysMin(e, '')), (this._weekdaysParse[d] = new RegExp(f.replace('.', ''), 'i'))), c && 'dddd' === b && this._fullWeekdaysParse[d].test(a)) ) return d; if (c && 'ddd' === b && this._shortWeekdaysParse[d].test(a)) return d; if (c && 'dd' === b && this._minWeekdaysParse[d].test(a)) return d; if (!c && this._weekdaysParse[d].test(a)) return d; } } // MOMENTS function Ja(a) { if (!this.isValid()) return null != a ? this : NaN; var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != a ? ((a = Ca(a, this.localeData())), this.add(a - b, 'd')) : b; } function Ka(a) { if (!this.isValid()) return null != a ? this : NaN; var b = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == a ? b : this.add(a - b, 'd'); } function La(a) { if (!this.isValid()) return null != a ? this : NaN; // behaves the same as moment#day except // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) // as a setter, sunday should belong to the previous week. if (null != a) { var b = Da(a, this.localeData()); return this.day(this.day() % 7 ? b : b - 7); } return this.day() || 7; } function Ma(a) { return this._weekdaysParseExact ? (h(this, '_weekdaysRegex') || Pa.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (h(this, '_weekdaysRegex') || (this._weekdaysRegex = pe), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex); } function Na(a) { return this._weekdaysParseExact ? (h(this, '_weekdaysRegex') || Pa.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (h(this, '_weekdaysShortRegex') || (this._weekdaysShortRegex = qe), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex); } function Oa(a) { return this._weekdaysParseExact ? (h(this, '_weekdaysRegex') || Pa.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (h(this, '_weekdaysMinRegex') || (this._weekdaysMinRegex = re), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex); } function Pa() { function a(a, b) { return b.length - a.length; } var b, c, d, e, f, g = [], h = [], i = [], k = []; for (b = 0; 7 > b; b++) (c = j([2e3, 1]).day(b)), (d = this.weekdaysMin(c, '')), (e = this.weekdaysShort(c, '')), (f = this.weekdays(c, '')), g.push(d), h.push(e), i.push(f), k.push(d), k.push(e), k.push(f); for ( // Sorting makes sure if one weekday (or abbr) is a prefix of another it // will match the longer piece. g.sort(a), h.sort(a), i.sort(a), k.sort(a), b = 0; 7 > b; b++ ) (h[b] = _(h[b])), (i[b] = _(i[b])), (k[b] = _(k[b])); (this._weekdaysRegex = new RegExp('^(' + k.join('|') + ')', 'i')), (this._weekdaysShortRegex = this._weekdaysRegex), (this._weekdaysMinRegex = this._weekdaysRegex), (this._weekdaysStrictRegex = new RegExp('^(' + i.join('|') + ')', 'i')), (this._weekdaysShortStrictRegex = new RegExp('^(' + h.join('|') + ')', 'i')), (this._weekdaysMinStrictRegex = new RegExp('^(' + g.join('|') + ')', 'i')); } // FORMATTING function Qa() { return this.hours() % 12 || 12; } function Ra() { return this.hours() || 24; } function Sa(a, b) { T(a, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), b); }); } // PARSING function Ta(a, b) { return b._meridiemParse; } // LOCALES function Ua(a) { // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays // Using charAt should be more compatible. return 'p' === (a + '').toLowerCase().charAt(0); } function Va(a, b, c) { return a > 11 ? (c ? 'pm' : 'PM') : c ? 'am' : 'AM'; } function Wa(a) { return a ? a.toLowerCase().replace('_', '-') : a; } // pick the locale from the array // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root function Xa(a) { for (var b, c, d, e, f = 0; f < a.length; ) { for (e = Wa(a[f]).split('-'), b = e.length, c = Wa(a[f + 1]), c = c ? c.split('-') : null; b > 0; ) { if ((d = Ya(e.slice(0, b).join('-')))) return d; if (c && c.length >= b && u(e, c, !0) >= b - 1) //the next array item is better than a shallower substring of this one break; b--; } f++; } return null; } function Ya(a) { var b = null; // TODO: Find a better way to register and load all the locales in Node if (!we[a] && 'undefined' != typeof module && module && module.exports) try { (b = se._abbr), require('./locale/' + a), // because defineLocale currently also sets the global locale, we // want to undo that for lazy loaded locales Za(b); } catch (c) {} return we[a]; } // This function will load locale and then set the global locale. If // no arguments are passed in, it will simply return the current global // locale key. function Za(a, b) { var c; // moment.duration._locale = moment._locale = data; return a && ((c = o(b) ? ab(a) : $a(a, b)), c && (se = c)), se._abbr; } function $a(a, b) { if (null !== b) { var c = ve; // treat as if there is no base config // backwards compat for now: also set the locale return ( (b.abbr = a), null != we[a] ? (x( '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.' ), (c = we[a]._config)) : null != b.parentLocale && (null != we[b.parentLocale] ? (c = we[b.parentLocale]._config) : x( 'parentLocaleUndefined', 'specified parentLocale is not defined yet. See http://momentjs.com/guides/#/warnings/parent-locale/' )), (we[a] = new B(A(c, b))), Za(a), we[a] ); } // useful for testing return delete we[a], null; } function _a(a, b) { if (null != b) { var c, d = ve; // MERGE null != we[a] && (d = we[a]._config), (b = A(d, b)), (c = new B(b)), (c.parentLocale = we[a]), (we[a] = c), // backwards compat for now: also set the locale Za(a); } // pass null for config to unupdate, useful for tests else null != we[a] && (null != we[a].parentLocale ? (we[a] = we[a].parentLocale) : null != we[a] && delete we[a]); return we[a]; } // returns locale data function ab(a) { var b; if ((a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a)) return se; if (!c(a)) { if ((b = Ya(a))) return b; a = [a]; } return Xa(a); } function bb() { return rd(we); } function cb(a) { var b, c = a._a; return ( c && -2 === l(a).overflow && ((b = c[Zd] < 0 || c[Zd] > 11 ? Zd : c[$d] < 1 || c[$d] > da(c[Yd], c[Zd]) ? $d : c[_d] < 0 || c[_d] > 24 || (24 === c[_d] && (0 !== c[ae] || 0 !== c[be] || 0 !== c[ce])) ? _d : c[ae] < 0 || c[ae] > 59 ? ae : c[be] < 0 || c[be] > 59 ? be : c[ce] < 0 || c[ce] > 999 ? ce : -1), l(a)._overflowDayOfYear && (Yd > b || b > $d) && (b = $d), l(a)._overflowWeeks && -1 === b && (b = de), l(a)._overflowWeekday && -1 === b && (b = ee), (l(a).overflow = b)), a ); } // date from iso format function db(a) { var b, c, d, e, f, g, h = a._i, i = xe.exec(h) || ye.exec(h); if (i) { for (l(a).iso = !0, b = 0, c = Ae.length; c > b; b++) if (Ae[b][1].exec(i[1])) { (e = Ae[b][0]), (d = Ae[b][2] !== !1); break; } if (null == e) return void (a._isValid = !1); if (i[3]) { for (b = 0, c = Be.length; c > b; b++) if (Be[b][1].exec(i[3])) { // match[2] should be 'T' or space f = (i[2] || ' ') + Be[b][0]; break; } if (null == f) return void (a._isValid = !1); } if (!d && null != f) return void (a._isValid = !1); if (i[4]) { if (!ze.exec(i[4])) return void (a._isValid = !1); g = 'Z'; } (a._f = e + (f || '') + (g || '')), jb(a); } else a._isValid = !1; } // date from iso format or fallback function eb(b) { var c = Ce.exec(b._i); return null !== c ? void (b._d = new Date(+c[1])) : (db(b), void (b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b)))); } // Pick the first defined of two or three arguments. function fb(a, b, c) { return null != a ? a : null != b ? b : c; } function gb(b) { // hooks is actually the exported moment object var c = new Date(a.now()); return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]; } // convert an array to a date. // the array should mirror the parameters below // note: all values past the year are optional and will default to the lowest possible value. // [year, month, day , hour, minute, second, millisecond] function hb(a) { var b, c, d, e, f = []; if (!a._d) { // Default to current date. // * if no year, month, day of month are given, default to today // * if day of month is given, default month and year // * if month is given, default only year // * if year is given, don't default anything for ( d = gb(a), a._w && null == a._a[$d] && null == a._a[Zd] && ib(a), a._dayOfYear && ((e = fb(a._a[Yd], d[Yd])), a._dayOfYear > oa(e) && (l(a)._overflowDayOfYear = !0), (c = sa(e, 0, a._dayOfYear)), (a._a[Zd] = c.getUTCMonth()), (a._a[$d] = c.getUTCDate())), b = 0; 3 > b && null == a._a[b]; ++b ) a._a[b] = f[b] = d[b]; // Zero out whatever was not defaulted, including time for (; 7 > b; b++) a._a[b] = f[b] = null == a._a[b] ? (2 === b ? 1 : 0) : a._a[b]; // Check for 24:00:00.000 24 === a._a[_d] && 0 === a._a[ae] && 0 === a._a[be] && 0 === a._a[ce] && ((a._nextDay = !0), (a._a[_d] = 0)), (a._d = (a._useUTC ? sa : ra).apply(null, f)), // Apply timezone offset from input. The actual utcOffset can be changed // with parseZone. null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[_d] = 24); } } function ib(a) { var b, c, d, e, f, g, h, i; (b = a._w), null != b.GG || null != b.W || null != b.E ? ((f = 1), (g = 4), (c = fb(b.GG, a._a[Yd], va(rb(), 1, 4).year)), (d = fb(b.W, 1)), (e = fb(b.E, 1)), (1 > e || e > 7) && (i = !0)) : ((f = a._locale._week.dow), (g = a._locale._week.doy), (c = fb(b.gg, a._a[Yd], va(rb(), f, g).year)), (d = fb(b.w, 1)), null != b.d ? ((e = b.d), (0 > e || e > 6) && (i = !0)) : null != b.e ? ((e = b.e + f), (b.e < 0 || b.e > 6) && (i = !0)) : (e = f)), 1 > d || d > wa(c, f, g) ? (l(a)._overflowWeeks = !0) : null != i ? (l(a)._overflowWeekday = !0) : ((h = ua(c, d, e, f, g)), (a._a[Yd] = h.year), (a._dayOfYear = h.dayOfYear)); } // date from string and format string function jb(b) { // TODO: Move this to another part of the creation flow to prevent circular deps if (b._f === a.ISO_8601) return void db(b); (b._a = []), (l(b).empty = !0); // This array is used to make a Date, either with `new Date` or `Date.UTC` var c, d, e, f, g, h = '' + b._i, i = h.length, j = 0; for (e = X(b._f, b._locale).match(Bd) || [], c = 0; c < e.length; c++) (f = e[c]), (d = (h.match(Z(f, b)) || [])[0]), d && ((g = h.substr(0, h.indexOf(d))), g.length > 0 && l(b).unusedInput.push(g), (h = h.slice(h.indexOf(d) + d.length)), (j += d.length)), Ed[f] ? (d ? (l(b).empty = !1) : l(b).unusedTokens.push(f), ca(f, d, b)) : b._strict && !d && l(b).unusedTokens.push(f); // add remaining unparsed input length to the string (l(b).charsLeftOver = i - j), h.length > 0 && l(b).unusedInput.push(h), // clear _12h flag if hour is <= 12 b._a[_d] <= 12 && l(b).bigHour === !0 && b._a[_d] > 0 && (l(b).bigHour = void 0), (l(b).parsedDateParts = b._a.slice(0)), (l(b).meridiem = b._meridiem), // handle meridiem (b._a[_d] = kb(b._locale, b._a[_d], b._meridiem)), hb(b), cb(b); } function kb(a, b, c) { var d; // Fallback return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? ((d = a.isPM(c)), d && 12 > b && (b += 12), d || 12 !== b || (b = 0), b) : b; } // date from string and array of format strings function lb(a) { var b, c, d, e, f; if (0 === a._f.length) return (l(a).invalidFormat = !0), void (a._d = new Date(NaN)); for (e = 0; e < a._f.length; e++) (f = 0), (b = p({}, a)), null != a._useUTC && (b._useUTC = a._useUTC), (b._f = a._f[e]), jb(b), m(b) && ((f += l(b).charsLeftOver), (f += 10 * l(b).unusedTokens.length), (l(b).score = f), (null == d || d > f) && ((d = f), (c = b))); i(a, c || b); } function mb(a) { if (!a._d) { var b = K(a._i); (a._a = g([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function (a) { return a && parseInt(a, 10); })), hb(a); } } function nb(a) { var b = new q(cb(ob(a))); // Adding is smart enough around DST return b._nextDay && (b.add(1, 'd'), (b._nextDay = void 0)), b; } function ob(a) { var b = a._i, d = a._f; return ( (a._locale = a._locale || ab(a._l)), null === b || (void 0 === d && '' === b) ? n({ nullInput: !0 }) : ('string' == typeof b && (a._i = b = a._locale.preparse(b)), r(b) ? new q(cb(b)) : (c(d) ? lb(a) : f(b) ? (a._d = b) : d ? jb(a) : pb(a), m(a) || (a._d = null), a)) ); } function pb(b) { var d = b._i; void 0 === d ? (b._d = new Date(a.now())) : f(d) ? (b._d = new Date(d.valueOf())) : 'string' == typeof d ? eb(b) : c(d) ? ((b._a = g(d.slice(0), function (a) { return parseInt(a, 10); })), hb(b)) : 'object' == typeof d ? mb(b) : 'number' == typeof d ? // from milliseconds (b._d = new Date(d)) : a.createFromInputFallback(b); } function qb(a, b, f, g, h) { var i = {}; // object construction must be done this way. // https://github.com/moment/moment/issues/1423 return ( 'boolean' == typeof f && ((g = f), (f = void 0)), ((d(a) && e(a)) || (c(a) && 0 === a.length)) && (a = void 0), (i._isAMomentObject = !0), (i._useUTC = i._isUTC = h), (i._l = f), (i._i = a), (i._f = b), (i._strict = g), nb(i) ); } function rb(a, b, c, d) { return qb(a, b, c, d, !1); } // Pick a moment m from moments so that m[fn](other) is true for all // other. This relies on the function fn to be transitive. // // moments should either be an array of moment objects or an array, whose // first element is an array of moment objects. function sb(a, b) { var d, e; if ((1 === b.length && c(b[0]) && (b = b[0]), !b.length)) return rb(); for (d = b[0], e = 1; e < b.length; ++e) (b[e].isValid() && !b[e][a](d)) || (d = b[e]); return d; } // TODO: Use [].sort instead? function tb() { var a = [].slice.call(arguments, 0); return sb('isBefore', a); } function ub() { var a = [].slice.call(arguments, 0); return sb('isAfter', a); } function vb(a) { var b = K(a), c = b.year || 0, d = b.quarter || 0, e = b.month || 0, f = b.week || 0, g = b.day || 0, h = b.hour || 0, i = b.minute || 0, j = b.second || 0, k = b.millisecond || 0; // representation for dateAddRemove (this._milliseconds = +k + 1e3 * j + // 1000 6e4 * i + // 1000 * 60 1e3 * h * 60 * 60), //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 // Because of dateAddRemove treats 24 hours as different from a // day when working around DST, we need to store them separately (this._days = +g + 7 * f), // It is impossible translate months into days without knowing // which months you are are talking about, so we have to store // it separately. (this._months = +e + 3 * d + 12 * c), (this._data = {}), (this._locale = ab()), this._bubble(); } function wb(a) { return a instanceof vb; } // FORMATTING function xb(a, b) { T(a, 0, 0, function () { var a = this.utcOffset(), c = '+'; return 0 > a && ((a = -a), (c = '-')), c + S(~~(a / 60), 2) + b + S(~~a % 60, 2); }); } function yb(a, b) { var c = (b || '').match(a) || [], d = c[c.length - 1] || [], e = (d + '').match(Ge) || ['-', 0, 0], f = +(60 * e[1]) + t(e[2]); return '+' === e[0] ? f : -f; } // Return a moment from input, that is local/utc/zone equivalent to model. function zb(b, c) { var d, e; // Use low-level api, because this fn is low-level api. return c._isUTC ? ((d = c.clone()), (e = (r(b) || f(b) ? b.valueOf() : rb(b).valueOf()) - d.valueOf()), d._d.setTime(d._d.valueOf() + e), a.updateOffset(d, !1), d) : rb(b).local(); } function Ab(a) { // On Firefox.24 Date#getTimezoneOffset returns a floating point. // https://github.com/moment/moment/pull/1871 return 15 * -Math.round(a._d.getTimezoneOffset() / 15); } // MOMENTS // keepLocalTime = true means only change the timezone, without // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset // +0200, so we adjust the time as needed, to be valid. // // Keeping the time actually adds/subtracts (one hour) // from the actual represented time. That is why we call updateOffset // a second time. In case it wants us to change the offset again // _changeInProgress == true case, then we have to adjust, because // there is no such time in the given timezone. function Bb(b, c) { var d, e = this._offset || 0; return this.isValid() ? null != b ? ('string' == typeof b ? (b = yb(Td, b)) : Math.abs(b) < 16 && (b = 60 * b), !this._isUTC && c && (d = Ab(this)), (this._offset = b), (this._isUTC = !0), null != d && this.add(d, 'm'), e !== b && (!c || this._changeInProgress ? Sb(this, Mb(b - e, 'm'), 1, !1) : this._changeInProgress || ((this._changeInProgress = !0), a.updateOffset(this, !0), (this._changeInProgress = null))), this) : this._isUTC ? e : Ab(this) : null != b ? this : NaN; } function Cb(a, b) { return null != a ? ('string' != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset(); } function Db(a) { return this.utcOffset(0, a); } function Eb(a) { return this._isUTC && (this.utcOffset(0, a), (this._isUTC = !1), a && this.subtract(Ab(this), 'm')), this; } function Fb() { return this._tzm ? this.utcOffset(this._tzm) : 'string' == typeof this._i && this.utcOffset(yb(Sd, this._i)), this; } function Gb(a) { return this.isValid() ? ((a = a ? rb(a).utcOffset() : 0), (this.utcOffset() - a) % 60 === 0) : !1; } function Hb() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } function Ib() { if (!o(this._isDSTShifted)) return this._isDSTShifted; var a = {}; if ((p(a, this), (a = ob(a)), a._a)) { var b = a._isUTC ? j(a._a) : rb(a._a); this._isDSTShifted = this.isValid() && u(a._a, b.toArray()) > 0; } else this._isDSTShifted = !1; return this._isDSTShifted; } function Jb() { return this.isValid() ? !this._isUTC : !1; } function Kb() { return this.isValid() ? this._isUTC : !1; } function Lb() { return this.isValid() ? this._isUTC && 0 === this._offset : !1; } function Mb(a, b) { var c, d, e, f = a, // matching against regexp is expensive, do it on demand g = null; // checks for null or undefined return ( wb(a) ? (f = { ms: a._milliseconds, d: a._days, M: a._months }) : 'number' == typeof a ? ((f = {}), b ? (f[b] = a) : (f.milliseconds = a)) : (g = He.exec(a)) ? ((c = '-' === g[1] ? -1 : 1), (f = { y: 0, d: t(g[$d]) * c, h: t(g[_d]) * c, m: t(g[ae]) * c, s: t(g[be]) * c, ms: t(g[ce]) * c })) : (g = Ie.exec(a)) ? ((c = '-' === g[1] ? -1 : 1), (f = { y: Nb(g[2], c), M: Nb(g[3], c), w: Nb(g[4], c), d: Nb(g[5], c), h: Nb(g[6], c), m: Nb(g[7], c), s: Nb(g[8], c) })) : null == f ? (f = {}) : 'object' == typeof f && ('from' in f || 'to' in f) && ((e = Pb(rb(f.from), rb(f.to))), (f = {}), (f.ms = e.milliseconds), (f.M = e.months)), (d = new vb(f)), wb(a) && h(a, '_locale') && (d._locale = a._locale), d ); } function Nb(a, b) { // We'd normally use ~~inp for this, but unfortunately it also // converts floats to ints. // inp may be undefined, so careful calling replace on it. var c = a && parseFloat(a.replace(',', '.')); // apply sign while we're at it return (isNaN(c) ? 0 : c) * b; } function Ob(a, b) { var c = { milliseconds: 0, months: 0 }; return ( (c.months = b.month() - a.month() + 12 * (b.year() - a.year())), a.clone().add(c.months, 'M').isAfter(b) && --c.months, (c.milliseconds = +b - +a.clone().add(c.months, 'M')), c ); } function Pb(a, b) { var c; return a.isValid() && b.isValid() ? ((b = zb(b, a)), a.isBefore(b) ? (c = Ob(a, b)) : ((c = Ob(b, a)), (c.milliseconds = -c.milliseconds), (c.months = -c.months)), c) : { milliseconds: 0, months: 0 }; } function Qb(a) { return 0 > a ? -1 * Math.round(-1 * a) : Math.round(a); } // TODO: remove 'name' arg after deprecation is removed function Rb(a, b) { return function (c, d) { var e, f; //invert the arguments, but complain about it return ( null === d || isNaN(+d) || (x( b, 'moment().' + b + '(period, number) is deprecated. Please use moment().' + b + '(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.' ), (f = c), (c = d), (d = f)), (c = 'string' == typeof c ? +c : c), (e = Mb(c, d)), Sb(this, e, a), this ); }; } function Sb(b, c, d, e) { var f = c._milliseconds, g = Qb(c._days), h = Qb(c._months); b.isValid() && ((e = null == e ? !0 : e), f && b._d.setTime(b._d.valueOf() + f * d), g && P(b, 'Date', O(b, 'Date') + g * d), h && ia(b, O(b, 'Month') + h * d), e && a.updateOffset(b, g || h)); } function Tb(a, b) { var c = a.diff(b, 'days', !0); return -6 > c ? 'sameElse' : -1 > c ? 'lastWeek' : 0 > c ? 'lastDay' : 1 > c ? 'sameDay' : 2 > c ? 'nextDay' : 7 > c ? 'nextWeek' : 'sameElse'; } function Ub(b, c) { // We want to compare the start of today, vs this. // Getting start-of-today depends on whether we're local/utc/offset or not. var d = b || rb(), e = zb(d, this).startOf('day'), f = a.calendarFormat(this, e) || 'sameElse', g = c && (y(c[f]) ? c[f].call(this, d) : c[f]); return this.format(g || this.localeData().calendar(f, this, rb(d))); } function Vb() { return new q(this); } function Wb(a, b) { var c = r(a) ? a : rb(a); return this.isValid() && c.isValid() ? ((b = J(o(b) ? 'millisecond' : b)), 'millisecond' === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf()) : !1; } function Xb(a, b) { var c = r(a) ? a : rb(a); return this.isValid() && c.isValid() ? ((b = J(o(b) ? 'millisecond' : b)), 'millisecond' === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf()) : !1; } function Yb(a, b, c, d) { return ( (d = d || '()'), ('(' === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (')' === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c)) ); } function Zb(a, b) { var c, d = r(a) ? a : rb(a); return this.isValid() && d.isValid() ? ((b = J(b || 'millisecond')), 'millisecond' === b ? this.valueOf() === d.valueOf() : ((c = d.valueOf()), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf())) : !1; } function $b(a, b) { return this.isSame(a, b) || this.isAfter(a, b); } function _b(a, b) { return this.isSame(a, b) || this.isBefore(a, b); } function ac(a, b, c) { var d, e, f, g; // 1000 // 1000 * 60 // 1000 * 60 * 60 // 1000 * 60 * 60 * 24, negate dst // 1000 * 60 * 60 * 24 * 7, negate dst return this.isValid() ? ((d = zb(a, this)), d.isValid() ? ((e = 6e4 * (d.utcOffset() - this.utcOffset())), (b = J(b)), 'year' === b || 'month' === b || 'quarter' === b ? ((g = bc(this, d)), 'quarter' === b ? (g /= 3) : 'year' === b && (g /= 12)) : ((f = this - d), (g = 'second' === b ? f / 1e3 : 'minute' === b ? f / 6e4 : 'hour' === b ? f / 36e5 : 'day' === b ? (f - e) / 864e5 : 'week' === b ? (f - e) / 6048e5 : f)), c ? g : s(g)) : NaN) : NaN; } function bc(a, b) { // difference in months var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()), // b is in (anchor - 1 month, anchor + 1 month) f = a.clone().add(e, 'months'); //check for negative zero, return zero if negative zero // linear across the month // linear across the month return ( 0 > b - f ? ((c = a.clone().add(e - 1, 'months')), (d = (b - f) / (f - c))) : ((c = a.clone().add(e + 1, 'months')), (d = (b - f) / (c - f))), -(e + d) || 0 ); } function cc() { return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); } function dc() { var a = this.clone().utc(); return 0 < a.year() && a.year() <= 9999 ? y(Date.prototype.toISOString) ? this.toDate().toISOString() : W(a, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]') : W(a, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); } function ec(b) { b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); var c = W(this, b); return this.localeData().postformat(c); } function fc(a, b) { return this.isValid() && ((r(a) && a.isValid()) || rb(a).isValid()) ? Mb({ to: this, from: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } function gc(a) { return this.from(rb(), a); } function hc(a, b) { return this.isValid() && ((r(a) && a.isValid()) || rb(a).isValid()) ? Mb({ from: this, to: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } function ic(a) { return this.to(rb(), a); } // If passed a locale key, it will set the locale for this // instance. Otherwise, it will return the locale configuration // variables for this instance. function jc(a) { var b; return void 0 === a ? this._locale._abbr : ((b = ab(a)), null != b && (this._locale = b), this); } function kc() { return this._locale; } function lc(a) { // the following switch intentionally omits break keywords // to utilize falling through the cases. switch ((a = J(a))) { case 'year': this.month(0); /* falls through */ case 'quarter': case 'month': this.date(1); /* falls through */ case 'week': case 'isoWeek': case 'day': case 'date': this.hours(0); /* falls through */ case 'hour': this.minutes(0); /* falls through */ case 'minute': this.seconds(0); /* falls through */ case 'second': this.milliseconds(0); } // weeks are a special case // quarters are also special return ( 'week' === a && this.weekday(0), 'isoWeek' === a && this.isoWeekday(1), 'quarter' === a && this.month(3 * Math.floor(this.month() / 3)), this ); } function mc(a) { // 'date' is an alias for 'day', so it should be considered as such. return ( (a = J(a)), void 0 === a || 'millisecond' === a ? this : ('date' === a && (a = 'day'), this.startOf(a) .add(1, 'isoWeek' === a ? 'week' : a) .subtract(1, 'ms')) ); } function nc() { return this._d.valueOf() - 6e4 * (this._offset || 0); } function oc() { return Math.floor(this.valueOf() / 1e3); } function pc() { return new Date(this.valueOf()); } function qc() { var a = this; return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]; } function rc() { var a = this; return { years: a.year(), months: a.month(), date: a.date(), hours: a.hours(), minutes: a.minutes(), seconds: a.seconds(), milliseconds: a.milliseconds(), }; } function sc() { // new Date(NaN).toJSON() === null return this.isValid() ? this.toISOString() : null; } function tc() { return m(this); } function uc() { return i({}, l(this)); } function vc() { return l(this).overflow; } function wc() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } function xc(a, b) { T(0, [a, a.length], 0, b); } // MOMENTS function yc(a) { return Cc.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); } function zc(a) { return Cc.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4); } function Ac() { return wa(this.year(), 1, 4); } function Bc() { var a = this.localeData()._week; return wa(this.year(), a.dow, a.doy); } function Cc(a, b, c, d, e) { var f; return null == a ? va(this, d, e).year : ((f = wa(a, d, e)), b > f && (b = f), Dc.call(this, a, b, c, d, e)); } function Dc(a, b, c, d, e) { var f = ua(a, b, c, d, e), g = sa(f.year, 0, f.dayOfYear); return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this; } // MOMENTS function Ec(a) { return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + (this.month() % 3)); } // HELPERS // MOMENTS function Fc(a) { var b = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; return null == a ? b : this.add(a - b, 'd'); } function Gc(a, b) { b[ce] = t(1e3 * ('0.' + a)); } // MOMENTS function Hc() { return this._isUTC ? 'UTC' : ''; } function Ic() { return this._isUTC ? 'Coordinated Universal Time' : ''; } function Jc(a) { return rb(1e3 * a); } function Kc() { return rb.apply(null, arguments).parseZone(); } function Lc(a) { return a; } function Mc(a, b, c, d) { var e = ab(), f = j().set(d, b); return e[c](f, a); } function Nc(a, b, c) { if (('number' == typeof a && ((b = a), (a = void 0)), (a = a || ''), null != b)) return Mc(a, b, c, 'month'); var d, e = []; for (d = 0; 12 > d; d++) e[d] = Mc(a, d, c, 'month'); return e; } // () // (5) // (fmt, 5) // (fmt) // (true) // (true, 5) // (true, fmt, 5) // (true, fmt) function Oc(a, b, c, d) { 'boolean' == typeof a ? ('number' == typeof b && ((c = b), (b = void 0)), (b = b || '')) : ((b = a), (c = b), (a = !1), 'number' == typeof b && ((c = b), (b = void 0)), (b = b || '')); var e = ab(), f = a ? e._week.dow : 0; if (null != c) return Mc(b, (c + f) % 7, d, 'day'); var g, h = []; for (g = 0; 7 > g; g++) h[g] = Mc(b, (g + f) % 7, d, 'day'); return h; } function Pc(a, b) { return Nc(a, b, 'months'); } function Qc(a, b) { return Nc(a, b, 'monthsShort'); } function Rc(a, b, c) { return Oc(a, b, c, 'weekdays'); } function Sc(a, b, c) { return Oc(a, b, c, 'weekdaysShort'); } function Tc(a, b, c) { return Oc(a, b, c, 'weekdaysMin'); } function Uc() { var a = this._data; return ( (this._milliseconds = Ue(this._milliseconds)), (this._days = Ue(this._days)), (this._months = Ue(this._months)), (a.milliseconds = Ue(a.milliseconds)), (a.seconds = Ue(a.seconds)), (a.minutes = Ue(a.minutes)), (a.hours = Ue(a.hours)), (a.months = Ue(a.months)), (a.years = Ue(a.years)), this ); } function Vc(a, b, c, d) { var e = Mb(b, c); return (a._milliseconds += d * e._milliseconds), (a._days += d * e._days), (a._months += d * e._months), a._bubble(); } // supports only 2.0-style add(1, 's') or add(duration) function Wc(a, b) { return Vc(this, a, b, 1); } // supports only 2.0-style subtract(1, 's') or subtract(duration) function Xc(a, b) { return Vc(this, a, b, -1); } function Yc(a) { return 0 > a ? Math.floor(a) : Math.ceil(a); } function Zc() { var a, b, c, d, e, f = this._milliseconds, g = this._days, h = this._months, i = this._data; // if we have a mix of positive and negative values, bubble down first // check: https://github.com/moment/moment/issues/2166 // The following code bubbles up values, see the tests for // examples of what that means. // convert days to months // 12 months -> 1 year return ( (f >= 0 && g >= 0 && h >= 0) || (0 >= f && 0 >= g && 0 >= h) || ((f += 864e5 * Yc(_c(h) + g)), (g = 0), (h = 0)), (i.milliseconds = f % 1e3), (a = s(f / 1e3)), (i.seconds = a % 60), (b = s(a / 60)), (i.minutes = b % 60), (c = s(b / 60)), (i.hours = c % 24), (g += s(c / 24)), (e = s($c(g))), (h += e), (g -= Yc(_c(e))), (d = s(h / 12)), (h %= 12), (i.days = g), (i.months = h), (i.years = d), this ); } function $c(a) { // 400 years have 146097 days (taking into account leap year rules) // 400 years have 12 months === 4800 return (4800 * a) / 146097; } function _c(a) { // the reverse of daysToMonths return (146097 * a) / 4800; } function ad(a) { var b, c, d = this._milliseconds; if (((a = J(a)), 'month' === a || 'year' === a)) return (b = this._days + d / 864e5), (c = this._months + $c(b)), 'month' === a ? c : c / 12; switch (((b = this._days + Math.round(_c(this._months))), a)) { case 'week': return b / 7 + d / 6048e5; case 'day': return b + d / 864e5; case 'hour': return 24 * b + d / 36e5; case 'minute': return 1440 * b + d / 6e4; case 'second': return 86400 * b + d / 1e3; // Math.floor prevents floating point math errors here case 'millisecond': return Math.floor(864e5 * b) + d; default: throw new Error('Unknown unit ' + a); } } // TODO: Use this.as('ms')? function bd() { return this._milliseconds + 864e5 * this._days + (this._months % 12) * 2592e6 + 31536e6 * t(this._months / 12); } function cd(a) { return function () { return this.as(a); }; } function dd(a) { return (a = J(a)), this[a + 's'](); } function ed(a) { return function () { return this._data[a]; }; } function fd() { return s(this.days() / 7); } // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize function gd(a, b, c, d, e) { return e.relativeTime(b || 1, !!c, a, d); } function hd(a, b, c) { var d = Mb(a).abs(), e = jf(d.as('s')), f = jf(d.as('m')), g = jf(d.as('h')), h = jf(d.as('d')), i = jf(d.as('M')), j = jf(d.as('y')), k = (e < kf.s && ['s', e]) || (1 >= f && ['m']) || (f < kf.m && ['mm', f]) || (1 >= g && ['h']) || (g < kf.h && ['hh', g]) || (1 >= h && ['d']) || (h < kf.d && ['dd', h]) || (1 >= i && ['M']) || (i < kf.M && ['MM', i]) || (1 >= j && ['y']) || ['yy', j]; return (k[2] = b), (k[3] = +a > 0), (k[4] = c), gd.apply(null, k); } // This function allows you to set the rounding function for relative time strings function id(a) { return void 0 === a ? jf : 'function' == typeof a ? ((jf = a), !0) : !1; } // This function allows you to set a threshold for relative time strings function jd(a, b) { return void 0 === kf[a] ? !1 : void 0 === b ? kf[a] : ((kf[a] = b), !0); } function kd(a) { var b = this.localeData(), c = hd(this, !a, b); return a && (c = b.pastFuture(+this, c)), b.postformat(c); } function ld() { // for ISO strings we do not use the normal bubbling rules: // * milliseconds bubble up until they become hours // * days do not bubble at all // * months bubble up until they become years // This is because there is no context-free conversion between hours and days // (think of clock changes) // and also not between days and months (28-31 days per month) var a, b, c, d = lf(this._milliseconds) / 1e3, e = lf(this._days), f = lf(this._months); (a = s(d / 60)), (b = s(a / 60)), (d %= 60), (a %= 60), (c = s(f / 12)), (f %= 12); // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js var g = c, h = f, i = e, j = b, k = a, l = d, m = this.asSeconds(); return m ? (0 > m ? '-' : '') + 'P' + (g ? g + 'Y' : '') + (h ? h + 'M' : '') + (i ? i + 'D' : '') + (j || k || l ? 'T' : '') + (j ? j + 'H' : '') + (k ? k + 'M' : '') + (l ? l + 'S' : '') : 'P0D'; } var md, nd; nd = Array.prototype.some ? Array.prototype.some : function (a) { for (var b = Object(this), c = b.length >>> 0, d = 0; c > d; d++) if (d in b && a.call(this, b[d], d, b)) return !0; return !1; }; // Plugins that add properties should also add the key here (null value), // so we can properly clone ourselves. var od = (a.momentProperties = []), pd = !1, qd = {}; (a.suppressDeprecationWarnings = !1), (a.deprecationHandler = null); var rd; rd = Object.keys ? Object.keys : function (a) { var b, c = []; for (b in a) h(a, b) && c.push(b); return c; }; var sd, td = { sameDay: '[Today at] LT', nextDay: '[Tomorrow at] LT', nextWeek: 'dddd [at] LT', lastDay: '[Yesterday at] LT', lastWeek: '[Last] dddd [at] LT', sameElse: 'L', }, ud = { 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', }, vd = 'Invalid date', wd = '%d', xd = /\d{1,2}/, yd = { future: 'in %s', past: '%s ago', s: 'a few seconds', m: 'a minute', mm: '%d minutes', h: 'an hour', hh: '%d hours', d: 'a day', dd: '%d days', M: 'a month', MM: '%d months', y: 'a year', yy: '%d years', }, zd = {}, Ad = {}, Bd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, Cd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, Dd = {}, Ed = {}, Fd = /\d/, Gd = /\d\d/, Hd = /\d{3}/, Id = /\d{4}/, Jd = /[+-]?\d{6}/, Kd = /\d\d?/, Ld = /\d\d\d\d?/, Md = /\d\d\d\d\d\d?/, Nd = /\d{1,3}/, Od = /\d{1,4}/, Pd = /[+-]?\d{1,6}/, Qd = /\d+/, Rd = /[+-]?\d+/, Sd = /Z|[+-]\d\d:?\d\d/gi, Td = /Z|[+-]\d\d(?::?\d\d)?/gi, Ud = /[+-]?\d+(\.\d{1,3})?/, Vd = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, Wd = {}, Xd = {}, Yd = 0, Zd = 1, $d = 2, _d = 3, ae = 4, be = 5, ce = 6, de = 7, ee = 8; (sd = Array.prototype.indexOf ? Array.prototype.indexOf : function (a) { // I know var b; for (b = 0; b < this.length; ++b) if (this[b] === a) return b; return -1; }), T('M', ['MM', 2], 'Mo', function () { return this.month() + 1; }), T('MMM', 0, 0, function (a) { return this.localeData().monthsShort(this, a); }), T('MMMM', 0, 0, function (a) { return this.localeData().months(this, a); }), I('month', 'M'), L('month', 8), Y('M', Kd), Y('MM', Kd, Gd), Y('MMM', function (a, b) { return b.monthsShortRegex(a); }), Y('MMMM', function (a, b) { return b.monthsRegex(a); }), aa(['M', 'MM'], function (a, b) { b[Zd] = t(a) - 1; }), aa(['MMM', 'MMMM'], function (a, b, c, d) { var e = c._locale.monthsParse(a, d, c._strict); null != e ? (b[Zd] = e) : (l(c).invalidMonth = a); }); // LOCALES var fe = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/, ge = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), he = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), ie = Vd, je = Vd; // FORMATTING T('Y', 0, 0, function () { var a = this.year(); return 9999 >= a ? '' + a : '+' + a; }), T(0, ['YY', 2], 0, function () { return this.year() % 100; }), T(0, ['YYYY', 4], 0, 'year'), T(0, ['YYYYY', 5], 0, 'year'), T(0, ['YYYYYY', 6, !0], 0, 'year'), // ALIASES I('year', 'y'), // PRIORITIES L('year', 1), // PARSING Y('Y', Rd), Y('YY', Kd, Gd), Y('YYYY', Od, Id), Y('YYYYY', Pd, Jd), Y('YYYYYY', Pd, Jd), aa(['YYYYY', 'YYYYYY'], Yd), aa('YYYY', function (b, c) { c[Yd] = 2 === b.length ? a.parseTwoDigitYear(b) : t(b); }), aa('YY', function (b, c) { c[Yd] = a.parseTwoDigitYear(b); }), aa('Y', function (a, b) { b[Yd] = parseInt(a, 10); }), // HOOKS (a.parseTwoDigitYear = function (a) { return t(a) + (t(a) > 68 ? 1900 : 2e3); }); // MOMENTS var ke = N('FullYear', !0); // FORMATTING T('w', ['ww', 2], 'wo', 'week'), T('W', ['WW', 2], 'Wo', 'isoWeek'), // ALIASES I('week', 'w'), I('isoWeek', 'W'), // PRIORITIES L('week', 5), L('isoWeek', 5), // PARSING Y('w', Kd), Y('ww', Kd, Gd), Y('W', Kd), Y('WW', Kd, Gd), ba(['w', 'ww', 'W', 'WW'], function (a, b, c, d) { b[d.substr(0, 1)] = t(a); }); var le = { dow: 0, // Sunday is the first day of the week. doy: 6, }; // FORMATTING T('d', 0, 'do', 'day'), T('dd', 0, 0, function (a) { return this.localeData().weekdaysMin(this, a); }), T('ddd', 0, 0, function (a) { return this.localeData().weekdaysShort(this, a); }), T('dddd', 0, 0, function (a) { return this.localeData().weekdays(this, a); }), T('e', 0, 0, 'weekday'), T('E', 0, 0, 'isoWeekday'), // ALIASES I('day', 'd'), I('weekday', 'e'), I('isoWeekday', 'E'), // PRIORITY L('day', 11), L('weekday', 11), L('isoWeekday', 11), // PARSING Y('d', Kd), Y('e', Kd), Y('E', Kd), Y('dd', function (a, b) { return b.weekdaysMinRegex(a); }), Y('ddd', function (a, b) { return b.weekdaysShortRegex(a); }), Y('dddd', function (a, b) { return b.weekdaysRegex(a); }), ba(['dd', 'ddd', 'dddd'], function (a, b, c, d) { var e = c._locale.weekdaysParse(a, d, c._strict); // if we didn't get a weekday name, mark the date as invalid null != e ? (b.d = e) : (l(c).invalidWeekday = a); }), ba(['d', 'e', 'E'], function (a, b, c, d) { b[d] = t(a); }); // LOCALES var me = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), ne = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), oe = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), pe = Vd, qe = Vd, re = Vd; T('H', ['HH', 2], 0, 'hour'), T('h', ['hh', 2], 0, Qa), T('k', ['kk', 2], 0, Ra), T('hmm', 0, 0, function () { return '' + Qa.apply(this) + S(this.minutes(), 2); }), T('hmmss', 0, 0, function () { return '' + Qa.apply(this) + S(this.minutes(), 2) + S(this.seconds(), 2); }), T('Hmm', 0, 0, function () { return '' + this.hours() + S(this.minutes(), 2); }), T('Hmmss', 0, 0, function () { return '' + this.hours() + S(this.minutes(), 2) + S(this.seconds(), 2); }), Sa('a', !0), Sa('A', !1), // ALIASES I('hour', 'h'), // PRIORITY L('hour', 13), Y('a', Ta), Y('A', Ta), Y('H', Kd), Y('h', Kd), Y('HH', Kd, Gd), Y('hh', Kd, Gd), Y('hmm', Ld), Y('hmmss', Md), Y('Hmm', Ld), Y('Hmmss', Md), aa(['H', 'HH'], _d), aa(['a', 'A'], function (a, b, c) { (c._isPm = c._locale.isPM(a)), (c._meridiem = a); }), aa(['h', 'hh'], function (a, b, c) { (b[_d] = t(a)), (l(c).bigHour = !0); }), aa('hmm', function (a, b, c) { var d = a.length - 2; (b[_d] = t(a.substr(0, d))), (b[ae] = t(a.substr(d))), (l(c).bigHour = !0); }), aa('hmmss', function (a, b, c) { var d = a.length - 4, e = a.length - 2; (b[_d] = t(a.substr(0, d))), (b[ae] = t(a.substr(d, 2))), (b[be] = t(a.substr(e))), (l(c).bigHour = !0); }), aa('Hmm', function (a, b, c) { var d = a.length - 2; (b[_d] = t(a.substr(0, d))), (b[ae] = t(a.substr(d))); }), aa('Hmmss', function (a, b, c) { var d = a.length - 4, e = a.length - 2; (b[_d] = t(a.substr(0, d))), (b[ae] = t(a.substr(d, 2))), (b[be] = t(a.substr(e))); }); var se, te = /[ap]\.?m?\.?/i, ue = N('Hours', !0), ve = { calendar: td, longDateFormat: ud, invalidDate: vd, ordinal: wd, ordinalParse: xd, relativeTime: yd, months: ge, monthsShort: he, week: le, weekdays: me, weekdaysMin: oe, weekdaysShort: ne, meridiemParse: te, }, we = {}, xe = /^\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)?)?/, ye = /^\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)?)?/, ze = /Z|[+-]\d\d(?::?\d\d)?/, Ae = [ ['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}/], // YYYYMM is NOT allowed by the standard ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, !1], ['YYYYDDD', /\d{7}/], ], Be = [ ['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/], ], Ce = /^\/?Date\((\-?\d+)/i; (a.createFromInputFallback = w( 'moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (a) { a._d = new Date(a._i + (a._useUTC ? ' UTC' : '')); } )), // constant that refers to the ISO standard (a.ISO_8601 = function () {}); var De = w('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var a = rb.apply(null, arguments); return this.isValid() && a.isValid() ? (this > a ? this : a) : n(); }), Ee = w('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () { var a = rb.apply(null, arguments); return this.isValid() && a.isValid() ? (a > this ? this : a) : n(); }), Fe = function () { return Date.now ? Date.now() : +new Date(); }; xb('Z', ':'), xb('ZZ', ''), // PARSING Y('Z', Td), Y('ZZ', Td), aa(['Z', 'ZZ'], function (a, b, c) { (c._useUTC = !0), (c._tzm = yb(Td, a)); }); // HELPERS // timezone chunker // '+10:00' > ['10', '00'] // '-1530' > ['-15', '30'] var Ge = /([\+\-]|\d\d)/gi; // HOOKS // This function will be called whenever a moment is mutated. // It is intended to keep the offset in sync with the timezone. a.updateOffset = function () {}; // ASP.NET json date format regex var He = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/, Ie = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; Mb.fn = vb.prototype; var Je = Rb(1, 'add'), Ke = Rb(-1, 'subtract'); (a.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'), (a.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'); var Le = w( 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (a) { return void 0 === a ? this.localeData() : this.locale(a); } ); // FORMATTING T(0, ['gg', 2], 0, function () { return this.weekYear() % 100; }), T(0, ['GG', 2], 0, function () { return this.isoWeekYear() % 100; }), xc('gggg', 'weekYear'), xc('ggggg', 'weekYear'), xc('GGGG', 'isoWeekYear'), xc('GGGGG', 'isoWeekYear'), // ALIASES I('weekYear', 'gg'), I('isoWeekYear', 'GG'), // PRIORITY L('weekYear', 1), L('isoWeekYear', 1), // PARSING Y('G', Rd), Y('g', Rd), Y('GG', Kd, Gd), Y('gg', Kd, Gd), Y('GGGG', Od, Id), Y('gggg', Od, Id), Y('GGGGG', Pd, Jd), Y('ggggg', Pd, Jd), ba(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (a, b, c, d) { b[d.substr(0, 2)] = t(a); }), ba(['gg', 'GG'], function (b, c, d, e) { c[e] = a.parseTwoDigitYear(b); }), // FORMATTING T('Q', 0, 'Qo', 'quarter'), // ALIASES I('quarter', 'Q'), // PRIORITY L('quarter', 7), // PARSING Y('Q', Fd), aa('Q', function (a, b) { b[Zd] = 3 * (t(a) - 1); }), // FORMATTING T('D', ['DD', 2], 'Do', 'date'), // ALIASES I('date', 'D'), // PRIOROITY L('date', 9), // PARSING Y('D', Kd), Y('DD', Kd, Gd), Y('Do', function (a, b) { return a ? b._ordinalParse : b._ordinalParseLenient; }), aa(['D', 'DD'], $d), aa('Do', function (a, b) { b[$d] = t(a.match(Kd)[0], 10); }); // MOMENTS var Me = N('Date', !0); // FORMATTING T('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'), // ALIASES I('dayOfYear', 'DDD'), // PRIORITY L('dayOfYear', 4), // PARSING Y('DDD', Nd), Y('DDDD', Hd), aa(['DDD', 'DDDD'], function (a, b, c) { c._dayOfYear = t(a); }), // FORMATTING T('m', ['mm', 2], 0, 'minute'), // ALIASES I('minute', 'm'), // PRIORITY L('minute', 14), // PARSING Y('m', Kd), Y('mm', Kd, Gd), aa(['m', 'mm'], ae); // MOMENTS var Ne = N('Minutes', !1); // FORMATTING T('s', ['ss', 2], 0, 'second'), // ALIASES I('second', 's'), // PRIORITY L('second', 15), // PARSING Y('s', Kd), Y('ss', Kd, Gd), aa(['s', 'ss'], be); // MOMENTS var Oe = N('Seconds', !1); // FORMATTING T('S', 0, 0, function () { return ~~(this.millisecond() / 100); }), T(0, ['SS', 2], 0, function () { return ~~(this.millisecond() / 10); }), T(0, ['SSS', 3], 0, 'millisecond'), T(0, ['SSSS', 4], 0, function () { return 10 * this.millisecond(); }), T(0, ['SSSSS', 5], 0, function () { return 100 * this.millisecond(); }), T(0, ['SSSSSS', 6], 0, function () { return 1e3 * this.millisecond(); }), T(0, ['SSSSSSS', 7], 0, function () { return 1e4 * this.millisecond(); }), T(0, ['SSSSSSSS', 8], 0, function () { return 1e5 * this.millisecond(); }), T(0, ['SSSSSSSSS', 9], 0, function () { return 1e6 * this.millisecond(); }), // ALIASES I('millisecond', 'ms'), // PRIORITY L('millisecond', 16), // PARSING Y('S', Nd, Fd), Y('SS', Nd, Gd), Y('SSS', Nd, Hd); var Pe; for (Pe = 'SSSS'; Pe.length <= 9; Pe += 'S') Y(Pe, Qd); for (Pe = 'S'; Pe.length <= 9; Pe += 'S') aa(Pe, Gc); // MOMENTS var Qe = N('Milliseconds', !1); // FORMATTING T('z', 0, 0, 'zoneAbbr'), T('zz', 0, 0, 'zoneName'); var Re = q.prototype; (Re.add = Je), (Re.calendar = Ub), (Re.clone = Vb), (Re.diff = ac), (Re.endOf = mc), (Re.format = ec), (Re.from = fc), (Re.fromNow = gc), (Re.to = hc), (Re.toNow = ic), (Re.get = Q), (Re.invalidAt = vc), (Re.isAfter = Wb), (Re.isBefore = Xb), (Re.isBetween = Yb), (Re.isSame = Zb), (Re.isSameOrAfter = $b), (Re.isSameOrBefore = _b), (Re.isValid = tc), (Re.lang = Le), (Re.locale = jc), (Re.localeData = kc), (Re.max = Ee), (Re.min = De), (Re.parsingFlags = uc), (Re.set = R), (Re.startOf = lc), (Re.subtract = Ke), (Re.toArray = qc), (Re.toObject = rc), (Re.toDate = pc), (Re.toISOString = dc), (Re.toJSON = sc), (Re.toString = cc), (Re.unix = oc), (Re.valueOf = nc), (Re.creationData = wc), // Year (Re.year = ke), (Re.isLeapYear = qa), // Week Year (Re.weekYear = yc), (Re.isoWeekYear = zc), // Quarter (Re.quarter = Re.quarters = Ec), // Month (Re.month = ja), (Re.daysInMonth = ka), // Week (Re.week = Re.weeks = Aa), (Re.isoWeek = Re.isoWeeks = Ba), (Re.weeksInYear = Bc), (Re.isoWeeksInYear = Ac), // Day (Re.date = Me), (Re.day = Re.days = Ja), (Re.weekday = Ka), (Re.isoWeekday = La), (Re.dayOfYear = Fc), // Hour (Re.hour = Re.hours = ue), // Minute (Re.minute = Re.minutes = Ne), // Second (Re.second = Re.seconds = Oe), // Millisecond (Re.millisecond = Re.milliseconds = Qe), // Offset (Re.utcOffset = Bb), (Re.utc = Db), (Re.local = Eb), (Re.parseZone = Fb), (Re.hasAlignedHourOffset = Gb), (Re.isDST = Hb), (Re.isLocal = Jb), (Re.isUtcOffset = Kb), (Re.isUtc = Lb), (Re.isUTC = Lb), // Timezone (Re.zoneAbbr = Hc), (Re.zoneName = Ic), // Deprecations (Re.dates = w('dates accessor is deprecated. Use date instead.', Me)), (Re.months = w('months accessor is deprecated. Use month instead', ja)), (Re.years = w('years accessor is deprecated. Use year instead', ke)), (Re.zone = w('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', Cb)), (Re.isDSTShifted = w('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', Ib)); var Se = Re, Te = B.prototype; (Te.calendar = C), (Te.longDateFormat = D), (Te.invalidDate = E), (Te.ordinal = F), (Te.preparse = Lc), (Te.postformat = Lc), (Te.relativeTime = G), (Te.pastFuture = H), (Te.set = z), // Month (Te.months = ea), (Te.monthsShort = fa), (Te.monthsParse = ha), (Te.monthsRegex = ma), (Te.monthsShortRegex = la), // Week (Te.week = xa), (Te.firstDayOfYear = za), (Te.firstDayOfWeek = ya), // Day of Week (Te.weekdays = Ea), (Te.weekdaysMin = Ga), (Te.weekdaysShort = Fa), (Te.weekdaysParse = Ia), (Te.weekdaysRegex = Ma), (Te.weekdaysShortRegex = Na), (Te.weekdaysMinRegex = Oa), // Hours (Te.isPM = Ua), (Te.meridiem = Va), Za('en', { ordinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (a) { var b = a % 10, c = 1 === t((a % 100) / 10) ? 'th' : 1 === b ? 'st' : 2 === b ? 'nd' : 3 === b ? 'rd' : 'th'; return a + c; }, }), // Side effect imports (a.lang = w('moment.lang is deprecated. Use moment.locale instead.', Za)), (a.langData = w('moment.langData is deprecated. Use moment.localeData instead.', ab)); var Ue = Math.abs, Ve = cd('ms'), We = cd('s'), Xe = cd('m'), Ye = cd('h'), Ze = cd('d'), $e = cd('w'), _e = cd('M'), af = cd('y'), bf = ed('milliseconds'), cf = ed('seconds'), df = ed('minutes'), ef = ed('hours'), ff = ed('days'), gf = ed('months'), hf = ed('years'), jf = Math.round, kf = { s: 45, // seconds to minute m: 45, // minutes to hour h: 22, // hours to day d: 26, // days to month M: 11, }, lf = Math.abs, mf = vb.prototype; (mf.abs = Uc), (mf.add = Wc), (mf.subtract = Xc), (mf.as = ad), (mf.asMilliseconds = Ve), (mf.asSeconds = We), (mf.asMinutes = Xe), (mf.asHours = Ye), (mf.asDays = Ze), (mf.asWeeks = $e), (mf.asMonths = _e), (mf.asYears = af), (mf.valueOf = bd), (mf._bubble = Zc), (mf.get = dd), (mf.milliseconds = bf), (mf.seconds = cf), (mf.minutes = df), (mf.hours = ef), (mf.days = ff), (mf.weeks = fd), (mf.months = gf), (mf.years = hf), (mf.humanize = kd), (mf.toISOString = ld), (mf.toString = ld), (mf.toJSON = ld), (mf.locale = jc), (mf.localeData = kc), // Deprecations (mf.toIsoString = w('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', ld)), (mf.lang = Le), // Side effect imports // FORMATTING T('X', 0, 0, 'unix'), T('x', 0, 0, 'valueOf'), // PARSING Y('x', Rd), Y('X', Ud), aa('X', function (a, b, c) { c._d = new Date(1e3 * parseFloat(a, 10)); }), aa('x', function (a, b, c) { c._d = new Date(t(a)); }), // Side effect imports (a.version = '2.14.1'), b(rb), (a.fn = Se), (a.min = tb), (a.max = ub), (a.now = Fe), (a.utc = j), (a.unix = Jc), (a.months = Pc), (a.isDate = f), (a.locale = Za), (a.invalid = n), (a.duration = Mb), (a.isMoment = r), (a.weekdays = Rc), (a.parseZone = Kc), (a.localeData = ab), (a.isDuration = wb), (a.monthsShort = Qc), (a.weekdaysMin = Tc), (a.defineLocale = $a), (a.updateLocale = _a), (a.locales = bb), (a.weekdaysShort = Sc), (a.normalizeUnits = J), (a.relativeTimeRounding = id), (a.relativeTimeThreshold = jd), (a.calendarFormat = Tb), (a.prototype = Se); var nf = a; return nf; });