{"version":3,"sources":["webpack:////src/ScantronParser.Web/node_modules/moment/moment.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/utils.js","webpack:////src/ScantronParser.Web/node_modules/jquery/dist/jquery.js-exposed","webpack:///(webpack)/buildin/global.js","webpack:///./ts/Atlas/Service.ts","webpack:///./ts/Atlas/Controls.ts","webpack:///(webpack)/buildin/module.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/af.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-dz.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-kw.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-ly.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-ma.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-sa.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ar-tn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/az.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/be.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/bg.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/bm.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/bn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/bo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/br.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/bs.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ca.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/cs.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/cv.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/cy.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/da.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/de.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/de-at.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/de-ch.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/dv.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/el.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-SG.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-au.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-ca.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-gb.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-ie.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-il.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/en-nz.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/eo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/es.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/es-do.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/es-us.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/et.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/eu.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fa.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fi.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fr.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fr-ca.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fr-ch.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/fy.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ga.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/gd.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/gl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/gom-latn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/gu.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/he.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/hi.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/hr.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/hu.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/hy-am.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/id.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/is.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/it.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/it-ch.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ja.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/jv.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ka.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/kk.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/km.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/kn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ko.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ku.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ky.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/lb.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/lo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/lt.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/lv.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/me.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/mi.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/mk.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ml.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/mn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/mr.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ms.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ms-my.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/mt.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/my.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/nb.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ne.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/nl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/nl-be.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/nn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/pa-in.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/pl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/pt.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/pt-br.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ro.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ru.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sd.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/se.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/si.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sk.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sq.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sr.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sr-cyrl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ss.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sv.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/sw.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ta.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/te.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tet.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tg.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/th.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tl-ph.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tlh.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tr.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tzl.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tzm.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/tzm-latn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ug-cn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/uk.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/ur.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/uz.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/uz-latn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/vi.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/x-pseudo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/yo.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/zh-cn.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/zh-hk.js","webpack:////src/ScantronParser.Web/node_modules/moment/locale/zh-tw.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/bind.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/buildURL.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/cancel/isCancel.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/defaults.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/adapters/xhr.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/createError.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/mergeConfig.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/cancel/Cancel.js","webpack:////src/ScantronParser.Web/node_modules/jquery/dist/jquery.js","webpack:///./ts/Atlas/Logger.ts","webpack:////src/ScantronParser.Web/node_modules/moment/locale sync ^\\.\\/.*$","webpack:////src/ScantronParser.Web/node_modules/underscore/underscore.js","webpack:////src/ScantronParser.Web/node_modules/axios/index.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/axios.js","webpack:////src/ScantronParser.Web/node_modules/axios/node_modules/is-buffer/index.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/Axios.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/InterceptorManager.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/dispatchRequest.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/transformData.js","webpack:////src/ScantronParser.Web/node_modules/process/browser.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/settle.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/core/enhanceError.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/parseHeaders.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/cookies.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/combineURLs.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/cancel/CancelToken.js","webpack:////src/ScantronParser.Web/node_modules/axios/lib/helpers/spread.js"],"names":["module","exports","hookCallback","some","hooks","apply","arguments","isArray","input","Array","Object","prototype","toString","call","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","length","push","hasOwnProp","a","b","hasOwnProperty","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","obj","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","key","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","d","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","bind","isBuffer","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","assignValue","deepMerge","thisArg","trim","str","g","reportMessageResultErrorSilent","messageSource","message","JSON","stringify","stEx","Message","responseText","statusText","flashModalContainer","target","delay","$","fadeIn","setTimeout","fadeOut","remove","isJsonDate","parseJsonDate","formatDateToString","dateType","momentVal","parseMoment","pageData","urls","resolveNetId","parse","getHours","String","location","href","err","url","lineNumber","stackTrace","getPageUrl","post","errorMessage","details","titleContainer","dialog","containerId","_","uniqueId","find","prepend","log","Controls","displayErrorMessage","error","_validDateFormats","getDateFormats","dateFormats","timeFormats","moment","constructor","dt","startsWith","substring","equalsIgnoreCase","title","serializeToForm","fieldNamePrefix","targetContainer","dataToSerialize","each","childIndex","child","seralizationContainer","namePrefix","propertyName","propertyValue","attr","append","fqdn","at","CN","Realm","queryParams","Promise","resolve","reject","qp","then","response","params","lastFocusedItem","busySpinnerClass","sleepAsync","timeOutMs","resolutionValue","targetSelector","button","iconElement","innerHtml","html","previousIconClass","removeClass","addClass","show","previousClass","hide","removeAttr","icon","after","timeboxId","on","parsed","Service","parseDate","formatTime","moveUp","moveDown","initializeDndCell","snackbar","snackbarQueue","hideSnackbar","processSnackBarQueue","msgContainer","btn","showCloseButton","text","position","displaySnackbar","race","off","queueSnackBar","successMessage","row","fadeDelay","queue","dequeue","focus","contentRestriction","targetElement","color","originalColor","focusedItem","txtarea","scrollPos","strPos","br","range","front","back","scrollTop","selectionStart","createRange","moveStart","moveEnd","select","selectionEnd","insertAtCaret","css","animate","keyup","ready","idx","element","elem","path","node","realNode","localName","parent","siblings","children","checked","checkedTitle","uncheckedTitle","multiform","Logger","cell","clobber","parents","blur","keydown","event","focusedPosition","targetTable","closest","which","positionIndex","tBodies","rows","focusCellPosition","hover","hasClass","initializeMultiformBehavior","moveRowUp","moveRowDown","refreshMultiformBehavior","jQuery","popover","trigger","webpackPolyfill","paths","defineProperty","enumerable","symbolMap","numberMap","pluralForm","plurals","pluralize","f","weekdaysParseExact","suffixes","1","5","8","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","relativeTimeWithPlural","num","forms","standalone","lastDigit","last2Digits","relativeTimeWithMutation","mutationTable","softMutation","mutation","lastNumber","translate","monthsParseExact","ll","lll","llll","plural","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","0","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","one","word","numberAsNoun","processHoursFunction","utils","encode","encodeURIComponent","paramsSerializer","serializedParams","v","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","process","XMLHttpRequest","transformRequest","transformResponse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","enhanceError","code","config1","config2","Cancel","global","noGlobal","getProto","getPrototypeOf","class2type","hasOwn","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","doc","script","createElement","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","selector","context","init","rtrim","isArrayLike","jquery","pushStack","elems","prevObject","first","eq","last","end","splice","options","copy","copyIsArray","deep","isPlainObject","expando","random","isReady","noop","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","grep","invert","callbackExpect","guid","Symbol","iterator","Sizzle","Expr","getText","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escaped","escapedWhitespace","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","dir","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","getAttributeNode","tag","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","useCache","lastChild","uniqueID","pseudo","setFilters","unmatched","elemLang","hash","activeElement","hasFocus","tabIndex","selected","selectedIndex","radio","checkbox","file","image","submit","reset","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","rparentsprev","guaranteedUnique","contents","prev","sibling","has","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","Thrower","ex","adoptValue","noValue","fail","Callbacks","object","flag","createOptions","firing","memory","fired","locked","firingIndex","fire","once","stopOnFalse","disable","lock","fireWith","Deferred","tuples","state","always","deferred","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","mightThrow","TypeError","notifyWith","resolveWith","exceptionHook","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","camelCase","acceptData","owner","Data","uid","configurable","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","removeData","_removeData","startLength","_queueHooks","stop","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","buildFragment","scripts","selection","ignored","wrap","attached","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","insertBefore","before","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","expand","expanded","propHooks","run","percent","eased","step","fx","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeToggle","slow","fast","clearTimeout","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","classes","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","getResponseHeader","overrideMimeType","mimeType","finalText","crossDomain","host","hasContent","ifModified","beforeSend","success","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","xhrSuccessStatus","1223","xhrSupported","cors","errorCallback","xhrFields","onload","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","webpackContext","req","webpackContextResolve","__webpack_require__","previousUnderscore","ArrayProto","ObjProto","SymbolProto","nativeIsArray","nativeKeys","nativeCreate","create","_wrapped","VERSION","builtinIteratee","optimizeCb","argCount","accumulator","cb","iteratee","identity","property","Infinity","restArguments","startIndex","rest","baseCreate","shallowProperty","deepGet","MAX_ARRAY_INDEX","getLength","collect","currentKey","createReduce","reducer","memo","reduce","foldl","inject","reduceRight","foldr","detect","predicate","findIndex","findKey","negate","every","any","includes","include","item","fromIndex","guard","invoke","contextPath","pluck","where","findWhere","lastComputed","shuffle","sample","rand","sortBy","criteria","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","size","pass","take","tail","drop","compact","Boolean","flatten","shallow","isArguments","without","otherArrays","difference","uniq","isSorted","isBoolean","seen","union","arrays","intersection","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","mid","createIndexFinder","predicateFind","lastIndexOf","chunk","executeBound","sourceFunc","boundFunc","callingContext","bound","callArgs","partial","boundArgs","placeholder","bindAll","memoize","hasher","address","throttle","previous","later","leading","throttled","trailing","debounce","immediate","debounced","callNow","wrapper","compose","times","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","allKeys","mapObject","pairs","functions","methods","createAssigner","keysFunc","extendOwn","assign","deepEq","keyInObj","pick","omit","tap","interceptor","isMatch","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isEmpty","isElement","nodelist","Int8Array","isSymbol","isNull","constant","propertyOf","accum","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","unescape","fallback","idCounter","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","template","oldSettings","render","variable","chain","instance","_chain","chainResult","mixin","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","fulfilled","rejected","getUri","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","reason","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","normalizedName","isAxiosError","description","fileName","columnNumber","ignoreDuplicateOf","line","originURL","msie","userAgent","urlParsingNode","resolveURL","search","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","decodeURIComponent","relativeURL","executor","resolvePromise"],"mappings":"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AW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR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","file":"js/commons.c234a5a7b980cfc35621.dev.js","sourcesContent":["//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","module.exports = global[\"$\"] = require(\"-!./jquery.js\");","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import $ = require(\"jquery\");\nimport * as Controls from \"./Controls\";\n//import TraceKit = require(\"tracekit\");\n//import StackTrace = require(\"stacktrace-js\");\nimport moment = require(\"moment\");\nimport _ = require(\"underscore\");\nimport { INetIdRealmPair } from \"../models/iNetIdRealmPair\";\nimport axios from \"axios\";\n\n\ninterface IDSCUrlSettings {\n resolveNetId: string;\n}\ninterface IDSCGlobalSettings {\n urls: IDSCUrlSettings;\n}\n\nexport function globalPageData() {\n var pageData = {\n urls: {\n resolveNetId: null\n }\n };\n\n $.extend(pageData, window[\"dscGlobalSettings\"]);\n return pageData;\n}\n\nfunction logError(uniqueData) {\n function formatStackTrace(stack) {\n function formatStackLine(stackLine) {\n if (stackLine && stackLine.func) {\n return \"at \" + stackLine.func + \" in \" + stackLine.url + \": \" + stackLine.line;\n } else {\n return stackLine;\n }\n }\n\n if (stack && stack.length && stack.length > 0) {\n var lines = [];\n var i;\n var length = stack.length;\n for (i = 0; i < length; i += 1) {\n lines.push(formatStackLine(stack[i]));\n }\n return lines.join('\\r\\n');\n }\n return null;\n };\n\n\n var message, url, lineNumber, stackTrace, useragent;\n message = \"\";\n url = \"\";\n lineNumber = \"\";\n useragent = \"\";\n stackTrace = null;\n\n try {\n if (!uniqueData.stack) {\n uniqueData.stack = (new Error('make stack'))[\"stack\"];\n if (uniqueData.stack) {\n uniqueData.stack = uniqueData.stack.toString();\n }\n }\n } catch (e) {\n }\n\n if (uniqueData) {\n if (uniqueData.message) {\n message = uniqueData.message;\n }\n if (uniqueData.url) {\n url = uniqueData.url;\n }\n if (uniqueData.useragent) {\n useragent = uniqueData.useragent;\n }\n if (uniqueData.stack && typeof uniqueData.stack !== \"string\" && uniqueData.stack.length && uniqueData.stack[0]) {\n if (uniqueData.stack[0].line) {\n lineNumber = uniqueData.stack[0].line;\n }\n\n stackTrace = formatStackTrace(uniqueData.stack);\n\n }\n }\n if (!stackTrace) {\n if (typeof uniqueData !== 'string') {\n stackTrace = JSON.stringify(uniqueData);\n } else\n stackTrace = uniqueData;\n }\n\n if (window[\"errorReportingUrl\"] !== undefined && window[\"errorReportingUrl\"]) {\n $.post(window[\"errorReportingUrl\"], { errorMessage: message, url: url, lineNumber: lineNumber, stackTrace: stackTrace, useragent: useragent }, null, \"JSON\");\n }\n}\n\n// TraceKit.report.subscribe(logError);\n\nexport function parseDate(value) {\n return Date.parse(value);\n}\n\nexport function formatTime(value?) {\n if (value) {\n if (!value.getHours) {\n value = Date.parse(String(value));\n }\n if (value) {\n return value.format(\"hh:MM tt\");\n }\n }\n return null;\n}\n\nexport function formatDate(value?) {\n if (value) {\n if (!value.getHours) {\n value = Date.parse(String(value));\n }\n if (value) {\n return value.format(\"yyyy-mm-dd\");\n }\n }\n return null;\n}\n\nexport function getPageUrl() {\n try {\n if (window && window.location && window.location.href) {\n return window.location.href;\n }\n } catch (err) { }\n return null;\n}\n\nexport function reportError(messageSource: string, message: string, url?: string, lineNumber?, stackTrace?) {\n if (window[\"errorReportingUrl\"] !== undefined && window[\"errorReportingUrl\"]) {\n if (!url) {\n url = this.getPageUrl();\n }\n message = \"Message source: \" + messageSource + \"\\r\\n\" + message;\n $.post(window[\"errorReportingUrl\"], { errorMessage: message, url: url, lineNumber: lineNumber, stackTrace: stackTrace }, null, \"JSON\");\n }\n}\n\nexport function reportMessageResultErrorSilent(messageSource, data?) {\n var message = null;\n if (data) {\n try {\n message = JSON.stringify(data);\n data = null;\n } catch (stEx) {\n message = null;\n }\n }\n if (data) {\n if (data.Message) {\n message = data.Message;\n } else if (data.responseText) {\n message = data.responseText;\n } else if (data.statusText) {\n message = data.statusText;\n } else {\n message = data;\n }\n }\n if (!message) {\n message = \"no message available\";\n }\n\n var url, lineNumber;\n url = null;\n lineNumber = null;\n\n //StackTrace.get().then(function (stackframes) {\n // var stringifiedStack = stackframes.map(function (sf) {\n // return sf.toString();\n // }).join('\\r\\n');\n // reportError(messageSource, message, url, lineNumber, stringifiedStack);\n\n //}, function (err) {\n // reportError(messageSource, message);\n //});\n}\n\nexport function flashContainer(target, delay?: number) {\n if (!delay) {\n delay = 5000;\n }\n $(target).fadeIn(\"fast\");\n window.setTimeout(() => { $(target).fadeOut(\"slow\"); }, delay);\n};\n\nexport function flashModalContainer(target, delay?: number) {\n if (!delay) {\n delay = 5000;\n }\n $(target).fadeIn(\"fast\");\n window.setTimeout(() => { $(target).fadeOut(\"slow\").remove(); }, delay);\n};\n\nexport function reportMessageResultError(data, message?, details?) {\n reportMessageResultErrorSilent(\"reportMessageResultError\", data);\n message = message || \"Error occurred\";\n if (details === undefined) {\n details = \"An error occurred and has been reported to the application development team.\";\n }\n var titleContainer, isModal, dialog, containerId;\n dialog = $(\".modal:visible\");\n isModal = dialog.length > 0;\n if (isModal) {\n containerId = _.uniqueId('errorContainer_');\n titleContainer = \"\";\n dialog.find(\"div.modal-body\").prepend(titleContainer);\n flashModalContainer($(\"#\" + containerId));\n } else {\n console.log(\"notifying user\");\n Controls.displayErrorMessage(details, message);\n }\n\n}\n\nexport function reportErrorSilent(error) {\n try {\n //var TraceKit = window[\"TraceKit\"];\n //TraceKit.report(error);\n } catch (tce) { }\n}\n\nexport function isJsonDate(value): boolean {\n if (value != null && typeof (value) === \"string\") {\n if (value.match(/^\\/Date\\(/) != null) {\n return true;\n }\n }\n return false;\n}\n\nexport function parseJsonDate(value) {\n if (isJsonDate(value)) {\n return new Date(parseInt(value.replace(/\\/Date\\((\\d+)\\)\\//gi, \"$1\")));\n }\n return value;\n}\nexport type dateFormatValue = \"date\" | \"datetime\" | \"time\" | \"isodate\" | \"isodatetime\" | \"isotime\" | \"isodatetime2\";\nexport function formatDateToString(value, dateType?: dateFormatValue): string {\n var momentVal = parseMoment(value);\n if (dateType === undefined) {\n dateType = \"datetime\";\n }\n dateType = (dateType.toLowerCase());\n if (dateType === \"date\") {\n return momentVal.format(\"MM/DD/YYYY\");\n }\n else if (dateType === \"time\") {\n return momentVal.format(\"hh:mm:ss a\");\n }\n else if (dateType === \"isodate\") {\n return momentVal.format(\"YYYY-MM-DD\");\n }\n else if (dateType === \"isodatetime\") {\n return momentVal.format(\"YYYY-MM-DDTHH:mm:ss\");\n } else if (dateType === \"isotime\") {\n return momentVal.format(\"HH:mm:ss\");\n } else if (dateType === \"isodatetime2\") {\n return momentVal.format(\"YYYY-MM-DDTHH:mm\");\n } else {\n return momentVal.format(\"MM/DD/YYYY hh:mm:ss a\");\n }\n}\n\nvar _validDateFormats = null;\n\nfunction getDateFormats() {\n if (_validDateFormats) {\n return _validDateFormats;\n } else {\n _validDateFormats = [];\n var dateFormats = [\"M/D/YYYY\", \"YYYY-M-DD\", \"YYYY/M/D\"];\n var timeFormats = [\"h:mm a\", \"h:mm A\", \"H:mm\", \"h:mm:ss a\", \"ha\", \"HH:mm:ss\", \"HH:mm\"];\n for (var i = 0; i < dateFormats.length; i += 1) {\n _validDateFormats.push(dateFormats[i]);\n for (var j = 0; j < timeFormats.length; j += 1) {\n _validDateFormats.push(timeFormats[j]);\n _validDateFormats.push(dateFormats[i] + \" \" + timeFormats[j]);\n }\n }\n _validDateFormats.push(\"dddd, MMMM Do, YYYY h:mm:ss a\");\n return _validDateFormats;\n }\n}\n\nexport function parseMoment(value, isUtc?: boolean): moment.Moment {\n if (value) {\n if (value instanceof Date)\n return moment(value);\n else if (moment.isMoment(value))\n return value;\n if (isUtc === true) {\n return moment.utc(value, getDateFormats());\n }\n return moment(value, getDateFormats());\n }\n return null;\n}\n\nexport function coerceDateValue(value, dateType?: dateFormatValue): string {\n var date: moment.Moment;\n if (moment.isMoment(value)) {\n date = value;\n } else {\n date = parseMoment(value);\n }\n if (date && date.isValid()) {\n return formatDateToString(date, dateType);\n }\n return \"\";\n};\n\nexport function setDateValue(value) {\n if (isJsonDate(value)) {\n value = parseJsonDate(value);\n if (value !== null && isDate(value)) {\n value = formatDateToString(value);\n }\n }\n else if (value) {\n var dt = parseMoment(value);\n if (dt !== null && dt.isValid()) {\n value = formatDateToString(dt);\n }\n }\n return value;\n}\n\n\nexport function stringStartsWith(string: string, startsWith: string): boolean {\n string = string || \"\";\n if (startsWith.length > string.length)\n return false;\n return string.substring(0, startsWith.length) === startsWith;\n};\n\nexport function isDate(value) {\n return ((typeof (value) === \"object\" && value.constructor.toString().match(/date/i) !== null));\n}\n\nexport function isNumber(value) {\n return !isNaN(parseInt(String(value)));\n}\n\n(String as any).prototype.equalsIgnoreCase = function (arg) {\n return (new String(this.toLowerCase()).valueOf() === (new String(arg)).toLowerCase().valueOf());\n}\n\nexport function simpleFormat(title: string) {\n if (!title) {\n return title;\n }\n return title.toLowerCase().replace(/[^a-z0-9_-]/g, \"_\").replace(/_-_/g, \"_\");\n};\n\nfunction addSerializedValue(seralizationContainer, namePrefix, propertyName, propertyValue) {\n var value = propertyValue == null ? \"\" : propertyValue;\n var input = $(\"\");\n input.attr(\"name\", namePrefix + propertyName);\n input.val(value);\n seralizationContainer.append(input);\n}\n\nexport function serializeToForm(fieldNamePrefix, targetContainer, dataToSerialize) {\n for (var prop in dataToSerialize) {\n if (dataToSerialize.hasOwnProperty(prop)) {\n if (!$.isArray(dataToSerialize[prop])) {\n addSerializedValue(targetContainer, fieldNamePrefix, prop, dataToSerialize[prop]);\n } else {\n $.each(dataToSerialize[prop], (childIndex: any, child) => {\n serializeToForm(fieldNamePrefix + prop + \"[\" + childIndex + \"].\", targetContainer, child);\n });\n }\n }\n }\n}\n\nexport function parseFqdnToNetIdRealmPair(fqdn: string): INetIdRealmPair {\n var at = fqdn.indexOf(\"@\");\n var cn = fqdn.substr(0, at);\n var realm = fqdn.substr(at + 1);\n return { CN: cn, Realm: realm };\n}\n\nexport async function post(url: string, data: any, queryParams ?: any) {\n return await new Promise((resolve, reject) => {\n let qp = \"\";\n if (queryParams) {\n qp = `?${_.map(queryParams, (val, key) => `${key}=${val}`).join(\"&\")}`;\n }\n axios.post(`${url}${qp}`, data).then((response) => { resolve(response.data); }, error => { reject(error); });\n });\n}\n\nexport async function get(url: string, queryParams ?: any) {\n return await new Promise((resolve, reject) => {\n axios.get(url, { params: queryParams }).then((response) => { resolve(response.data); }, error => { reject(error); });\n });\n}","import $ = require(\"jquery\");\nimport * as Service from \"./Service\";\nimport * as Logger from \"./Logger\";\nimport moment = require(\"moment\");\n\n\n\nvar lastFocusedItem: JQuery = null;\nvar busySpinnerClass = \"material-icons spin-cw ml-2\";\n\nexport function setBusy(targetSelector) {\n if (targetSelector) {\n var button = $(targetSelector);\n var iconElement = button.find(\"i\");\n if (iconElement.length === 0) {\n var innerHtml = button.html();\n innerHtml = innerHtml + \"sync \";\n button.html(innerHtml);\n iconElement = button.find(\"i\");\n }\n var previousIconClass = iconElement.attr(\"class\");\n iconElement.data(\"setBusy_previousClass\", previousIconClass);\n iconElement.removeClass().addClass(busySpinnerClass);\n iconElement.show();\n button.prop(\"disabled\", true);\n }\n}\n\n\n\nexport function clearBusy(targetSelector) {\n if (targetSelector) {\n var button = $(targetSelector);\n var iconElement = button.find(\"i\");\n var previousClass = iconElement.data(\"setBusy_previousClass\");\n iconElement.removeClass(busySpinnerClass);\n if (previousClass) {\n iconElement.addClass(previousClass);\n }\n iconElement.hide();\n button.removeAttr(\"disabled\");\n }\n}\n\nexport function setBusyIcon(targetSelector) {\n if (targetSelector) {\n var button = $(targetSelector);\n var iconElement = button.next(\"i:contains(sync)\");\n if (iconElement.length === 0) {\n var icon = $('sync');\n button.after(icon);\n iconElement = button.find(\"i:contains(sync)\");\n }\n var previousIconClass = iconElement.attr(\"class\");\n iconElement.data(\"setBusy_previousClass\", previousIconClass);\n iconElement.removeClass().addClass(busySpinnerClass);\n iconElement.show();\n button.prop(\"disabled\", true);\n }\n};\n\nexport function clearBusyIcon(targetSelector) {\n if (targetSelector) {\n var button = $(targetSelector);\n var iconElement = button.next(\"i:contains(sync)\");\n var previousClass = iconElement.data(\"setBusy_previousClass\");\n iconElement.removeClass(busySpinnerClass);\n if (previousClass) {\n iconElement.addClass(previousClass);\n }\n iconElement.hide();\n button.removeAttr(\"disabled\");\n }\n}\n\n//static registerDownloadButton(buttonId: string) {\n// var targetSelector = \"#\" + buttonId;\n// var button = $(targetSelector);\n// var downloadUrl = button.attr(\"href\");\n\n// button.on(\"click\", function () {\n// Controls.setBusy(targetSelector);\n\n// $.fileDownload(downloadUrl, {\n// successCallback: function (url) {\n// Controls.clearBusy(targetSelector);\n// },\n// failCallback: function (html, url) {\n// Controls.clearBusy(targetSelector);\n// Service.reportMessageResultError(\"Error while getting report at url \" + url, \"Report Error\", \"There was an error generating your report. This error has been reported to the application development team.\");\n// }\n// });\n// return false;\n// });\n\n//}\n\n//static registerDateBox(dateboxId) {\n// $(\"#\" + dateboxId).datepicker();\n//}\n\nexport function registerTimeBox(timeboxId) {\n $(\"#\" + timeboxId).on(\"change\", function () {\n var parsed = Service.parseDate($(this).val());\n if (parsed) {\n parsed = Service.formatTime(parsed);\n $(this).val(parsed);\n } else {\n $(this).val(\"\");\n }\n });\n}\n\nexport function sleepAsync(timeOutMs: number, resolutionValue?: T) {\n return new Promise(resolve => { window.setTimeout(() => { resolve(resolutionValue); }, timeOutMs) });\n}\n\nexport type SnackbarPosition = \"left\" | \"center\" | \"right\";\ninterface ISnackbarMessage {\n message: string;\n position: SnackbarPosition;\n showCloseButton: boolean;\n}\n\n//Global snackbar variables\nvar snackbar = $(\"#globalSnackbar\");\nvar snackbarQueue: ISnackbarMessage[] = [];\n\n//Display material design snackbar message\nfunction displaySnackbar(msg: ISnackbarMessage) {\n var msgContainer = snackbar.find(\".snackbar-body\");\n if (msg.message.length > 72) {\n snackbar.addClass(\"snackbar-multi-line\");\n } else {\n snackbar.removeClass(\"snackbar-multi-line\");\n }\n let btn = $(\"#globalSnackbarBtn\");\n msg.showCloseButton ? btn.removeClass(\"d-none\") : btn.addClass(\"d-none\");\n \n msgContainer.text(msg.message);\n\n snackbar.removeClass(\"snackbar-left\").removeClass(\"snackbar-right\");\n if (msg.position === \"left\")\n snackbar.addClass(\"snackbar-left\");\n else if (msg.position === \"right\")\n snackbar.addClass(\"snackbar-right\");\n\n snackbar.addClass(\"show\");\n};\n\n//Hide material design snackbar message\nexport function hideSnackbar() {\n snackbar.removeClass(\"show\");\n};\n\nfunction closeBtnClickAsync() {\n let btn = $(\"#globalSnackbarBtn\");\n return new Promise(resolve => btn.on(\"click\", () => resolve()));\n}\n\nasync function processSnackBarQueue() {\n if (snackbarQueue.length > 0) {\n let message = snackbarQueue[0]; //Read first item in queue, but don't \n displaySnackbar(message);\n\n if (message.showCloseButton) {\n await Promise.race([sleepAsync(5000), closeBtnClickAsync()]);\n $(\"#globalSnackbarBtn\").off(\"click\");\n } else {\n await sleepAsync(5000); //Display the snack bar for the timeout interval\n }\n\n hideSnackbar();\n await sleepAsync(500); //Wait 500ms before cleaning up and resolving to give time for the hide animation to work\n snackbarQueue.shift(); //Remove item from queue\n console.log(\"Snackbar queue length: \" + snackbarQueue.length);\n processSnackBarQueue();\n }\n}\n\nfunction queueSnackBar(message: ISnackbarMessage) {\n snackbarQueue.push(message);\n console.log(\"Snackbar queue length: \" + snackbarQueue.length);\n if (snackbarQueue.length === 1) {\n processSnackBarQueue();\n };\n}\n\nexport function displaySuccessMessage(successMessage: string, position?: SnackbarPosition, showCloseButton?: boolean) {\n let msg = { message: \"SUCCESS! \" + successMessage, position: position || \"center\", showCloseButton: showCloseButton || false } as ISnackbarMessage;\n queueSnackBar(msg);\n //new PNotify({ title: successTitle || \"Success\", text: successMessage, type: \"success\", delay: 6000 });\n}\n\nexport function displayErrorMessage(errorMessage: string, position?: SnackbarPosition, showCloseButton?: boolean) {\n let msg = { message: \"ERROR! \" + errorMessage, position: position || \"center\", showCloseButton: showCloseButton || false } as ISnackbarMessage;\n queueSnackBar(msg);\n //new PNotify({ title: errorTitle || \"Error\", text: errorMessage, type: \"error\", delay: 6000 });\n}\n\nexport function displayMessage(message: string, position?: SnackbarPosition, showCloseButton?: boolean) {\n let msg = { message: message, position: position || \"center\", showCloseButton: showCloseButton || false } as ISnackbarMessage;\n queueSnackBar(msg);\n}\n\nexport function highlightRow(row, fadeDelay?: number) {\n if (!fadeDelay) {\n fadeDelay = 2000;\n }\n $(row).addClass(\"highlight\").delay(fadeDelay).queue(function () {\n $(this).removeClass(\"highlight\");\n $(this).dequeue();\n });\n}\n\nexport function beginTrackingFocus() {\n lastFocusedItem = null;\n $(\".track_focus\").focus(function () {\n lastFocusedItem = $(this);\n var contentRestriction = $(this).attr(\"data-restrictMergeContent\");\n if (contentRestriction) {\n $(\".mergeitem[data-contenttype='\" + contentRestriction + \"']\").prop(\"disabled\", false).attr(\"title\", \"\");\n $(\".mergeitem[data-contenttype!='\" + contentRestriction + \"']\").prop(\"disabled\", true).attr(\"title\", \"this field cannot be chosen for the selected textbox\");\n } else {\n $(\".mergeitem\").prop(\"disabled\", false).attr(\"title\", \"\");\n }\n });\n}\n\nfunction insertAtCaret(txtarea?: HTMLTextAreaElement, text?) {\n var scrollPos, strPos, br, range, front, back;\n if (txtarea) {\n scrollPos = txtarea.scrollTop;\n strPos = 0;\n br = ((txtarea.selectionStart || txtarea.selectionStart === 0) ? \"ff\" : (document[\"selection\"] ? \"ie\" : false));\n if (br === \"ie\") {\n txtarea.focus();\n range = document[\"selection\"].createRange();\n range.moveStart('character', -txtarea.value.length);\n strPos = range.text.length;\n } else if (br === \"ff\") {\n strPos = txtarea.selectionStart;\n }\n\n front = (txtarea.value).substring(0, strPos);\n back = (txtarea.value).substring(strPos, txtarea.value.length);\n txtarea.value = front + text + back;\n strPos = strPos + text.length;\n if (br === \"ie\") {\n txtarea.focus();\n range = document[\"selection\"].createRange();\n range.moveStart('character', -txtarea.value.length);\n range.moveStart('character', strPos);\n range.moveEnd('character', 0);\n range.select();\n } else if (br === \"ff\") {\n txtarea.selectionStart = strPos;\n txtarea.selectionEnd = strPos;\n txtarea.focus();\n }\n txtarea.scrollTop = scrollPos;\n }\n}\n\nfunction flashForegroundColor(targetElement: JQuery, color) {\n var originalColor = targetElement.css(\"color\");\n if (!originalColor) {\n originalColor = \"black\";\n }\n targetElement.css(\"color\", color);\n targetElement.animate({ color: originalColor }, 1000);\n}\n\nexport function insertAtLastFocusedCaret(text) {\n var focusedItem = lastFocusedItem;\n if (focusedItem && focusedItem.length > 0) {\n insertAtCaret(focusedItem[0], text);\n flashForegroundColor(focusedItem, \"#93FF28\");\n focusedItem.keyup();\n }\n}\n\nexport function registerDateSpanDisplays() {\n $(document).ready(() => {\n $(\"span.date-display\").each((idx, val) => {\n var dt = $(val).attr(\"data-isoDateUtc\");\n var m = moment.utc(dt);\n if (m.isValid()) {\n m = m.local();\n $(val).attr(\"title\", m.format(\"YYYY-MM-DD HH:mm:ss Z\"));\n }\n });\n });\n}\n\nexport function getJquerySelectorPath(element: HTMLElement): string {\n var elem = $(element);\n if (elem.length !== 1) throw 'Requires one element.';\n\n var path: string = null;\n var node = elem;\n while (node.length) {\n var realNode = node[0], name = realNode.localName;\n if (!name) break;\n name = name.toLowerCase();\n\n var parent = node.parent();\n\n var siblings = parent.children(name);\n if (siblings.length > 1) {\n name += ':eq(' + siblings.index(realNode) + ')';\n }\n\n path = name + (path ? '>' + path : '');\n node = parent;\n }\n\n return path;\n}\n\nexport function renderCheckboxIcon(checked: boolean, checkedTitle?: string, uncheckedTitle?: string): string {\n checkedTitle = checkedTitle || \"Active\";\n uncheckedTitle = uncheckedTitle || \"Inactive\";\n return `${checked ? checkedTitle : uncheckedTitle}`;\n}\n\nexport interface IMultiform {\n initializeMultiformBehavior(target, moveRowUp, moveRowDown): void;\n refreshMultiformBehavior(target, clobber?): void;\n}\n\nexport var multiform: IMultiform = (() => {\n var that: any = {};\n var moveUp, moveDown;\n var focusedPositionIndex = \"focusedPositionIndex\";\n var l = message => { Logger.log(message); };\n\n var focusCellPosition = (target, positionIndex) => {\n l(\"positionIndex is \" + positionIndex);\n if (positionIndex !== undefined && positionIndex !== null) {\n l(\"trying to set focused dNd cell at position \" + positionIndex);\n var row = ($(target)[0]).tBodies[0].rows[positionIndex];\n if (row) {\n $(row).find(\".dNdCell\").focus();\n }\n $(target).data(focusedPositionIndex, null);\n };\n\n };\n var initializeDndCell = (cell: JQuery, clobber?) => {\n cell.attr(\"tabindex\", 0).attr(\"aria-grabbed\", \"false\").focus(function () { $(this).attr(\"aria-grabbed\", \"true\").addClass(\"move-icon\").parents(\"tr\").addClass(\"focused\").attr(\"aria-focused\", \"true\"); }).blur(function () { $(this).attr(\"aria-grabbed\", \"false\").removeClass(\"move-icon\").parents(\"tr\").removeClass(\"focused\").removeAttr(\"aria-focused\"); }).keydown(function (event) {\n var focusedPosition = null;\n var targetTable = $(this).closest(\"table\");\n if (targetTable.length > 0) {\n if (event.which === 38 && moveUp) {\n focusedPosition = moveUp($(this)[0]);\n } else if (event.which === 40 && moveDown) {\n focusedPosition = moveDown($(this)[0]);\n }\n if (focusedPosition === undefined) {\n focusedPosition = null;\n }\n l(\"setting focused position to \" + focusedPosition);\n focusCellPosition(targetTable, focusedPosition);\n }\n\n });\n\n cell.parents(\"tr\").hover(function () {\n if (!$(this).hasClass(\"nodrag\")) {\n $(this.children[0]).addClass('move-icon');\n }\n }, function () {\n $(this.children[0]).removeClass(\"move-icon\");\n });\n };\n\n\n that.initializeMultiformBehavior = (target, moveRowUp, moveRowDown) => {\n moveUp = moveRowUp;\n moveDown = moveRowDown;\n initializeDndCell($(target).find(\"tr td .dNdCell\"));\n };\n that.refreshMultiformBehavior = (target, clobber) => {\n initializeDndCell($(target).find(\"tr td .dNdCell\"), clobber);\n };\n\n return that;\n})();\n\nexport function enablePopovers() {\n jQuery(\"[data-toggle='popover']\").popover();\n jQuery(\".popover-dismiss\").popover({\n trigger: \"focus\"\n });\n};","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var af = moment.defineLocale('af', {\n months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM : function (input) {\n return /^nm$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Vandag om] LT',\n nextDay : '[Môre om] LT',\n nextWeek : 'dddd [om] LT',\n lastDay : '[Gister om] LT',\n lastWeek : '[Laas] dddd [om] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'oor %s',\n past : '%s gelede',\n s : '\\'n paar sekondes',\n ss : '%d sekondes',\n m : '\\'n minuut',\n mm : '%d minute',\n h : '\\'n uur',\n hh : '%d ure',\n d : '\\'n dag',\n dd : '%d dae',\n M : '\\'n maand',\n MM : '%d maande',\n y : '\\'n jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week : {\n dow : 1, // Maandag is die eerste dag van die week.\n doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n }\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var ar = moment.defineLocale('ar', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arDz = moment.defineLocale('ar-dz', {\n months : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'أح_إث_ثلا_أر_خم_جم_سب'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arKw = moment.defineLocale('ar-kw', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0'\n }, pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n }, plurals = {\n s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n }, pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n }, months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر'\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months : months,\n monthsShort : months,\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/\\u200FM/\\u200FYYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'بعد %s',\n past : 'منذ %s',\n s : pluralize('s'),\n ss : pluralize('s'),\n m : pluralize('m'),\n mm : pluralize('m'),\n h : pluralize('h'),\n hh : pluralize('h'),\n d : pluralize('d'),\n dd : pluralize('d'),\n M : pluralize('M'),\n MM : pluralize('M'),\n y : pluralize('y'),\n yy : pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arMa = moment.defineLocale('ar-ma', {\n months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM : function (input) {\n return 'م' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar : {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'في %s',\n past : 'منذ %s',\n s : 'ثوان',\n ss : '%d ثانية',\n m : 'دقيقة',\n mm : '%d دقائق',\n h : 'ساعة',\n hh : '%d ساعات',\n d : 'يوم',\n dd : '%d أيام',\n M : 'شهر',\n MM : '%d أشهر',\n y : 'سنة',\n yy : '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss : '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n\n var az = moment.defineLocale('az', {\n months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[sabah saat] LT',\n nextWeek : '[gələn həftə] dddd [saat] LT',\n lastDay : '[dünən] LT',\n lastWeek : '[keçən həftə] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s əvvəl',\n s : 'birneçə saniyə',\n ss : '%d saniyə',\n m : 'bir dəqiqə',\n mm : '%d dəqiqə',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir il',\n yy : '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM : function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal : function (number) {\n if (number === 0) { // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n 'dd': 'дзень_дні_дзён',\n 'MM': 'месяц_месяцы_месяцаў',\n 'yy': 'год_гады_гадоў'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months : {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays : {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n },\n weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., HH:mm',\n LLLL : 'dddd, D MMMM YYYY г., HH:mm'\n },\n calendar : {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'праз %s',\n past : '%s таму',\n s : 'некалькі секунд',\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithPlural,\n hh : relativeTimeWithPlural,\n d : 'дзень',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM : function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bg = moment.defineLocale('bg', {\n months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Днес в] LT',\n nextDay : '[Утре в] LT',\n nextWeek : 'dddd [в] LT',\n lastDay : '[Вчера в] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[В изминалия] dddd [в] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'след %s',\n past : 'преди %s',\n s : 'няколко секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дни',\n M : 'месец',\n MM : '%d месеца',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var bm = moment.defineLocale('bm', {\n months : 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n monthsShort : 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays : 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort : 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin : 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'MMMM [tile] D [san] YYYY',\n LLL : 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL : 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n },\n calendar : {\n sameDay : '[Bi lɛrɛ] LT',\n nextDay : '[Sini lɛrɛ] LT',\n nextWeek : 'dddd [don lɛrɛ] LT',\n lastDay : '[Kunu lɛrɛ] LT',\n lastWeek : 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s kɔnɔ',\n past : 'a bɛ %s bɔ',\n s : 'sanga dama dama',\n ss : 'sekondi %d',\n m : 'miniti kelen',\n mm : 'miniti %d',\n h : 'lɛrɛ kelen',\n hh : 'lɛrɛ %d',\n d : 'tile kelen',\n dd : 'tile %d',\n M : 'kalo kelen',\n MM : 'kalo %d',\n y : 'san kelen',\n yy : 'san %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n\n var bn = moment.defineLocale('bn', {\n months : 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort : 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin : 'রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি'.split('_'),\n longDateFormat : {\n LT : 'A h:mm সময়',\n LTS : 'A h:mm:ss সময়',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm সময়',\n LLLL : 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar : {\n sameDay : '[আজ] LT',\n nextDay : '[আগামীকাল] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[গতকাল] LT',\n lastWeek : '[গত] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s পরে',\n past : '%s আগে',\n s : 'কয়েক সেকেন্ড',\n ss : '%d সেকেন্ড',\n m : 'এক মিনিট',\n mm : '%d মিনিট',\n h : 'এক ঘন্টা',\n hh : '%d ঘন্টা',\n d : 'এক দিন',\n dd : '%d দিন',\n M : 'এক মাস',\n MM : '%d মাস',\n y : 'এক বছর',\n yy : '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠'\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0'\n };\n\n var bo = moment.defineLocale('bo', {\n months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[དི་རིང] LT',\n nextDay : '[སང་ཉིན] LT',\n nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay : '[ཁ་སང] LT',\n lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ལ་',\n past : '%s སྔན་ལ',\n s : 'ལམ་སང',\n ss : '%d སྐར་ཆ།',\n m : 'སྐར་མ་གཅིག',\n mm : '%d སྐར་མ',\n h : 'ཆུ་ཚོད་གཅིག',\n hh : '%d ཆུ་ཚོད',\n d : 'ཉིན་གཅིག',\n dd : '%d ཉིན་',\n M : 'ཟླ་བ་གཅིག',\n MM : '%d ཟླ་བ',\n y : 'ལོ་གཅིག',\n yy : '%d ལོ'\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n 'mm': 'munutenn',\n 'MM': 'miz',\n 'dd': 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var br = moment.defineLocale('br', {\n months : 'Genver_C\\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort : 'Gen_C\\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays : 'Sul_Lun_Meurzh_Merc\\'her_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h[e]mm A',\n LTS : 'h[e]mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [a viz] MMMM YYYY',\n LLL : 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A'\n },\n calendar : {\n sameDay : '[Hiziv da] LT',\n nextDay : '[Warc\\'hoazh da] LT',\n nextWeek : 'dddd [da] LT',\n lastDay : '[Dec\\'h da] LT',\n lastWeek : 'dddd [paset da] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'a-benn %s',\n past : '%s \\'zo',\n s : 'un nebeud segondennoù',\n ss : '%d eilenn',\n m : 'ur vunutenn',\n mm : relativeTimeWithMutation,\n h : 'un eur',\n hh : '%d eur',\n d : 'un devezh',\n dd : relativeTimeWithMutation,\n M : 'ur miz',\n MM : relativeTimeWithMutation,\n y : 'ur bloaz',\n yy : specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal : function (number) {\n var output = (number === 1) ? 'añ' : 'vet';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ca = moment.defineLocale('ca', {\n months : {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n format: 'de gener_de febrer_de març_d\\'abril_de maig_de juny_de juliol_d\\'agost_de setembre_d\\'octubre_de novembre_de desembre'.split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort : 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin : 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [de] YYYY',\n ll : 'D MMM YYYY',\n LLL : 'D MMMM [de] YYYY [a les] H:mm',\n lll : 'D MMM YYYY, H:mm',\n LLLL : 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll : 'ddd D MMM YYYY, H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextDay : function () {\n return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastDay : function () {\n return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'd\\'aquí %s',\n past : 'fa %s',\n s : 'uns segons',\n ss : '%d segons',\n m : 'un minut',\n mm : '%d minuts',\n h : 'una hora',\n hh : '%d hores',\n d : 'un dia',\n dd : '%d dies',\n M : 'un mes',\n MM : '%d mesos',\n y : 'un any',\n yy : '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal : function (number, period) {\n var output = (number === 1) ? 'r' :\n (number === 2) ? 'n' :\n (number === 3) ? 'r' :\n (number === 4) ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n\n var monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i];\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n var monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return (n > 1) && (n < 5) && (~~(n / 10) !== 1);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n break;\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months : months,\n monthsShort : monthsShort,\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex : /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex : /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm',\n l : 'D. M. YYYY'\n },\n calendar : {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'před %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse : /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cv = moment.defineLocale('cv', {\n months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar : {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime : {\n future : function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past : '%s каялла',\n s : 'пӗр-ик ҫеккунт',\n ss : '%d ҫеккунт',\n m : 'пӗр минут',\n mm : '%d минут',\n h : 'пӗр сехет',\n hh : '%d сехет',\n d : 'пӗр кун',\n dd : '%d кун',\n M : 'пӗр уйӑх',\n MM : '%d уйӑх',\n y : 'пӗр ҫул',\n yy : '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal : '%d-мӗш',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact : true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS : 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var da = moment.defineLocale('da', {\n months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'på dddd [kl.] LT',\n lastDay : '[i går kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'få sekunder',\n ss : '%d sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en måned',\n MM : '%d måneder',\n y : 'et år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [number + ' Tage', number + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [number + ' Monate', number + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [number + ' Jahre', number + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort : 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime : {\n future : 'in %s',\n past : 'vor %s',\n s : 'ein paar Sekunden',\n ss : '%d Sekunden',\n m : processRelativeTime,\n mm : '%d Minuten',\n h : processRelativeTime,\n hh : '%d Stunden',\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު'\n ], weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު'\n ];\n\n var dv = moment.defineLocale('dv', {\n months : months,\n monthsShort : months,\n weekdays : weekdays,\n weekdaysShort : weekdays,\n weekdaysMin : 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat : {\n\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'D/M/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /މކ|މފ/,\n isPM : function (input) {\n return 'މފ' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar : {\n sameDay : '[މިއަދު] LT',\n nextDay : '[މާދަމާ] LT',\n nextWeek : 'dddd LT',\n lastDay : '[އިއްޔެ] LT',\n lastWeek : '[ފާއިތުވި] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ތެރޭގައި %s',\n past : 'ކުރިން %s',\n s : 'ސިކުންތުކޮޅެއް',\n ss : 'd% ސިކުންތު',\n m : 'މިނިޓެއް',\n mm : 'މިނިޓު %d',\n h : 'ގަޑިއިރެއް',\n hh : 'ގަޑިއިރު %d',\n d : 'ދުވަހެއް',\n dd : 'ދުވަސް %d',\n M : 'މަހެއް',\n MM : 'މަސް %d',\n y : 'އަހަރެއް',\n yy : 'އަހަރު %d'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 7, // Sunday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM : function (input) {\n return ((input + '').toLowerCase()[0] === 'μ');\n },\n meridiemParse : /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendarEl : {\n sameDay : '[Σήμερα {}] LT',\n nextDay : '[Αύριο {}] LT',\n nextWeek : 'dddd [{}] LT',\n lastDay : '[Χθες {}] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse : 'L'\n },\n calendar : function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις'));\n },\n relativeTime : {\n future : 'σε %s',\n past : '%s πριν',\n s : 'λίγα δευτερόλεπτα',\n ss : '%d δευτερόλεπτα',\n m : 'ένα λεπτό',\n mm : '%d λεπτά',\n h : 'μία ώρα',\n hh : '%d ώρες',\n d : 'μία μέρα',\n dd : '%d μέρες',\n M : 'ένας μήνας',\n MM : '%d μήνες',\n y : 'ένας χρόνος',\n yy : '%d χρόνια'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4st is the first week of the year.\n }\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enSG = moment.defineLocale('en-SG', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enSG;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enAu = moment.defineLocale('en-au', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enCa = moment.defineLocale('en-ca', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'YYYY-MM-DD',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enGb = moment.defineLocale('en-gb', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIe = moment.defineLocale('en-ie', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enIl = moment.defineLocale('en-il', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var enNz = moment.defineLocale('en-nz', {\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eo = moment.defineLocale('eo', {\n months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'),\n weekdays : 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort : 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin : 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D[-a de] MMMM, YYYY',\n LLL : 'D[-a de] MMMM, YYYY HH:mm',\n LLLL : 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar : {\n sameDay : '[Hodiaŭ je] LT',\n nextDay : '[Morgaŭ je] LT',\n nextWeek : 'dddd [je] LT',\n lastDay : '[Hieraŭ je] LT',\n lastWeek : '[pasinta] dddd [je] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'post %s',\n past : 'antaŭ %s',\n s : 'sekundoj',\n ss : '%d sekundoj',\n m : 'minuto',\n mm : '%d minutoj',\n h : 'horo',\n hh : '%d horoj',\n d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo\n dd : '%d tagoj',\n M : 'monato',\n MM : '%d monatoj',\n y : 'jaro',\n yy : '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal : '%da',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex : monthsRegex,\n monthsShortRegex : monthsRegex,\n monthsStrictRegex : /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex : /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months : 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays : 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'MM/DD/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY h:mm A',\n LLLL : 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar : {\n sameDay : function () {\n return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextDay : function () {\n return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastDay : function () {\n return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n lastWeek : function () {\n return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'en %s',\n past : 'hace %s',\n s : 'unos segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'una hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un año',\n yy : '%d años'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n 'ss': [number + 'sekundi', number + 'sekundit'],\n 'm' : ['ühe minuti', 'üks minut'],\n 'mm': [number + ' minuti', number + ' minutit'],\n 'h' : ['ühe tunni', 'tund aega', 'üks tund'],\n 'hh': [number + ' tunni', number + ' tundi'],\n 'd' : ['ühe päeva', 'üks päev'],\n 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],\n 'MM': [number + ' kuu', number + ' kuud'],\n 'y' : ['ühe aasta', 'aasta', 'üks aasta'],\n 'yy': [number + ' aasta', number + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort : 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin : 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Täna,] LT',\n nextDay : '[Homme,] LT',\n nextWeek : '[Järgmine] dddd LT',\n lastDay : '[Eile,] LT',\n lastWeek : '[Eelmine] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var eu = moment.defineLocale('eu', {\n months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact : true,\n weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY[ko] MMMM[ren] D[a]',\n LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l : 'YYYY-M-D',\n ll : 'YYYY[ko] MMM D[a]',\n lll : 'YYYY[ko] MMM D[a] HH:mm',\n llll : 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar : {\n sameDay : '[gaur] LT[etan]',\n nextDay : '[bihar] LT[etan]',\n nextWeek : 'dddd LT[etan]',\n lastDay : '[atzo] LT[etan]',\n lastWeek : '[aurreko] dddd LT[etan]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s barru',\n past : 'duela %s',\n s : 'segundo batzuk',\n ss : '%d segundo',\n m : 'minutu bat',\n mm : '%d minutu',\n h : 'ordu bat',\n hh : '%d ordu',\n d : 'egun bat',\n dd : '%d egun',\n M : 'hilabete bat',\n MM : '%d hilabete',\n y : 'urte bat',\n yy : '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰'\n }, numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0'\n };\n\n var fa = moment.defineLocale('fa', {\n months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysShort : 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar : {\n sameDay : '[امروز ساعت] LT',\n nextDay : '[فردا ساعت] LT',\n nextWeek : 'dddd [ساعت] LT',\n lastDay : '[دیروز ساعت] LT',\n lastWeek : 'dddd [پیش] [ساعت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'در %s',\n past : '%s پیش',\n s : 'چند ثانیه',\n ss : 'ثانیه d%',\n m : 'یک دقیقه',\n mm : '%d دقیقه',\n h : 'یک ساعت',\n hh : '%d ساعت',\n d : 'یک روز',\n dd : '%d روز',\n M : 'یک ماه',\n MM : '%d ماه',\n y : 'یک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal : '%dم',\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'Do MMMM[ta] YYYY',\n LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l : 'D.M.YYYY',\n ll : 'Do MMM YYYY',\n lll : 'Do MMM YYYY, [klo] HH.mm',\n llll : 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar : {\n sameDay : '[tänään] [klo] LT',\n nextDay : '[huomenna] [klo] LT',\n nextWeek : 'dddd [klo] LT',\n lastDay : '[eilen] [klo] LT',\n lastWeek : '[viime] dddd[na] [klo] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s päästä',\n past : '%s sitten',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fo = moment.defineLocale('fo', {\n months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Í dag kl.] LT',\n nextDay : '[Í morgin kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[Í gjár kl.] LT',\n lastWeek : '[síðstu] dddd [kl] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'um %s',\n past : '%s síðani',\n s : 'fá sekund',\n ss : '%d sekundir',\n m : 'ein minuttur',\n mm : '%d minuttir',\n h : 'ein tími',\n hh : '%d tímar',\n d : 'ein dagur',\n dd : '%d dagar',\n M : 'ein mánaður',\n MM : '%d mánaðir',\n y : 'eitt ár',\n yy : '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var fr = moment.defineLocale('fr', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal : function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCa = moment.defineLocale('fr-ca', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var frCh = moment.defineLocale('fr-ch', {\n months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact : true,\n weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin : 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Aujourd’hui à] LT',\n nextDay : '[Demain à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[Hier à] LT',\n lastWeek : 'dddd [dernier à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dans %s',\n past : 'il y a %s',\n s : 'quelques secondes',\n ss : '%d secondes',\n m : 'une minute',\n mm : '%d minutes',\n h : 'une heure',\n hh : '%d heures',\n d : 'un jour',\n dd : '%d jours',\n M : 'un mois',\n MM : '%d mois',\n y : 'un an',\n yy : '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal : function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact : true,\n weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'oer %s',\n past : '%s lyn',\n s : 'in pear sekonden',\n ss : '%d sekonden',\n m : 'ien minút',\n mm : '%d minuten',\n h : 'ien oere',\n hh : '%d oeren',\n d : 'ien dei',\n dd : '%d dagen',\n M : 'ien moanne',\n MM : '%d moannen',\n y : 'ien jier',\n yy : '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n\n var months = [\n 'Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'\n ];\n\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné aig] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d mí',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'\n ];\n\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months : months,\n monthsShort : monthsShort,\n monthsParseExact : true,\n weekdays : weekdays,\n weekdaysShort : weekdaysShort,\n weekdaysMin : weekdaysMin,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[An-diugh aig] LT',\n nextDay : '[A-màireach aig] LT',\n nextWeek : 'dddd [aig] LT',\n lastDay : '[An-dè aig] LT',\n lastWeek : 'dddd [seo chaidh] [aig] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ann an %s',\n past : 'bho chionn %s',\n s : 'beagan diogan',\n ss : '%d diogan',\n m : 'mionaid',\n mm : '%d mionaidean',\n h : 'uair',\n hh : '%d uairean',\n d : 'latha',\n dd : '%d latha',\n M : 'mìos',\n MM : '%d mìosan',\n y : 'bliadhna',\n yy : '%d bliadhna'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(d|na|mh)/,\n ordinal : function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var gl = moment.defineLocale('gl', {\n months : 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort : 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort : 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin : 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY H:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar : {\n sameDay : function () {\n return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextDay : function () {\n return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';\n },\n nextWeek : function () {\n return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n lastDay : function () {\n return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';\n },\n lastWeek : function () {\n return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past : 'hai %s',\n s : 'uns segundos',\n ss : '%d segundos',\n m : 'un minuto',\n mm : '%d minutos',\n h : 'unha hora',\n hh : '%d horas',\n d : 'un día',\n dd : '%d días',\n M : 'un mes',\n MM : '%d meses',\n y : 'un ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months : 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort : 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays : 'Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son\\'var'.split('_'),\n weekdaysShort : 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin : 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'A h:mm [vazta]',\n LTS : 'A h:mm:ss [vazta]',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY A h:mm [vazta]',\n LLLL : 'dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n },\n calendar : {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s',\n past : '%s adim',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(er)/,\n ordinal : function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n }\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var he = moment.defineLocale('he', {\n months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [ב]MMMM YYYY',\n LLL : 'D [ב]MMMM YYYY HH:mm',\n LLLL : 'dddd, D [ב]MMMM YYYY HH:mm',\n l : 'D/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[היום ב־]LT',\n nextDay : '[מחר ב־]LT',\n nextWeek : 'dddd [בשעה] LT',\n lastDay : '[אתמול ב־]LT',\n lastWeek : '[ביום] dddd [האחרון בשעה] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'בעוד %s',\n past : 'לפני %s',\n s : 'מספר שניות',\n ss : '%d שניות',\n m : 'דקה',\n mm : '%d דקות',\n h : 'שעה',\n hh : function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d : 'יום',\n dd : function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M : 'חודש',\n MM : function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y : 'שנה',\n yy : function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM : function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n }\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var hi = moment.defineLocale('hi', {\n months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm बजे',\n LTS : 'A h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, A h:mm बजे'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[कल] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[कल] LT',\n lastWeek : '[पिछले] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s में',\n past : '%s पहले',\n s : 'कुछ ही क्षण',\n ss : '%d सेकंड',\n m : 'एक मिनट',\n mm : '%d मिनट',\n h : 'एक घंटा',\n hh : '%d घंटे',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महीने',\n MM : '%d महीने',\n y : 'एक वर्ष',\n yy : '%d वर्ष'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months : {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danas u] LT',\n nextDay : '[sutra u] LT',\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[jučer u] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'par sekundi',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : 'dan',\n dd : translate,\n M : 'mjesec',\n MM : translate,\n y : 'godinu',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek : function () {\n return week.call(this, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek : function () {\n return week.call(this, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var hyAm = moment.defineLocale('hy-am', {\n months : {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n },\n monthsShort : 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays : 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY թ.',\n LLL : 'D MMMM YYYY թ., HH:mm',\n LLLL : 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar : {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s հետո',\n past : '%s առաջ',\n s : 'մի քանի վայրկյան',\n ss : '%d վայրկյան',\n m : 'րոպե',\n mm : '%d րոպե',\n h : 'ժամ',\n hh : '%d ժամ',\n d : 'օր',\n dd : '%d օր',\n M : 'ամիս',\n MM : '%d ամիս',\n y : 'տարի',\n yy : '%d տարի'\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem : function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var id = moment.defineLocale('id', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar : {\n sameDay : '[í dag kl.] LT',\n nextDay : '[á morgun kl.] LT',\n nextWeek : 'dddd [kl.] LT',\n lastDay : '[í gær kl.] LT',\n lastWeek : '[síðasta] dddd [kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'eftir %s',\n past : 'fyrir %s síðan',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : 'klukkustund',\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var it = moment.defineLocale('it', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var itCh = moment.defineLocale('it-ch', {\n months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays : 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort : 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin : 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : function (s) {\n return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past : '%s fa',\n s : 'alcuni secondi',\n ss : '%d secondi',\n m : 'un minuto',\n mm : '%d minuti',\n h : 'un\\'ora',\n hh : '%d ore',\n d : 'un giorno',\n dd : '%d giorni',\n M : 'un mese',\n MM : '%d mesi',\n y : 'un anno',\n yy : '%d anni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ja = moment.defineLocale('ja', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort : '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin : '日_月_火_水_木_金_土'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日 dddd HH:mm',\n l : 'YYYY/MM/DD',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日(ddd) HH:mm'\n },\n meridiemParse: /午前|午後/i,\n isPM : function (input) {\n return input === '午後';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar : {\n sameDay : '[今日] LT',\n nextDay : '[明日] LT',\n nextWeek : function (now) {\n if (now.week() < this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay : '[昨日] LT',\n lastWeek : function (now) {\n if (this.week() < now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}日/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s後',\n past : '%s前',\n s : '数秒',\n ss : '%d秒',\n m : '1分',\n mm : '%d分',\n h : '1時間',\n hh : '%d時間',\n d : '1日',\n dd : '%d日',\n M : '1ヶ月',\n MM : '%dヶ月',\n y : '1年',\n yy : '%d年'\n }\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var jv = moment.defineLocale('jv', {\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar : {\n sameDay : '[Dinten puniko pukul] LT',\n nextDay : '[Mbenjang pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kala wingi pukul] LT',\n lastWeek : 'dddd [kepengker pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'wonten ing %s',\n past : '%s ingkang kepengker',\n s : 'sawetawis detik',\n ss : '%d detik',\n m : 'setunggal menit',\n mm : '%d menit',\n h : 'setunggal jam',\n hh : '%d jam',\n d : 'sedinten',\n dd : '%d dinten',\n M : 'sewulan',\n MM : '%d wulan',\n y : 'setaun',\n yy : '%d taun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ka = moment.defineLocale('ka', {\n months : {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future : function (s) {\n return (/(წამი|წუთი|საათი|წელი)/).test(s) ?\n s.replace(/ი$/, 'ში') :\n s + 'ში';\n },\n past : function (s) {\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n },\n s : 'რამდენიმე წამი',\n ss : '%d წამი',\n m : 'წუთი',\n mm : '%d წუთი',\n h : 'საათი',\n hh : '%d საათი',\n d : 'დღე',\n dd : '%d დღე',\n M : 'თვე',\n MM : '%d თვე',\n y : 'წელი',\n yy : '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal : function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week : {\n dow : 1,\n doy : 7\n }\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n };\n\n var kk = moment.defineLocale('kk', {\n months : 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n monthsShort : 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays : 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n weekdaysShort : 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin : 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгін сағат] LT',\n nextDay : '[Ертең сағат] LT',\n nextWeek : 'dddd [сағат] LT',\n lastDay : '[Кеше сағат] LT',\n lastWeek : '[Өткен аптаның] dddd [сағат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ішінде',\n past : '%s бұрын',\n s : 'бірнеше секунд',\n ss : '%d секунд',\n m : 'бір минут',\n mm : '%d минут',\n h : 'бір сағат',\n hh : '%d сағат',\n d : 'бір күн',\n dd : '%d күн',\n M : 'бір ай',\n MM : '%d ай',\n y : 'бір жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០'\n }, numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse : /ទី\\d{1,2}/,\n ordinal : 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦'\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0'\n };\n\n var kn = moment.defineLocale('kn', {\n months : 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort : 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n monthsParseExact: true,\n weekdays : 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n weekdaysShort : 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin : 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[ಇಂದು] LT',\n nextDay : '[ನಾಳೆ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ನಿನ್ನೆ] LT',\n lastWeek : '[ಕೊನೆಯ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ನಂತರ',\n past : '%s ಹಿಂದೆ',\n s : 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss : '%d ಸೆಕೆಂಡುಗಳು',\n m : 'ಒಂದು ನಿಮಿಷ',\n mm : '%d ನಿಮಿಷ',\n h : 'ಒಂದು ಗಂಟೆ',\n hh : '%d ಗಂಟೆ',\n d : 'ಒಂದು ದಿನ',\n dd : '%d ದಿನ',\n M : 'ಒಂದು ತಿಂಗಳು',\n MM : '%d ತಿಂಗಳು',\n y : 'ಒಂದು ವರ್ಷ',\n yy : '%d ವರ್ಷ'\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal : function (number) {\n return number + 'ನೇ';\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ko = moment.defineLocale('ko', {\n months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort : '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin : '일_월_화_수_목_금_토'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY년 MMMM D일',\n LLL : 'YYYY년 MMMM D일 A h:mm',\n LLLL : 'YYYY년 MMMM D일 dddd A h:mm',\n l : 'YYYY.MM.DD.',\n ll : 'YYYY년 MMMM D일',\n lll : 'YYYY년 MMMM D일 A h:mm',\n llll : 'YYYY년 MMMM D일 dddd A h:mm'\n },\n calendar : {\n sameDay : '오늘 LT',\n nextDay : '내일 LT',\n nextWeek : 'dddd LT',\n lastDay : '어제 LT',\n lastWeek : '지난주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s 후',\n past : '%s 전',\n s : '몇 초',\n ss : '%d초',\n m : '1분',\n mm : '%d분',\n h : '한 시간',\n hh : '%d시간',\n d : '하루',\n dd : '%d일',\n M : '한 달',\n MM : '%d달',\n y : '일 년',\n yy : '%d년'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(일|월|주)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse : /오전|오후/,\n isPM : function (token) {\n return token === '오후';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠'\n }, numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم'\n ];\n\n\n var ku = moment.defineLocale('ku', {\n months : months,\n monthsShort : months,\n weekdays : 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysShort : 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin : 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar : {\n sameDay : '[ئه‌مرۆ كاتژمێر] LT',\n nextDay : '[به‌یانی كاتژمێر] LT',\n nextWeek : 'dddd [كاتژمێر] LT',\n lastDay : '[دوێنێ كاتژمێر] LT',\n lastWeek : 'dddd [كاتژمێر] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'له‌ %s',\n past : '%s',\n s : 'چه‌ند چركه‌یه‌ك',\n ss : 'چركه‌ %d',\n m : 'یه‌ك خوله‌ك',\n mm : '%d خوله‌ك',\n h : 'یه‌ك كاتژمێر',\n hh : '%d كاتژمێر',\n d : 'یه‌ك ڕۆژ',\n dd : '%d ڕۆژ',\n M : 'یه‌ك مانگ',\n MM : '%d مانگ',\n y : 'یه‌ك ساڵ',\n yy : '%d ساڵ'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү'\n };\n\n var ky = moment.defineLocale('ky', {\n months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n monthsShort : 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n weekdaysShort : 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin : 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Бүгүн саат] LT',\n nextDay : '[Эртең саат] LT',\n nextWeek : 'dddd [саат] LT',\n lastDay : '[Кечээ саат] LT',\n lastWeek : '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ичинде',\n past : '%s мурун',\n s : 'бирнече секунд',\n ss : '%d секунд',\n m : 'бир мүнөт',\n mm : '%d мүнөт',\n h : 'бир саат',\n hh : '%d саат',\n d : 'бир күн',\n dd : '%d күн',\n M : 'бир ай',\n MM : '%d ай',\n y : 'бир жыл',\n yy : '%d жыл'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal : function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 'm': ['eng Minutt', 'enger Minutt'],\n 'h': ['eng Stonn', 'enger Stonn'],\n 'd': ['een Dag', 'engem Dag'],\n 'M': ['ee Mount', 'engem Mount'],\n 'y': ['ee Joer', 'engem Joer']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10, firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact : true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n }\n },\n relativeTime : {\n future : processFutureTime,\n past : processPastTime,\n s : 'e puer Sekonnen',\n ss : '%d Sekonnen',\n m : processRelativeTime,\n mm : '%d Minutten',\n h : processRelativeTime,\n hh : '%d Stonnen',\n d : processRelativeTime,\n dd : '%d Deeg',\n M : processRelativeTime,\n MM : '%d Méint',\n y : processRelativeTime,\n yy : '%d Joer'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var lo = moment.defineLocale('lo', {\n months : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort : 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n weekdays : 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort : 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin : 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'ວັນdddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar : {\n sameDay : '[ມື້ນີ້ເວລາ] LT',\n nextDay : '[ມື້ອື່ນເວລາ] LT',\n nextWeek : '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay : '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek : '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ອີກ %s',\n past : '%sຜ່ານມາ',\n s : 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss : '%d ວິນາທີ' ,\n m : '1 ນາທີ',\n mm : '%d ນາທີ',\n h : '1 ຊົ່ວໂມງ',\n hh : '%d ຊົ່ວໂມງ',\n d : '1 ມື້',\n dd : '%d ມື້',\n M : '1 ເດືອນ',\n MM : '%d ເດືອນ',\n y : '1 ປີ',\n yy : '%d ປີ'\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal : function (number) {\n return 'ທີ່' + number;\n }\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss' : 'sekundė_sekundžių_sekundes',\n 'm' : 'minutė_minutės_minutę',\n 'mm': 'minutės_minučių_minutes',\n 'h' : 'valanda_valandos_valandą',\n 'hh': 'valandos_valandų_valandas',\n 'd' : 'diena_dienos_dieną',\n 'dd': 'dienos_dienų_dienas',\n 'M' : 'mėnuo_mėnesio_mėnesį',\n 'MM': 'mėnesiai_mėnesių_mėnesius',\n 'y' : 'metai_metų_metus',\n 'yy': 'metai_metų_metus'\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Šiandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[Praėjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieš %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal : function (number) {\n return number + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var units = {\n 'ss': 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n 'h': 'stundas_stundām_stunda_stundas'.split('_'),\n 'hh': 'stundas_stundām_stunda_stundas'.split('_'),\n 'd': 'dienas_dienām_diena_dienas'.split('_'),\n 'dd': 'dienas_dienām_diena_dienas'.split('_'),\n 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n 'y': 'gada_gadiem_gads_gadi'.split('_'),\n 'yy': 'gada_gadiem_gads_gadi'.split('_')\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY.',\n LL : 'YYYY. [gada] D. MMMM',\n LLL : 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n },\n calendar : {\n sameDay : '[Šodien pulksten] LT',\n nextDay : '[Rīt pulksten] LT',\n nextWeek : 'dddd [pulksten] LT',\n lastDay : '[Vakar pulksten] LT',\n lastWeek : '[Pagājušā] dddd [pulksten] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'pēc %s',\n past : 'pirms %s',\n s : relativeSeconds,\n ss : relativeTimeWithPlural,\n m : relativeTimeWithSingular,\n mm : relativeTimeWithPlural,\n h : relativeTimeWithSingular,\n hh : relativeTimeWithPlural,\n d : relativeTimeWithSingular,\n dd : relativeTimeWithPlural,\n M : relativeTimeWithSingular,\n MM : relativeTimeWithPlural,\n y : relativeTimeWithSingular,\n yy : relativeTimeWithPlural\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact : true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'prije %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mjesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mk = moment.defineLocale('mk', {\n months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'D.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[Денес во] LT',\n nextDay : '[Утре во] LT',\n nextWeek : '[Во] dddd [во] LT',\n lastDay : '[Вчера во] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'после %s',\n past : 'пред %s',\n s : 'неколку секунди',\n ss : '%d секунди',\n m : 'минута',\n mm : '%d минути',\n h : 'час',\n hh : '%d часа',\n d : 'ден',\n dd : '%d дена',\n M : 'месец',\n MM : '%d месеци',\n y : 'година',\n yy : '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal : function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ml = moment.defineLocale('ml', {\n months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm -നു',\n LTS : 'A h:mm:ss -നു',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm -നു',\n LLLL : 'dddd, D MMMM YYYY, A h:mm -നു'\n },\n calendar : {\n sameDay : '[ഇന്ന്] LT',\n nextDay : '[നാളെ] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[ഇന്നലെ] LT',\n lastWeek : '[കഴിഞ്ഞ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s കഴിഞ്ഞ്',\n past : '%s മുൻപ്',\n s : 'അൽപ നിമിഷങ്ങൾ',\n ss : '%d സെക്കൻഡ്',\n m : 'ഒരു മിനിറ്റ്',\n mm : '%d മിനിറ്റ്',\n h : 'ഒരു മണിക്കൂർ',\n hh : '%d മണിക്കൂർ',\n d : 'ഒരു ദിവസം',\n dd : '%d ദിവസം',\n M : 'ഒരു മാസം',\n MM : '%d മാസം',\n y : 'ഒരു വർഷം',\n yy : '%d വർഷം'\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if ((meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n }\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months : 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort : '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n monthsParseExact : true,\n weekdays : 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort : 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin : 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY оны MMMMын D',\n LLL : 'YYYY оны MMMMын D HH:mm',\n LLLL : 'dddd, YYYY оны MMMMын D HH:mm'\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM : function (input) {\n return input === 'ҮХ';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar : {\n sameDay : '[Өнөөдөр] LT',\n nextDay : '[Маргааш] LT',\n nextWeek : '[Ирэх] dddd LT',\n lastDay : '[Өчигдөр] LT',\n lastWeek : '[Өнгөрсөн] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s дараа',\n past : '%s өмнө',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n }\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture)\n {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's': output = 'काही सेकंद'; break;\n case 'ss': output = '%d सेकंद'; break;\n case 'm': output = 'एक मिनिट'; break;\n case 'mm': output = '%d मिनिटे'; break;\n case 'h': output = 'एक तास'; break;\n case 'hh': output = '%d तास'; break;\n case 'd': output = 'एक दिवस'; break;\n case 'dd': output = '%d दिवस'; break;\n case 'M': output = 'एक महिना'; break;\n case 'MM': output = '%d महिने'; break;\n case 'y': output = 'एक वर्ष'; break;\n case 'yy': output = '%d वर्षे'; break;\n }\n }\n else {\n switch (string) {\n case 's': output = 'काही सेकंदां'; break;\n case 'ss': output = '%d सेकंदां'; break;\n case 'm': output = 'एका मिनिटा'; break;\n case 'mm': output = '%d मिनिटां'; break;\n case 'h': output = 'एका तासा'; break;\n case 'hh': output = '%d तासां'; break;\n case 'd': output = 'एका दिवसा'; break;\n case 'dd': output = '%d दिवसां'; break;\n case 'M': output = 'एका महिन्या'; break;\n case 'MM': output = '%d महिन्यां'; break;\n case 'y': output = 'एका वर्षा'; break;\n case 'yy': output = '%d वर्षां'; break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact : true,\n weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat : {\n LT : 'A h:mm वाजता',\n LTS : 'A h:mm:ss वाजता',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm वाजता',\n LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता'\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[उद्या] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात्री') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दुपारी') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'सायंकाळी') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात्री';\n } else if (hour < 10) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ms = moment.defineLocale('ms', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var msMy = moment.defineLocale('ms-my', {\n months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Esok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kelmarin pukul] LT',\n lastWeek : 'dddd [lepas pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lepas',\n s : 'beberapa saat',\n ss : '%d saat',\n m : 'seminit',\n mm : '%d minit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var mt = moment.defineLocale('mt', {\n months : 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort : 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays : 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n weekdaysShort : 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin : 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Illum fil-]LT',\n nextDay : '[Għada fil-]LT',\n nextWeek : 'dddd [fil-]LT',\n lastDay : '[Il-bieraħ fil-]LT',\n lastWeek : 'dddd [li għadda] [fil-]LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'f’ %s',\n past : '%s ilu',\n s : 'ftit sekondi',\n ss : '%d sekondi',\n m : 'minuta',\n mm : '%d minuti',\n h : 'siegħa',\n hh : '%d siegħat',\n d : 'ġurnata',\n dd : '%d ġranet',\n M : 'xahar',\n MM : '%d xhur',\n y : 'sena',\n yy : '%d sni'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}º/,\n ordinal: '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀'\n }, numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0'\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss : '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်'\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nb = moment.defineLocale('nb', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact : true,\n weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort : 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'noen sekunder',\n ss : '%d sekunder',\n m : 'ett minutt',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dager',\n M : 'en måned',\n MM : '%d måneder',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\n var ne = moment.defineLocale('ne', {\n months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact : true,\n weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin : 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'Aको h:mm बजे',\n LTS : 'Aको h:mm:ss बजे',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, Aको h:mm बजे',\n LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar : {\n sameDay : '[आज] LT',\n nextDay : '[भोलि] LT',\n nextWeek : '[आउँदो] dddd[,] LT',\n lastDay : '[हिजो] LT',\n lastWeek : '[गएको] dddd[,] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sमा',\n past : '%s अगाडि',\n s : 'केही क्षण',\n ss : '%d सेकेण्ड',\n m : 'एक मिनेट',\n mm : '%d मिनेट',\n h : 'एक घण्टा',\n hh : '%d घण्टा',\n d : 'एक दिन',\n dd : '%d दिन',\n M : 'एक महिना',\n MM : '%d महिना',\n y : 'एक बर्ष',\n yy : '%d बर्ष'\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort : function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal : function (number) {\n return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var nn = moment.defineLocale('nn', {\n months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY [kl.] H:mm',\n LLLL : 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s sidan',\n s : 'nokre sekund',\n ss : '%d sekund',\n m : 'eit minutt',\n mm : '%d minutt',\n h : 'ein time',\n hh : '%d timar',\n d : 'ein dag',\n dd : '%d dagar',\n M : 'ein månad',\n MM : '%d månader',\n y : 'eit år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦'\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0'\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n monthsShort : 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n weekdays : 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n weekdaysShort : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin : 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm ਵਜੇ',\n LTS : 'A h:mm:ss ਵਜੇ',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL : 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n },\n calendar : {\n sameDay : '[ਅਜ] LT',\n nextDay : '[ਕਲ] LT',\n nextWeek : '[ਅਗਲਾ] dddd, LT',\n lastDay : '[ਕਲ] LT',\n lastWeek : '[ਪਿਛਲੇ] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s ਵਿੱਚ',\n past : '%s ਪਿਛਲੇ',\n s : 'ਕੁਝ ਸਕਿੰਟ',\n ss : '%d ਸਕਿੰਟ',\n m : 'ਇਕ ਮਿੰਟ',\n mm : '%d ਮਿੰਟ',\n h : 'ਇੱਕ ਘੰਟਾ',\n hh : '%d ਘੰਟੇ',\n d : 'ਇੱਕ ਦਿਨ',\n dd : '%d ਦਿਨ',\n M : 'ਇੱਕ ਮਹੀਨਾ',\n MM : '%d ਮਹੀਨੇ',\n y : 'ਇੱਕ ਸਾਲ',\n yy : '%d ਸਾਲ'\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n function plural(n) {\n return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months : function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort : 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin : 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : '%s temu',\n s : 'kilka sekund',\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : '1 dzień',\n dd : '%d dni',\n M : 'miesiąc',\n MM : translate,\n y : 'rok',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var pt = moment.defineLocale('pt', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ptBr = moment.defineLocale('pt-br', {\n months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin : 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D [de] MMMM [de] YYYY',\n LLL : 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar : {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return (this.day() === 0 || this.day() === 6) ?\n '[Último] dddd [às] LT' : // Saturday + Sunday\n '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'em %s',\n past : 'há %s',\n s : 'poucos segundos',\n ss : '%d segundos',\n m : 'um minuto',\n mm : '%d minutos',\n h : 'uma hora',\n hh : '%d horas',\n d : 'um dia',\n dd : '%d dias',\n M : 'um mês',\n MM : '%d meses',\n y : 'um ano',\n yy : '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal : '%dº'\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY H:mm',\n LLLL : 'dddd, D MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'peste %s',\n past : '%s în urmă',\n s : 'câteva secunde',\n ss : relativeTimeWithPlural,\n m : 'un minut',\n mm : relativeTimeWithPlural,\n h : 'o oră',\n hh : relativeTimeWithPlural,\n d : 'o zi',\n dd : relativeTimeWithPlural,\n M : 'o lună',\n MM : relativeTimeWithPlural,\n y : 'un an',\n yy : relativeTimeWithPlural\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months : {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort : {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays : {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse : monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY г.',\n LLL : 'D MMMM YYYY г., H:mm',\n LLLL : 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar : {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'через %s',\n past : '%s назад',\n s : 'несколько секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'час',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'месяц',\n MM : relativeTimeWithPlural,\n y : 'год',\n yy : relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM : function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر'\n ];\n var days = [\n 'آچر',\n 'سومر',\n 'اڱارو',\n 'اربع',\n 'خميس',\n 'جمع',\n 'ڇنڇر'\n ];\n\n var sd = moment.defineLocale('sd', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[اڄ] LT',\n nextDay : '[سڀاڻي] LT',\n nextWeek : 'dddd [اڳين هفتي تي] LT',\n lastDay : '[ڪالهه] LT',\n lastWeek : '[گزريل هفتي] dddd [تي] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s پوء',\n past : '%s اڳ',\n s : 'چند سيڪنڊ',\n ss : '%d سيڪنڊ',\n m : 'هڪ منٽ',\n mm : '%d منٽ',\n h : 'هڪ ڪلاڪ',\n hh : '%d ڪلاڪ',\n d : 'هڪ ڏينهن',\n dd : '%d ڏينهن',\n M : 'هڪ مهينو',\n MM : '%d مهينا',\n y : 'هڪ سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var se = moment.defineLocale('se', {\n months : 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n monthsShort : 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays : 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n weekdaysShort : 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin : 's_v_m_g_d_b_L'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'MMMM D. [b.] YYYY',\n LLL : 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL : 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n },\n calendar : {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s geažes',\n past : 'maŋit %s',\n s : 'moadde sekunddat',\n ss: '%d sekunddat',\n m : 'okta minuhta',\n mm : '%d minuhtat',\n h : 'okta diimmu',\n hh : '%d diimmut',\n d : 'okta beaivi',\n dd : '%d beaivvit',\n M : 'okta mánnu',\n MM : '%d mánut',\n y : 'okta jahki',\n yy : '%d jagit'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'a h:mm',\n LTS : 'a h:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY MMMM D',\n LLL : 'YYYY MMMM D, a h:mm',\n LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n },\n calendar : {\n sameDay : '[අද] LT[ට]',\n nextDay : '[හෙට] LT[ට]',\n nextWeek : 'dddd LT[ට]',\n lastDay : '[ඊයේ] LT[ට]',\n lastWeek : '[පසුගිය] dddd LT[ට]',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%sකින්',\n past : '%sකට පෙර',\n s : 'තත්පර කිහිපය',\n ss : 'තත්පර %d',\n m : 'මිනිත්තුව',\n mm : 'මිනිත්තු %d',\n h : 'පැය',\n hh : 'පැය %d',\n d : 'දිනය',\n dd : 'දින %d',\n M : 'මාසය',\n MM : 'මාස %d',\n y : 'වසර',\n yy : 'වසර %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal : function (number) {\n return number + ' වැනි';\n },\n meridiemParse : /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM : function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return (n > 1) && (n < 5);\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n break;\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months : months,\n monthsShort : monthsShort,\n weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat : {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pred %s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY H:mm',\n LLLL : 'dddd, D. MMMM YYYY H:mm'\n },\n calendar : {\n sameDay : '[danes ob] LT',\n nextDay : '[jutri ob] LT',\n\n nextWeek : function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay : '[včeraj ob] LT',\n lastWeek : function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'čez %s',\n past : 'pred %s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sq = moment.defineLocale('sq', {\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem : function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : '%s më parë',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minutë',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay : '[juče u] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'za %s',\n past : 'pre %s',\n s : 'nekoliko sekundi',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'dan',\n dd : translator.translate,\n M : 'mesec',\n MM : translator.translate,\n y : 'godinu',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var translator = {\n words: { //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact : true,\n longDateFormat: {\n LT: 'H:mm',\n LTS : 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay : '[јуче у] LT',\n lastWeek : function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT'\n ];\n return lastWeekDays[this.day()];\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : 'пре %s',\n s : 'неколико секунди',\n ss : translator.translate,\n m : translator.translate,\n mm : translator.translate,\n h : translator.translate,\n hh : translator.translate,\n d : 'дан',\n dd : translator.translate,\n M : 'месец',\n MM : translator.translate,\n y : 'годину',\n yy : translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ss = moment.defineLocale('ss', {\n months : \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort : 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays : 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n weekdaysShort : 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin : 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Namuhla nga] LT',\n nextDay : '[Kusasa nga] LT',\n nextWeek : 'dddd [nga] LT',\n lastDay : '[Itolo nga] LT',\n lastWeek : 'dddd [leliphelile] [nga] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'nga %s',\n past : 'wenteka nga %s',\n s : 'emizuzwana lomcane',\n ss : '%d mzuzwana',\n m : 'umzuzu',\n mm : '%d emizuzu',\n h : 'lihora',\n hh : '%d emahora',\n d : 'lilanga',\n dd : '%d emalanga',\n M : 'inyanga',\n MM : '%d tinyanga',\n y : 'umnyaka',\n yy : '%d iminyaka'\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem : function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : '%d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sv = moment.defineLocale('sv', {\n months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [kl.] HH:mm',\n LLLL : 'dddd D MMMM YYYY [kl.] HH:mm',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : 'för %s sedan',\n s : 'några sekunder',\n ss : '%d sekunder',\n m : 'en minut',\n mm : '%d minuter',\n h : 'en timme',\n hh : '%d timmar',\n d : 'en dag',\n dd : '%d dagar',\n M : 'en månad',\n MM : '%d månader',\n y : 'ett år',\n yy : '%d år'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var sw = moment.defineLocale('sw', {\n months : 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n weekdaysShort : 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin : 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[leo saa] LT',\n nextDay : '[kesho saa] LT',\n nextWeek : '[wiki ijayo] dddd [saat] LT',\n lastDay : '[jana] LT',\n lastWeek : '[wiki iliyopita] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s baadaye',\n past : 'tokea %s',\n s : 'hivi punde',\n ss : 'sekunde %d',\n m : 'dakika moja',\n mm : 'dakika %d',\n h : 'saa limoja',\n hh : 'masaa %d',\n d : 'siku moja',\n dd : 'masiku %d',\n M : 'mwezi mmoja',\n MM : 'miezi %d',\n y : 'mwaka mmoja',\n yy : 'miaka %d'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦'\n }, numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n\n var ta = moment.defineLocale('ta', {\n months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, HH:mm',\n LLLL : 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar : {\n sameDay : '[இன்று] LT',\n nextDay : '[நாளை] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[நேற்று] LT',\n lastWeek : '[கடந்த வாரம்] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s இல்',\n past : '%s முன்',\n s : 'ஒரு சில விநாடிகள்',\n ss : '%d விநாடிகள்',\n m : 'ஒரு நிமிடம்',\n mm : '%d நிமிடங்கள்',\n h : 'ஒரு மணி நேரம்',\n hh : '%d மணி நேரம்',\n d : 'ஒரு நாள்',\n dd : '%d நாட்கள்',\n M : 'ஒரு மாதம்',\n MM : '%d மாதங்கள்',\n y : 'ஒரு வருடம்',\n yy : '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal : function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem : function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var te = moment.defineLocale('te', {\n months : 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort : 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n monthsParseExact : true,\n weekdays : 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n weekdaysShort : 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin : 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY, A h:mm',\n LLLL : 'dddd, D MMMM YYYY, A h:mm'\n },\n calendar : {\n sameDay : '[నేడు] LT',\n nextDay : '[రేపు] LT',\n nextWeek : 'dddd, LT',\n lastDay : '[నిన్న] LT',\n lastWeek : '[గత] dddd, LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s లో',\n past : '%s క్రితం',\n s : 'కొన్ని క్షణాలు',\n ss : '%d సెకన్లు',\n m : 'ఒక నిమిషం',\n mm : '%d నిమిషాలు',\n h : 'ఒక గంట',\n hh : '%d గంటలు',\n d : 'ఒక రోజు',\n dd : '%d రోజులు',\n M : 'ఒక నెల',\n MM : '%d నెలలు',\n y : 'ఒక సంవత్సరం',\n yy : '%d సంవత్సరాలు'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}వ/,\n ordinal : '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week : {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n }\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tet = moment.defineLocale('tet', {\n months : 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays : 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort : 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin : 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'iha %s',\n past : '%s liuba',\n s : 'minutu balun',\n ss : 'minutu %d',\n m : 'minutu ida',\n mm : 'minutu %d',\n h : 'oras ida',\n hh : 'oras %d',\n d : 'loron ida',\n dd : 'loron %d',\n M : 'fulan ida',\n MM : 'fulan %d',\n y : 'tinan ida',\n yy : 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n\n var tg = moment.defineLocale('tg', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort : 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin : 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Имрӯз соати] LT',\n nextDay : '[Пагоҳ соати] LT',\n lastDay : '[Дирӯз соати] LT',\n nextWeek : 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek : 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'баъди %s',\n past : '%s пеш',\n s : 'якчанд сония',\n m : 'як дақиқа',\n mm : '%d дақиқа',\n h : 'як соат',\n hh : '%d соат',\n d : 'як рӯз',\n dd : '%d рӯз',\n M : 'як моҳ',\n MM : '%d моҳ',\n y : 'як сол',\n yy : '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1th is the first week of the year.\n }\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var th = moment.defineLocale('th', {\n months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort : 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY เวลา H:mm',\n LLLL : 'วันddddที่ D MMMM YYYY เวลา H:mm'\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar : {\n sameDay : '[วันนี้ เวลา] LT',\n nextDay : '[พรุ่งนี้ เวลา] LT',\n nextWeek : 'dddd[หน้า เวลา] LT',\n lastDay : '[เมื่อวานนี้ เวลา] LT',\n lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'อีก %s',\n past : '%sที่แล้ว',\n s : 'ไม่กี่วินาที',\n ss : '%d วินาที',\n m : '1 นาที',\n mm : '%d นาที',\n h : '1 ชั่วโมง',\n hh : '%d ชั่วโมง',\n d : '1 วัน',\n dd : '%d วัน',\n M : '1 เดือน',\n MM : '%d เดือน',\n y : '1 ปี',\n yy : '%d ปี'\n }\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tlPh = moment.defineLocale('tl-ph', {\n months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'MM/D/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY HH:mm',\n LLLL : 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar : {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'sa loob ng %s',\n past : '%s ang nakalipas',\n s : 'ilang segundo',\n ss : '%d segundo',\n m : 'isang minuto',\n mm : '%d minuto',\n h : 'isang oras',\n hh : '%d oras',\n d : 'isang araw',\n dd : '%d araw',\n M : 'isang buwan',\n MM : '%d buwan',\n y : 'isang taon',\n yy : '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'leS' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'waQ' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'nem' :\n time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = (output.indexOf('jaj') !== -1) ?\n time.slice(0, -3) + 'Hu’' :\n (output.indexOf('jar') !== -1) ?\n time.slice(0, -3) + 'wen' :\n (output.indexOf('DIS') !== -1) ?\n time.slice(0, -3) + 'ben' :\n time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += ((word !== '') ? ' ' : '') + numbersNouns[one];\n }\n return (word === '') ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months : 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort : 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact : true,\n weekdays : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin : 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime : {\n future : translateFuture,\n past : translatePast,\n s : 'puS lup',\n ss : translate,\n m : 'wa’ tup',\n mm : translate,\n h : 'wa’ rep',\n hh : translate,\n d : 'wa’ jaj',\n dd : translate,\n M : 'wa’ jar',\n MM : translate,\n y : 'wa’ DIS',\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return tlh;\n\n})));\n","\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n var suffixes = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n };\n\n var tr = moment.defineLocale('tr', {\n months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[bugün saat] LT',\n nextDay : '[yarın saat] LT',\n nextWeek : '[gelecek] dddd [saat] LT',\n lastDay : '[dün] LT',\n lastWeek : '[geçen] dddd [saat] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s sonra',\n past : '%s önce',\n s : 'birkaç saniye',\n ss : '%d saniye',\n m : 'bir dakika',\n mm : '%d dakika',\n h : 'bir saat',\n hh : '%d saat',\n d : 'bir gün',\n dd : '%d gün',\n M : 'bir ay',\n MM : '%d ay',\n y : 'bir yıl',\n yy : '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) { // special case for zero\n return number + '\\'ıncı';\n }\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD.MM.YYYY',\n LL : 'D. MMMM [dallas] YYYY',\n LLL : 'D. MMMM [dallas] YYYY HH.mm',\n LLLL : 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM : function (input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'd\\'o' : 'D\\'O';\n } else {\n return isLower ? 'd\\'a' : 'D\\'A';\n }\n },\n calendar : {\n sameDay : '[oxhi à] LT',\n nextDay : '[demà à] LT',\n nextWeek : 'dddd [à] LT',\n lastDay : '[ieiri à] LT',\n lastWeek : '[sür el] dddd [lasteu à] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'osprei %s',\n past : 'ja%s',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : processRelativeTime,\n M : processRelativeTime,\n MM : processRelativeTime,\n y : processRelativeTime,\n yy : processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['viensas secunds', '\\'iensas secunds'],\n 'ss': [number + ' secunds', '' + number + ' secunds'],\n 'm': ['\\'n míut', '\\'iens míut'],\n 'mm': [number + ' míuts', '' + number + ' míuts'],\n 'h': ['\\'n þora', '\\'iensa þora'],\n 'hh': [number + ' þoras', '' + number + ' þoras'],\n 'd': ['\\'n ziua', '\\'iensa ziua'],\n 'dd': [number + ' ziuas', '' + number + ' ziuas'],\n 'M': ['\\'n mes', '\\'iens mes'],\n 'MM': [number + ' mesen', '' + number + ' mesen'],\n 'y': ['\\'n ar', '\\'iens ar'],\n 'yy': [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1]);\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzm = moment.defineLocale('tzm', {\n months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS: 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past : 'ⵢⴰⵏ %s',\n s : 'ⵉⵎⵉⴽ',\n ss : '%d ⵉⵎⵉⴽ',\n m : 'ⵎⵉⵏⵓⴺ',\n mm : '%d ⵎⵉⵏⵓⴺ',\n h : 'ⵙⴰⵄⴰ',\n hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d : 'ⴰⵙⵙ',\n dd : '%d oⵙⵙⴰⵏ',\n M : 'ⴰⵢoⵓⵔ',\n MM : '%d ⵉⵢⵢⵉⵔⵏ',\n y : 'ⴰⵙⴳⴰⵙ',\n yy : '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'dadkh s yan %s',\n past : 'yan %s',\n s : 'imik',\n ss : '%d imik',\n m : 'minuḍ',\n mm : '%d minuḍ',\n h : 'saɛa',\n hh : '%d tassaɛin',\n d : 'ass',\n dd : '%d ossan',\n M : 'ayowr',\n MM : '%d iyyirn',\n y : 'asgas',\n yy : '%d isgasn'\n },\n week : {\n dow : 6, // Saturday is the first day of the week.\n doy : 12 // The week that contains Jan 12th is the first week of the year.\n }\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js language configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل'\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n 'mm': withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n 'hh': withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n 'dd': 'день_дні_днів',\n 'MM': 'місяць_місяці_місяців',\n 'yy': 'рік_роки_років'\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months : {\n 'format': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays : weekdaysCaseReplace,\n weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD.MM.YYYY',\n LL : 'D MMMM YYYY р.',\n LLL : 'D MMMM YYYY р., HH:mm',\n LLLL : 'dddd, D MMMM YYYY р., HH:mm'\n },\n calendar : {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L'\n },\n relativeTime : {\n future : 'за %s',\n past : '%s тому',\n s : 'декілька секунд',\n ss : relativeTimeWithPlural,\n m : relativeTimeWithPlural,\n mm : relativeTimeWithPlural,\n h : 'годину',\n hh : relativeTimeWithPlural,\n d : 'день',\n dd : relativeTimeWithPlural,\n M : 'місяць',\n MM : relativeTimeWithPlural,\n y : 'рік',\n yy : relativeTimeWithPlural\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر'\n ];\n var days = [\n 'اتوار',\n 'پیر',\n 'منگل',\n 'بدھ',\n 'جمعرات',\n 'جمعہ',\n 'ہفتہ'\n ];\n\n var ur = moment.defineLocale('ur', {\n months : months,\n monthsShort : months,\n weekdays : days,\n weekdaysShort : days,\n weekdaysMin : days,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM : function (input) {\n return 'شام' === input;\n },\n meridiem : function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar : {\n sameDay : '[آج بوقت] LT',\n nextDay : '[کل بوقت] LT',\n nextWeek : 'dddd [بوقت] LT',\n lastDay : '[گذشتہ روز بوقت] LT',\n lastWeek : '[گذشتہ] dddd [بوقت] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s بعد',\n past : '%s قبل',\n s : 'چند سیکنڈ',\n ss : '%d سیکنڈ',\n m : 'ایک منٹ',\n mm : '%d منٹ',\n h : 'ایک گھنٹہ',\n hh : '%d گھنٹے',\n d : 'ایک دن',\n dd : '%d دن',\n M : 'ایک ماہ',\n MM : '%d ماہ',\n y : 'ایک سال',\n yy : '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uz = moment.defineLocale('uz', {\n months : 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Бугун соат] LT [да]',\n nextDay : '[Эртага] LT [да]',\n nextWeek : 'dddd [куни соат] LT [да]',\n lastDay : '[Кеча соат] LT [да]',\n lastWeek : '[Утган] dddd [куни соат] LT [да]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Якин %s ичида',\n past : 'Бир неча %s олдин',\n s : 'фурсат',\n ss : '%d фурсат',\n m : 'бир дакика',\n mm : '%d дакика',\n h : 'бир соат',\n hh : '%d соат',\n d : 'бир кун',\n dd : '%d кун',\n M : 'бир ой',\n MM : '%d ой',\n y : 'бир йил',\n yy : '%d йил'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months : 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort : 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays : 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort : 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin : 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'D MMMM YYYY, dddd HH:mm'\n },\n calendar : {\n sameDay : '[Bugun soat] LT [da]',\n nextDay : '[Ertaga] LT [da]',\n nextWeek : 'dddd [kuni soat] LT [da]',\n lastDay : '[Kecha soat] LT [da]',\n lastWeek : '[O\\'tgan] dddd [kuni soat] LT [da]',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'Yaqin %s ichida',\n past : 'Bir necha %s oldin',\n s : 'soniya',\n ss : '%d soniya',\n m : 'bir daqiqa',\n mm : '%d daqiqa',\n h : 'bir soat',\n hh : '%d soat',\n d : 'bir kun',\n dd : '%d kun',\n M : 'bir oy',\n MM : '%d oy',\n y : 'bir yil',\n yy : '%d yil'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var vi = moment.defineLocale('vi', {\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact : true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM : function (input) {\n return /^ch$/i.test(input);\n },\n meridiem : function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/M/YYYY',\n ll : 'D MMM YYYY',\n lll : 'D MMM YYYY HH:mm',\n llll : 'ddd, D MMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần rồi lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal : function (number) {\n return number;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months : 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n monthsShort : 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact : true,\n weekdays : 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n weekdaysShort : 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin : 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[T~ódá~ý át] LT',\n nextDay : '[T~ómó~rró~w át] LT',\n nextWeek : 'dddd [át] LT',\n lastDay : '[Ý~ést~érdá~ý át] LT',\n lastWeek : '[L~ást] dddd [át] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'í~ñ %s',\n past : '%s á~gó',\n s : 'á ~féw ~sécó~ñds',\n ss : '%d s~écóñ~ds',\n m : 'á ~míñ~úté',\n mm : '%d m~íñú~tés',\n h : 'á~ñ hó~úr',\n hh : '%d h~óúrs',\n d : 'á ~dáý',\n dd : '%d d~áýs',\n M : 'á ~móñ~th',\n MM : '%d m~óñt~hs',\n y : 'á ~ýéár',\n yy : '%d ý~éárs'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var yo = moment.defineLocale('yo', {\n months : 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n monthsShort : 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays : 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort : 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin : 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[Ònì ni] LT',\n nextDay : '[Ọ̀la ni] LT',\n nextWeek : 'dddd [Ọsẹ̀ tón\\'bọ] [ni] LT',\n lastDay : '[Àna ni] LT',\n lastWeek : 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'ní %s',\n past : '%s kọjá',\n s : 'ìsẹjú aayá die',\n ss :'aayá %d',\n m : 'ìsẹjú kan',\n mm : 'ìsẹjú %d',\n h : 'wákati kan',\n hh : 'wákati %d',\n d : 'ọjọ́ kan',\n dd : 'ọjọ́ %d',\n M : 'osù kan',\n MM : 'osù %d',\n y : 'ọdún kan',\n yy : 'ọdún %d'\n },\n dayOfMonthOrdinalParse : /ọjọ́\\s\\d{1,2}/,\n ordinal : 'ọjọ́ %d',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhCn = moment.defineLocale('zh-cn', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日Ah点mm分',\n LLLL : 'YYYY年M月D日ddddAh点mm分',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' ||\n meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime : {\n future : '%s内',\n past : '%s前',\n s : '几秒',\n ss : '%d 秒',\n m : '1 分钟',\n mm : '%d 分钟',\n h : '1 小时',\n hh : '%d 小时',\n d : '1 天',\n dd : '%d 天',\n M : '1 个月',\n MM : '%d 个月',\n y : '1 年',\n yy : '%d 年'\n },\n week : {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhHk = moment.defineLocale('zh-hk', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天]LT',\n nextDay : '[明天]LT',\n nextWeek : '[下]ddddLT',\n lastDay : '[昨天]LT',\n lastWeek : '[上]ddddLT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n\n var zhTw = moment.defineLocale('zh-tw', {\n months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin : '日_一_二_三_四_五_六'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYY年M月D日',\n LLL : 'YYYY年M月D日 HH:mm',\n LLLL : 'YYYY年M月D日dddd HH:mm',\n l : 'YYYY/M/D',\n ll : 'YYYY年M月D日',\n lll : 'YYYY年M月D日 HH:mm',\n llll : 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour : function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem : function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar : {\n sameDay : '[今天] LT',\n nextDay : '[明天] LT',\n nextWeek : '[下]dddd LT',\n lastDay : '[昨天] LT',\n lastWeek : '[上]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal : function (number, period) {\n switch (period) {\n case 'd' :\n case 'D' :\n case 'DDD' :\n return number + '日';\n case 'M' :\n return number + '月';\n case 'w' :\n case 'W' :\n return number + '週';\n default :\n return number;\n }\n },\n relativeTime : {\n future : '%s內',\n past : '%s前',\n s : '幾秒',\n ss : '%d 秒',\n m : '1 分鐘',\n mm : '%d 分鐘',\n h : '1 小時',\n hh : '%d 小時',\n d : '1 天',\n dd : '%d 天',\n M : '1 個月',\n MM : '%d 個月',\n y : '1 年',\n yy : '%d 年'\n }\n });\n\n return zhTw;\n\n})));\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n // Only Node.JS has a process variable that is of [[Class]] process\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach([\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength',\n 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken',\n 'socketPath'\n ], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","/*!\n * jQuery JavaScript Library v3.4.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2019-05-01T21:04Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.4.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code, options ) {\n\t\tDOMEval( code, { nonce: options && options.nonce } );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.4\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2019-04-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t(nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\") ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 && rdescend.test( selector ) ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem.namespaceURI,\n\t\tdocElem = (elem.ownerDocument || elem).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( typeof elem.contentDocument !== \"undefined\" ) {\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t// Support: IE 9-11 only\n\t// Also use offsetWidth/offsetHeight for when box sizing is unreliable\n\t// We use getClientRects() to check for hidden/disconnected.\n\t// In those cases, the computed value can be trusted to be border-box\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\t\tval === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url, options ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"