{"version":3,"sources":["webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/toastr/toastr.js","webpack:///(webpack)/buildin/amd-define.js"],"names":["module","exports","hookCallback","some","hooks","apply","arguments","setHookCallback","callback","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","arrLen","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","getParsingFlags","m","_pf","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","argLen","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","set","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","source","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","now","output","_calendar","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","localeData","removeFormattingTokens","match","replace","makeFormatFunction","array","formatMoment","expandFormat","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","_longDateFormat","formatUpper","toUpperCase","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","s","ss","mm","h","hh","d","dd","w","ww","M","MM","y","yy","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","getPrioritizedUnits","unitsObj","u","sort","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","stringGet","stringSet","prioritized","prioritizedLen","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","_a","indexOf","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","n","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","min","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","parseInt","getSetYear","getIsLeapYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","charAt","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","loadLocale","isLocaleNameSane","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","parentLocale","forEach","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","exec","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","defaults","c","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","hour","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","toArray","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","tmp","isAdding","invalid","isString","String","isMomentInput","isNumberOrStringArray","isMomentInputObject","property","objectTest","propertyTest","properties","propertyLen","arrayTest","dataTypeTest","filter","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","toISOString","keepOffset","toDate","inspect","prefix","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","parseZone","preParsePostFormat","Symbol","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","firstDayOfWeek","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","argWithSuffix","argThresholds","withSuffix","th","assign","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","factory","global","document","window","noGlobal","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","rhtmlSuffix","jQuery","selector","context","init","isArrayLike","nodeName","elem","jquery","constructor","num","pushStack","elems","merge","prevObject","each","first","eq","last","even","grep","_elem","odd","end","splice","options","copy","copyIsArray","target","deep","isPlainObject","expando","random","isReady","error","noop","Ctor","isEmptyObject","globalEval","textContent","documentElement","nodeValue","makeArray","results","inArray","isXMLDoc","namespace","namespaceURI","docElem","ownerDocument","invert","callbackExpect","guid","iterator","pop","whitespace","rtrimCSS","contains","bup","compareDocumentPosition","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","identifier","attributes","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","unloadHandler","setDocument","inDisabledFieldset","addCombinator","disabled","childNodes","els","find","seed","nid","groups","newSelector","newContext","getElementById","id","getElementsByTagName","getElementsByClassName","testContext","scope","tokenize","toSelector","querySelectorAll","qsaError","removeAttribute","select","cache","cacheLength","markFunction","assert","el","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","subWindow","webkitMatchesSelector","msMatchesSelector","defaultView","top","addEventListener","getById","getElementsByName","disconnectedMatch","cssHas","querySelector","attrId","getAttributeNode","tag","className","innerHTML","compare","sortDetached","expr","elements","matchesSelector","attr","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","outerCache","nodeIndex","start","parent","useCache","firstChild","lastChild","pseudo","setFilters","idx","not","compile","unmatched","has","elemLang","hash","location","root","focus","activeElement","err","safeActiveElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","nextSibling","header","button","_matchIndexes","lt","gt","nth","radio","checkbox","file","password","image","submit","reset","parseOnly","soFar","preFilters","cached","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","filters","unique","getText","isXML","selectors","truncate","is","siblings","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","cur","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","createOptions","firing","memory","fired","locked","list","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","handler","special","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","rejectWith","getErrorHook","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","asyncError","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","defineProperty","configurable","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_removeData","attrs","dequeue","startLength","_queueHooks","unshift","stop","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","defaultValue","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","optgroup","rhtml","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rtypenamespace","returnTrue","returnFalse","on","types","one","origFn","event","off","leverageNative","isSetup","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","isImmediatePropagationStopped","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","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","which","blur","focusMappedHandler","documentMode","simulate","attaches","dataHolder","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","rcustomProp","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","isCustomProp","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","marginDelta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","animationIterationCount","aspectRatio","borderImageSlice","columnCount","flexGrow","flexShrink","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","lineHeight","order","orphans","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","setProperty","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","expand","expanded","propHooks","run","percent","eased","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classNames","curValue","finalValue","removeClass","toggleClass","stateVal","isValidValue","hasClass","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","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","url","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","$","noConflict","g","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","f","str","weekdaysParseExact","suffixes","plural","word","forms","relativeTimeWithPlural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutation","specialMutationForYears","lastNumber","softMutation","mutationTable","substring","monthsStrictRegex","monthsShortStrictRegex","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","longMonthsParse","shortMonthsParse","translate","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","isUpper","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","translateSeconds","translateSingular","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","translateFuture","translatePast","numberNoun","numberAsNoun","hundred","ten","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","Turbolinks","supported","history","pushState","visit","r","controller","clearCache","setProgressBarDelay","copyObject","Node","ELEMENT_NODE","throttle","createEvent","initEvent","dispatchEvent","mozMatchesSelector","uuid","Location","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","createXHR","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","lengthComputable","loaded","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","destroy","requestFinished","ProgressBar","trickle","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","action","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","History","onPageLoad","onPopState","started","update","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","element","permanentElement","getNewBodyScriptElements","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","size","snapshots","read","touch","put","write","Visit","performScroll","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","hasAttribute","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","called","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_extends","getClientRect","offsets","bottom","sizes","clientWidth","clientHeight","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","_ref","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","marginRight","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","ends","findIndex","isDestroyed","instance","arrowStyles","flipped","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","toValue","index2","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","Utils","PopperUtils","webpackPolyfill","paths","webpackContext","req","webpackContextResolve","__webpack_require__","$container","listener","previousToast","toastId","toastType","toastr","clear","$toastElement","clearOptions","getOptions","getContainer","clearToast","toastsToClear","clearContainer","removeToast","title","optionsOverride","iconClass","iconClasses","info","subscribe","warning","containerId","positionClass","createContainer","force","hideMethod","hideDuration","hideEasing","publish","preventDuplicates","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","hideEta","maxHideTime","toastClass","escapeHtml","titleClass","setTitle","messageClass","setMessage","closeButton","closeClass","progressClass","rtl","newestOnTop","ariaValue","setAria","showMethod","showDuration","showEasing","onShown","timeOut","hideToast","updateProgress","closeOnHover","stickAround","delayedHideToast","onclick","tapToDismiss","cancelBubble","onCloseClick","debug","log","override","closeMethod","closeDuration","closeEasing","onHidden","endTime","extendedTimeOut","percentage"],"mappings":"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","file":"js/application~70aabc29-9eecee75da6618c1155a.chunk.js","sourcesContent":["//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\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 function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\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 function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\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 (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n function isUndefined(input) {\n return input === void 0;\n }\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\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 if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n return a;\n }\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\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 invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\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 len = t.length >>> 0,\n i;\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n return false;\n };\n }\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\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 updateInProgress = false;\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\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 if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n return to;\n }\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 function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\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 var deprecations = {};\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 hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\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((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n 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) && !hasOwnProp(childConfig, prop) && 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 function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n var keys;\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\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 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 function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\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?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n 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 function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\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 return function (mom) {\n var output = '',\n 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 format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n function expandFormat(format, locale) {\n var i = 5;\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\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 return format;\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 function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n var defaultInvalidDate = 'Invalid date';\n function invalidDate() {\n return this._invalidDate;\n }\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\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 w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\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 var aliases = {};\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\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 return normalizedInput;\n }\n var priorities = {};\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\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 function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\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 function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\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 value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\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 function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; 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 var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\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 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 regexes;\n regexes = {};\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\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 function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n var tokens = {};\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\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 tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\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 function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n function mod(n, x) {\n return (n % x + x) % x;\n }\n var indexOf;\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 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 addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\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 addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\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 defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n 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 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 function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\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 if (!mom.isValid()) {\n // No op\n return mom;\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 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\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 function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\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 ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\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 ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n 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 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 // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\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 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 // 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 function getIsLeapYear() {\n return isLeapYear(this.year());\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 return date;\n }\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n 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 return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var\n // 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 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,\n resDayOfYear;\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 return {\n year: resYear,\n dayOfYear: resDayOfYear\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,\n resYear;\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 return {\n week: resWeek,\n year: resYear\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 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 var defaultLocaleWeek = {\n dow: 0,\n // 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 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 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 addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\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 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 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 if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n return null;\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 var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\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 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 function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\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 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 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 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 ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\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 ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\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 ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n 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 = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(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 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\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 function kFormat() {\n return this.hours() || 24;\n }\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\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 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 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 addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\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 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 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 var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\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 getSetHour = makeGetSet('Hours', true);\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 var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\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,\n j,\n next,\n locale,\n split;\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 && commonPrefix(split, next) >= 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 function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\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 } else {\n data = defineLocale(key, values);\n }\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\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 return globalLocale._abbr;\n }\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\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 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 return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\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 if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\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 if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n if (!key) {\n return globalLocale;\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 return chooseLocale(key);\n }\n function listLocales() {\n return keys(locales);\n }\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\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 getParsingFlags(m).overflow = overflow;\n }\n return m;\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 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 tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n 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 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 // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; 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 = isoTimesLen; 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 function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\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 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 function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent 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 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 m = hm % 100,\n 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 parsedArray;\n if (match) {\n 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 config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\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 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,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n if (config._d) {\n return;\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 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\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 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\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 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 function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\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 curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\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 // 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,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\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 } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\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 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\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 // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n configFromArray(config);\n checkOverflow(config);\n }\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\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 scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\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 if (isValid(tempConfig)) {\n validFormatFound = true;\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 getParsingFlags(tempConfig).score = currentScore;\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n extend(config, bestMoment || tempConfig);\n }\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\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 return res;\n }\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\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 if (!isValid(config)) {\n config._d = null;\n }\n return config;\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 function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n if (isObject(input) && isObjectEmpty(input) || 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 return createFromConfig(c);\n }\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 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 prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 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 // 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 return pickBy('isBefore', args);\n }\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n }\n function isValid$1() {\n return this._isValid;\n }\n function createInvalid$1() {\n return createDuration(NaN);\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 this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds + seconds * 1e3 +\n // 1000\n minutes * 6e4 +\n // 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 + 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 + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n this._bubble();\n }\n function isDuration(obj) {\n return obj instanceof Duration;\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 // 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] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n 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 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 function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n if (matches === null) {\n return null;\n }\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : 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 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());\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 function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\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 } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n return this._isDSTShifted;\n }\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\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 // 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 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 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 if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+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) {\n // 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 duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n ret = new Duration(duration);\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n return ret;\n }\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\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 function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n 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 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). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\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 if (!mom.isValid()) {\n // No op\n return;\n }\n updateOffset = updateOffset == null ? true : updateOffset;\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 var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\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 output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n function clone() {\n return new Moment(this);\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 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 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)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\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 function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n if (!this.isValid()) {\n return NaN;\n }\n that = cloneWithOffset(input, this);\n if (!that.isValid()) {\n return NaN;\n }\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n return asFloat ? output : absFloor(output);\n }\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\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,\n adjust;\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 hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n 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 zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\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 function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\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 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 var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n function localeData() {\n return this._locale;\n }\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n 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 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 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 function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\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 this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\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 this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n function toDate() {\n return new Date(this.valueOf());\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 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 function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n function isValid$2() {\n return isValid(this);\n }\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n function invalidAt() {\n return getParsingFlags(this).overflow;\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 addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n return '';\n }\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n return '';\n }\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n return '';\n }\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n return this.year();\n }\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\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 // 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 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\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, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\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 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 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 ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\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 addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\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 // 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 var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n 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 function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n var proto = Moment.prototype;\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 if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\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.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\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 function createUnix(input) {\n return createLocal(input * 1000);\n }\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n function preParsePostFormat(string) {\n return string;\n }\n var proto$1 = Locale.prototype;\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 proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\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 proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n var i,\n 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 format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n }\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\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' : b === 1 ? 'st' : b === 2 ? 'nd' : 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 var mathAbs = Math.abs;\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\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 return this;\n }\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\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 function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n 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 || 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 seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\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 data.days = days;\n data.months = months;\n data.years = years;\n return this;\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 function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\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':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n 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':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n 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 this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n function clone$1() {\n return createDuration(this);\n }\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n function weeks() {\n return absFloor(this.days() / 7);\n }\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks 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 function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\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 function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n var abs$1 = Math.abs;\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\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 var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\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 // 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 // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n var proto$2 = Duration.prototype;\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 proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\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) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n setHookCallback(createLocal);\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 // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD',\n // <input type=\"date\" />\n TIME: 'HH:mm',\n // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss',\n // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS',\n // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW',\n // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n});","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket trac-14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n return factory(w);\n };\n } else {\n factory(global);\n }\n\n // Pass this if window is not defined yet\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\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\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n // Support: Android <=2.3 only (functionish RegExp)\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof 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 var version = \"3.7.1\",\n rhtmlSuffix = /HTML$/i,\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n }\n\n // Return just the one element from the set\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems);\n\n // Add the old object onto the stack (as a reference)\n ret.prevObject = this;\n\n // Return the newly-formed element set\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false;\n\n // Handle a deep copy situation\n if (typeof target === \"boolean\") {\n deep = target;\n\n // Skip the boolean and the target\n target = arguments[i] || {};\n i++;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n }\n\n // Extend jQuery itself if only one argument is passed\n if (i === length) {\n target = this;\n i--;\n }\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name];\n\n // Prevent Object.prototype pollution\n // Prevent never-ending loop\n if (name === \"__proto__\" || target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name];\n\n // Ensure proper type for the source value\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n copyIsArray = false;\n\n // Never move original objects, clone them\n target[name] = jQuery.extend(deep, clone, copy);\n\n // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n };\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor;\n\n // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = getProto(obj);\n\n // Objects with no prototype (e.g., `Object.create( null )`) are plain\n if (!proto) {\n return true;\n }\n\n // Objects with prototype are plain iff they were constructed by a global Object function\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n for (name in obj) {\n return false;\n }\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n if (isArrayLike(obj)) {\n length = obj.length;\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n return obj;\n },\n // Retrieve the text value of an array of DOM nodes\n text: function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += jQuery.text(node);\n }\n }\n if (nodeType === 1 || nodeType === 11) {\n return elem.textContent;\n }\n if (nodeType === 9) {\n return elem.documentElement.textContent;\n }\n if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n }\n\n // Do not include comment or processing instruction nodes\n\n return ret;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n isXMLDoc: function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n // Assume HTML when documentElement doesn't yet exist, such as inside\n // document fragments.\n return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || \"HTML\");\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert;\n\n // Go through the array, only saving the items\n // that pass the validator function\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = [];\n\n // Go through the array, translating each of the items to their new values\n if (isArrayLike(elems)) {\n length = elems.length;\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n\n // Go through every key on the object,\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret.push(value);\n }\n }\n }\n\n // Flatten any nested arrays\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n }\n\n // Populate the class2type map\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n var pop = arr.pop;\n var sort = arr.sort;\n var splice = arr.splice;\n var whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n var rtrimCSS = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n\n // Note: an element does not contain itself\n jQuery.contains = function (a, b) {\n var bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (\n // Support: IE 9 - 11+\n // IE doesn't have `contains` on SVG.\n a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n };\n\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n }\n\n // Control characters and (dependent upon position) numbers get escaped as code points\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n }\n\n // Other potentially-special ASCII characters get backslash-escaped\n return \"\\\\\" + ch;\n }\n jQuery.escapeSelector = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n var preferredDoc = document,\n pushNative = push;\n (function () {\n var i,\n Expr,\n outermostContext,\n sortInput,\n hasDuplicate,\n push = pushNative,\n // Local document vars\n document,\n documentElement,\n documentIsHTML,\n rbuggyQSA,\n matches,\n // Instance-specific data\n expando = jQuery.expando,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n return 0;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" + \"loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace +\n // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rleadingCombinator = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n ID: new RegExp(\"^#(\" + identifier + \")\"),\n CLASS: new RegExp(\"^\\\\.(\" + identifier + \")\"),\n TAG: new RegExp(\"^(\" + identifier + \"|[*])\"),\n ATTR: new RegExp(\"^\" + attributes),\n PSEUDO: new RegExp(\"^\" + pseudos),\n CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n bool: new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n needsContext: new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n if (nonHex) {\n // Strip the backslash prefix from a non-hex escape sequence\n return nonHex;\n }\n\n // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n return high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes; see `setDocument`.\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE/Edge.\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && nodeName(elem, \"fieldset\");\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n });\n\n // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n // Optimize for push.apply( _, NodeList )\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n // Support: Android <=4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: function (target, els) {\n pushNative.apply(target, slice.call(els));\n },\n call: function (target) {\n pushNative.apply(target, slice.call(arguments, 1));\n }\n };\n }\n function find(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || [];\n\n // Return early from calls with invalid selector or context\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n }\n\n // Try to shortcut find operations (as opposed to filters) in HTML documents\n if (!seed) {\n setDocument(context);\n context = context || document;\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n push.call(results, elem);\n return results;\n }\n } else {\n return results;\n }\n\n // Element context\n } else {\n // Support: IE 9 only\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) {\n push.call(results, elem);\n return results;\n }\n }\n\n // Type selector\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results;\n\n // Class selector\n } else if ((m = match[3]) && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n }\n\n // Take advantage of querySelectorAll\n if (!nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n newSelector = selector;\n newContext = context;\n\n // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when\n // strict-comparing two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (newContext != context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = jQuery.escapeSelector(nid);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n }\n\n // Prefix every selector in the list\n groups = tokenize(selector);\n i = groups.length;\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n newSelector = groups.join(\",\");\n }\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n\n // All others\n return select(selector.replace(rtrimCSS, \"$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 */\n function createCache() {\n var keys = [];\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties\n // (see https://github.com/jquery/sizzle/issues/157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n return cache[key + \" \"] = value;\n }\n return cache;\n }\n\n /**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // release memory in IE\n el = null;\n }\n }\n\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n function createInputPseudo(type) {\n return function (elem) {\n return nodeName(elem, \"input\") && elem.type === type;\n };\n }\n\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n function createButtonPseudo(type) {\n return function (elem) {\n return (nodeName(elem, \"input\") || nodeName(elem, \"button\")) && elem.type === type;\n };\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 */\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n }\n\n // Support: IE 6 - 11+\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n return elem.isDisabled === disabled ||\n // Where there is no isDisabled, check manually\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n return elem.disabled === disabled;\n\n // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n }\n\n // Remaining elements are neither :enabled nor :disabled\n return false;\n };\n }\n\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length;\n\n // Match elements found at the specified indexes\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n\n /**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n }\n\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n function setDocument(node) {\n var subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc;\n\n // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n }\n\n // Update global variables\n document = doc;\n documentElement = document.documentElement;\n documentIsHTML = !jQuery.isXMLDoc(document);\n\n // Support: iOS 7 only, IE 9 - 11+\n // Older browsers didn't support unprefixed `matches`.\n matches = documentElement.matches || documentElement.webkitMatchesSelector || documentElement.msMatchesSelector;\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors\n // (see trac-13936).\n // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n if (documentElement.msMatchesSelector &&\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 9 - 11+, Edge 12 - 18+\n subWindow.addEventListener(\"unload\", unloadHandler);\n }\n\n // Support: IE <10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n support.getById = assert(function (el) {\n documentElement.appendChild(el).id = jQuery.expando;\n return !document.getElementsByName || !document.getElementsByName(jQuery.expando).length;\n });\n\n // Support: IE 9 only\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node.\n support.disconnectedMatch = assert(function (el) {\n return matches.call(el, \"*\");\n });\n\n // Support: IE 9 - 11+, Edge 12 - 18+\n // IE/Edge don't support the :scope pseudo-class.\n support.scope = assert(function () {\n return document.querySelectorAll(\":scope\");\n });\n\n // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n // Make sure the `:has()` argument is parsed unforgivingly.\n // We include `*` in the test to detect buggy implementations that are\n // _selectively_ forgiving (specifically when the list includes at least\n // one valid selector).\n // Note that we treat complete lack of support for `:has()` as if it were\n // spec-compliant support, which is fine because use of `:has()` in such\n // environments will fail in the qSA path and fall back to jQuery traversal\n // anyway.\n support.cssHas = assert(function () {\n try {\n document.querySelector(\":has(*,:jqfake)\");\n return false;\n } catch (e) {\n return true;\n }\n });\n\n // ID filter and find\n if (support.getById) {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter.ID = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n\n // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n Expr.find.ID = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n\n // Fall back on getElementsByName\n elems = context.getElementsByName(id);\n i = 0;\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n return [];\n }\n };\n }\n\n // Tag\n Expr.find.TAG = function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag);\n\n // DocumentFragment nodes don't have gEBTN\n } else {\n return context.querySelectorAll(tag);\n }\n };\n\n // Class\n Expr.find.CLASS = function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n\n // QSA and matchesSelector support\n\n rbuggyQSA = [];\n\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input;\n documentElement.appendChild(el).innerHTML = \"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" + \"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" + \"<option selected=''></option></select>\";\n\n // Support: iOS <=7 - 8 only\n // Boolean attributes and \"value\" are not treated correctly in some XML documents\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n }\n\n // Support: iOS <=7 - 8 only\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n }\n\n // Support: iOS 8 only\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n }\n\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\");\n\n // Support: IE 9 - 11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n // In some of the document kinds, these selectors wouldn't work natively.\n // This is probably OK but for backwards compatibility we want to maintain\n // handling them through jQuery traversal in jQuery 3.x.\n documentElement.appendChild(el).disabled = true;\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n }\n\n // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n }\n });\n if (!support.cssHas) {\n // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n // Our regular `try-catch` mechanism fails to detect natively-unsupported\n // pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n // in browsers that parse the `:has()` argument as a forgiving selector list.\n // https://drafts.csswg.org/selectors/#relational now requires the argument\n // to be parsed unforgivingly, but browsers have not yet fully adjusted.\n rbuggyQSA.push(\":has\");\n }\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n\n /* Sorting\n ---------------------------------------------------------------------- */\n\n // Document order sorting\n sortOrder = function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n // Sort on method existence if only one input has compareDocumentPosition\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n if (compare) {\n return compare;\n }\n\n // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n // Otherwise we know they are disconnected\n 1;\n\n // Disconnected nodes\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a === document || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) {\n return -1;\n }\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (b === document || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) {\n return 1;\n }\n\n // Maintain original order\n return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0;\n }\n return compare & 4 ? -1 : 1;\n };\n return document;\n }\n find.matches = function (expr, elements) {\n return find(expr, null, null, elements);\n };\n find.matchesSelector = function (elem, expr) {\n setDocument(elem);\n if (documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr);\n\n // IE 9's matchesSelector returns false on disconnected nodes\n if (ret || support.disconnectedMatch ||\n // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n return find(expr, document, null, [elem]).length > 0;\n };\n find.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n return jQuery.contains(context, elem);\n };\n find.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (see trac-13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n if (val !== undefined) {\n return val;\n }\n return elem.getAttribute(name);\n };\n find.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n jQuery.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0;\n\n // Unless we *know* we can detect duplicates, assume their presence\n //\n // Support: Android <=4.0+\n // Testing for detecting duplicates is unpredictable so instead assume we can't\n // depend on duplicate detection in all browsers without a stable sort.\n hasDuplicate = !support.sortStable;\n sortInput = !support.sortStable && slice.call(results, 0);\n sort.call(results, sortOrder);\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n while (j--) {\n splice.call(results, duplicates[j], 1);\n }\n }\n\n // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n sortInput = null;\n return results;\n };\n jQuery.fn.uniqueSort = function () {\n return this.pushStack(jQuery.uniqueSort(slice.apply(this)));\n };\n Expr = jQuery.expr = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n ATTR: function (match) {\n match[1] = match[1].replace(runescape, funescape);\n\n // Move the given value to match[3] whether quoted or unquoted\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n return match.slice(0, 4);\n },\n CHILD: function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n find.error(match[0]);\n }\n\n // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n // other types prohibit arguments\n } else if (match[3]) {\n find.error(match[0]);\n }\n return match;\n },\n PSEUDO: function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n if (matchExpr.CHILD.test(match[0])) {\n return null;\n }\n\n // Accept quoted arguments as-is\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\";\n\n // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (\n // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && (\n // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n }\n\n // Return only captures needed by the pseudo filter method (type and argument)\n return match.slice(0, 3);\n }\n },\n filter: {\n TAG: function (nodeNameSelector) {\n var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return nodeName(elem, expectedNodeName);\n };\n },\n CLASS: function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n ATTR: function (name, operator, check) {\n return function (elem) {\n var result = find.attr(elem, name);\n if (result == null) {\n return operator === \"!=\";\n }\n if (!operator) {\n return true;\n }\n result += \"\";\n if (operator === \"=\") {\n return result === check;\n }\n if (operator === \"!=\") {\n return result !== check;\n }\n if (operator === \"^=\") {\n return check && result.indexOf(check) === 0;\n }\n if (operator === \"*=\") {\n return check && result.indexOf(check) > -1;\n }\n if (operator === \"$=\") {\n return check && result.slice(-check.length) === check;\n }\n if (operator === \"~=\") {\n return (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1;\n }\n if (operator === \"|=\") {\n return result === check || result.slice(0, check.length + 1) === check + \"-\";\n }\n return false;\n };\n },\n CHILD: function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ?\n // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n while (node = node[dir]) {\n if (ofType ? nodeName(node, name) : node.nodeType === 1) {\n return false;\n }\n }\n\n // Reverse direction for :only-* (if we haven't yet done so)\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n return true;\n }\n start = [forward ? parent.firstChild : parent.lastChild];\n\n // non-xml :nth-child(...) stores cache data on `parent`\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n outerCache = parent[expando] || (parent[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n while (node = ++nodeIndex && node && node[dir] || (\n // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n outerCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n outerCache = elem[expando] || (elem[expando] = {});\n cache = outerCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n }\n\n // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {});\n outerCache[type] = [dirruns, diff];\n }\n if (node === elem) {\n break;\n }\n }\n }\n }\n }\n\n // Incorporate the offset, then check against cycle size\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n PSEUDO: function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // https://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error(\"unsupported pseudo: \" + pseudo);\n\n // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as jQuery does\n if (fn[expando]) {\n return fn(argument);\n }\n\n // But maintain support for old signatures\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n while (i--) {\n idx = indexOf.call(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n not: markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrimCSS, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length;\n\n // Match elements unmatched by `matcher`\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results);\n\n // Don't keep the element\n // (see https://github.com/jquery/sizzle/issues/299)\n input[0] = null;\n return !results.pop();\n };\n }),\n has: markFunction(function (selector) {\n return function (elem) {\n return find(selector, elem).length > 0;\n };\n }),\n contains: markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || jQuery.text(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // https://www.w3.org/TR/selectors/#lang-pseudo\n lang: markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n find.error(\"unsupported lang: \" + lang);\n }\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n return false;\n };\n }),\n // Miscellaneous\n target: function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n root: function (elem) {\n return elem === documentElement;\n },\n focus: function (elem) {\n return elem === safeActiveElement() && document.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n enabled: createDisabledPseudo(false),\n disabled: createDisabledPseudo(true),\n checked: function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n return nodeName(elem, \"input\") && !!elem.checked || nodeName(elem, \"option\") && !!elem.selected;\n },\n selected: function (elem) {\n // Support: IE <=11+\n // Accessing the selectedIndex property\n // forces the browser to treat the default option as\n // selected when in an optgroup.\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n return elem.selected === true;\n },\n // Contents\n empty: function (elem) {\n // https://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n return true;\n },\n parent: function (elem) {\n return !Expr.pseudos.empty(elem);\n },\n // Element/input types\n header: function (elem) {\n return rheader.test(elem.nodeName);\n },\n input: function (elem) {\n return rinputs.test(elem.nodeName);\n },\n button: function (elem) {\n return nodeName(elem, \"input\") && elem.type === \"button\" || nodeName(elem, \"button\");\n },\n text: function (elem) {\n var attr;\n return nodeName(elem, \"input\") && elem.type === \"text\" && (\n // Support: IE <10 only\n // New HTML5 attribute values (e.g., \"search\") appear\n // with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n first: createPositionalPseudo(function () {\n return [0];\n }),\n last: createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n eq: createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n even: createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n odd: createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i;\n if (argument < 0) {\n i = argument + length;\n } else if (argument > length) {\n i = length;\n } else {\n i = argument;\n }\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n }),\n gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n return matchIndexes;\n })\n }\n };\n Expr.pseudos.nth = Expr.pseudos.eq;\n\n // Add button/input type pseudos\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n }\n\n // Easy API for creating new setFilters\n function setFilters() {}\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n function tokenize(selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n groups.push(tokens = []);\n }\n matched = false;\n\n // Combinators\n if (match = rleadingCombinator.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrimCSS, \" \")\n });\n soFar = soFar.slice(matched.length);\n }\n\n // Filters\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n if (!matched) {\n break;\n }\n }\n\n // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n if (parseOnly) {\n return soFar.length;\n }\n return soFar ? find.error(selector) :\n // Cache the tokens\n tokenCache(selector, groups).slice(0);\n }\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n return selector;\n }\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ?\n // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n return false;\n } :\n // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n outerCache,\n newCache = [dirruns, doneName];\n\n // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {});\n if (skip && nodeName(elem, skip)) {\n elem = elem[dir] || elem;\n } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n outerCache[key] = newCache;\n\n // A match means we're done; a fail means we have to keep checking\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n return false;\n };\n }\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n return true;\n } : matchers[0];\n }\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n for (; i < len; i++) {\n find(selector, contexts[i], results);\n }\n return results;\n }\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n return newUnmatched;\n }\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n matcherOut,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems;\n if (matcher) {\n // If we have a postFinder, or filtered seed, or non-seed postFilter\n // or preexisting results,\n matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ?\n // ...intermediate processing is necessary\n [] :\n // ...otherwise use results directly\n results;\n\n // Find primary matches\n matcher(matcherIn, matcherOut, context, xml);\n } else {\n matcherOut = matcherIn;\n }\n\n // Apply postFilter\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml);\n\n // Un-match failing elements by moving them back to matcherIn\n i = temp.length;\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n postFinder(null, matcherOut = [], temp, xml);\n }\n\n // Move matched elements from seed to results to keep them synchronized\n i = matcherOut.length;\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n }\n\n // Add elements to results, through postFinder if defined\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf.call(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n var ret = !leadingRelative && (xml || context != outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n // Avoid hanging onto element\n // (see https://github.com/jquery/sizzle/issues/299)\n checkContext = null;\n return ret;\n }];\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n // Return special upon seeing a positional matcher\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrimCSS, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n matchers.push(matcher);\n }\n }\n return elementMatcher(matchers);\n }\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find.TAG(\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n }\n\n // Add elements passing elementMatchers directly to results\n // Support: iOS <=7 - 9 only\n // Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n // elements by id. (see trac-14142)\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n push.call(results, elem);\n break;\n }\n }\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n }\n\n // Track unmatched elements for set filters\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n }\n\n // Lengthen the array for every element, matched or not\n if (seed) {\n unmatched.push(elem);\n }\n }\n }\n\n // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n matchedCount += i;\n\n // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n if (bySet && i !== matchedCount) {\n j = 0;\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n }\n\n // Discard index placeholder values to get only actual matches\n setMatched = condense(setMatched);\n }\n\n // Add matches to results\n push.apply(results, setMatched);\n\n // Seedless set matches succeeding multiple successful matchers stipulate sorting\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n jQuery.uniqueSort(results);\n }\n }\n\n // Override manipulation of globals by nested matchers\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n return unmatched;\n };\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n function compile(selector, match /* Internal Use Only */) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n i = match.length;\n while (i--) {\n cached = matcherFromTokens(match[i]);\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n }\n\n // Cache the compiled function\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n // Save selector and tokenization\n cached.selector = selector;\n }\n return cached;\n }\n\n /**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n function select(selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || [];\n\n // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n if (!context) {\n return results;\n\n // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n selector = selector.slice(tokens.shift().value.length);\n }\n\n // Fetch a seed set for right-to-left matching\n i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n while (i--) {\n token = tokens[i];\n\n // Abort if we hit a combinator\n if (Expr.relative[type = token.type]) {\n break;\n }\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n break;\n }\n }\n }\n }\n\n // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }\n\n // One-time assignments\n\n // Support: Android <=4.0 - 4.1+\n // Sort stability\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n // Initialize against the default document\n setDocument();\n\n // Support: Android <=4.0 - 4.1+\n // Detached nodes confoundingly follow *each other*\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n });\n jQuery.find = find;\n\n // Deprecated\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.unique = jQuery.uniqueSort;\n\n // These have always been private, but they used to be documented as part of\n // Sizzle so let's maintain them for now for backwards compatibility purposes.\n find.compile = compile;\n find.select = select;\n find.setDocument = setDocument;\n find.tokenize = tokenize;\n find.escape = jQuery.escapeSelector;\n find.getText = jQuery.text;\n find.isXML = jQuery.isXMLDoc;\n find.selectors = jQuery.expr;\n find.support = jQuery.support;\n find.uniqueSort = jQuery.uniqueSort;\n\n /* eslint-enable */\n })();\n\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n matched.push(elem);\n }\n }\n return matched;\n };\n var siblings = function (n, elem) {\n var matched = [];\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n return matched;\n };\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n\n // Implement the identical functionality for filter and not\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n // Single element\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n // Arraylike of elements (jQuery, arguments, Array)\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n }\n\n // Filtered directly for both simple and complex selectors\n return jQuery.filter(qualifier, elements, not);\n }\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n ret = this.pushStack([]);\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this,\n // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n\n // Initialize a jQuery object\n\n // A central reference to the root jQuery(document)\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n // Strict HTML recognition (trac-11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem;\n\n // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n if (!selector) {\n return this;\n }\n\n // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n root = root || rootjQuery;\n\n // Handle HTML strings\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n }\n\n // Match html or make sure no context is specified for #id\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context;\n\n // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n // HANDLE: $(html, props)\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]);\n\n // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n return this;\n\n // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n return this;\n }\n\n // HANDLE: $(expr, $(...))\n } else if (!context || context.jquery) {\n return (context || root).find(selector);\n\n // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n }\n\n // HANDLE: $(DOMElement)\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this;\n\n // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) :\n // Execute immediately if ready is not present\n selector(jQuery);\n }\n return jQuery.makeArray(selector, this);\n };\n\n // Give the init function the jQuery prototype for later instantiation\n init.prototype = jQuery.fn;\n\n // Initialize central reference\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n // Positional selectors never match, since there's no _selection_ context\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n // Don't pass non-elements to jQuery#find\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n }\n\n // Index in selector\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n }\n\n // Locate the position of the desired element\n return indexOf.call(this,\n // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n return cur;\n }\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null &&\n // Support: IE 11+\n // <object> elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n }\n\n // Reverse order for parents* and prev-derivatives\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\n\n // Convert String-formatted options into Object-formatted ones\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return 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 */\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n var\n // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once;\n\n // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n fired = firing = true;\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n }\n\n // Forget the data if we're done with it\n if (!options.memory) {\n memory = false;\n }\n firing = false;\n\n // Clean up if we're done firing for good\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = [];\n\n // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n if (memory && !firing) {\n fire();\n }\n }\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1);\n\n // Handle firing indexes\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n if (!memory && !firing) {\n list = memory = \"\";\n }\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n if (!firing) {\n fire();\n }\n }\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n return self;\n };\n function Identity(v) {\n return v;\n }\n function Thrower(ex) {\n throw ex;\n }\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject);\n\n // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject);\n\n // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n }\n\n // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [\n // action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then;\n\n // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n if (depth < maxDepth) {\n return;\n }\n returned = handler.apply(that, args);\n\n // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n }\n\n // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n then = returned && (\n // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n // Handle a returned thenable\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n }\n\n // Handle all other returned values\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n }\n\n // Process the value(s)\n // Default process is resolve\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.error);\n }\n\n // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n deferred.rejectWith(that, args);\n }\n }\n };\n\n // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the error, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getErrorHook) {\n process.error = jQuery.Deferred.getErrorHook();\n\n // The deprecated alias of the above. While the name suggests\n // returning the stack, not an error instance, jQuery just passes\n // it directly to `console.warn` so both will work; an instance\n // just better cooperates with source maps.\n } else if (jQuery.Deferred.getStackHook) {\n process.error = jQuery.Deferred.getStackHook();\n }\n window.setTimeout(process);\n }\n };\n }\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n // fulfilled_handlers.add( ... )\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n // rejected_handlers.add( ... )\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n\n // Add list-specific methods\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5];\n\n // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n promise[tuple[1]] = list.add;\n\n // Handle state\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n },\n // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable,\n // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable,\n // progress_callbacks.lock\n tuples[0][2].lock,\n // progress_handlers.lock\n tuples[0][3].lock);\n }\n\n // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n list.add(tuple[3].fire);\n\n // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n };\n\n // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n\n // Make the deferred a promise\n promise.promise(deferred);\n\n // Call given func if any\n if (func) {\n func.call(deferred, deferred);\n }\n\n // All done!\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var\n // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n };\n\n // Single- and empty arguments are adopted like Promise.resolve\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n // Use .then() to unwrap secondary thenables (cf. gh-3000)\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n }\n\n // Multiple arguments are aggregated like Promise.all array elements\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n return primary.promise();\n }\n });\n\n // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n // captured before the async barrier to get the original error cause\n // which may otherwise be hidden.\n jQuery.Deferred.exceptionHook = function (error, asyncError) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, asyncError);\n }\n };\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n };\n\n // The deferred used on DOM ready\n var readyList = jQuery.Deferred();\n jQuery.fn.ready = function (fn) {\n readyList.then(fn)\n\n // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See trac-6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n }\n\n // Remember that the DOM is ready\n jQuery.isReady = true;\n\n // If a normal DOM Ready event fired, decrement, and wait if need be\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n }\n\n // If there are functions bound, to execute\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then;\n\n // The ready event handler and self cleanup method\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.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\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed);\n\n // A fallback to window.onload, that will always work\n window.addEventListener(\"load\", completed);\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\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null;\n\n // Sets many values\n if (toType(key) === \"object\") {\n chainable = true;\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n }\n\n // Sets one value\n } else if (value !== undefined) {\n chainable = true;\n if (!isFunction(value)) {\n raw = true;\n }\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null;\n\n // ...except when executing function values\n } else {\n bulk = fn;\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n if (chainable) {\n return elems;\n }\n\n // Gets\n if (bulk) {\n return fn.call(elems);\n }\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n // Matches dashed string for camelizing\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g;\n\n // Used by camelCase as callback to replace()\n function fcamelCase(_all, letter) {\n return 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 (trac-9572)\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando];\n\n // If not, create one\n if (!value) {\n value = {};\n\n // We can accept data for non-element nodes in modern browsers,\n // but we should not, see trac-8335.\n // Always return an empty object.\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value;\n\n // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner);\n\n // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value;\n\n // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) :\n // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n }\n\n // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n this.set(owner, key, value);\n\n // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n if (cache === undefined) {\n return;\n }\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key);\n\n // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n i = key.length;\n while (i--) {\n delete cache[key[i]];\n }\n }\n\n // Remove the expando if there's no more data\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data();\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\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n if (data === \"false\") {\n return false;\n }\n if (data === \"null\") {\n return null;\n }\n\n // Only convert to a number if it doesn't change the string\n if (data === +data + \"\") {\n return +data;\n }\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n return data;\n }\n function dataAttr(elem, key, data) {\n var name;\n\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {}\n\n // Make sure we set the data so it isn't changed later\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n return data;\n }\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes;\n\n // Gets all values\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (trac-14894)\n if (attrs[i]) {\n name = attrs[i].name;\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n return data;\n }\n\n // Sets multiple values\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n return access(this, function (value) {\n var data;\n\n // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n data = dataAttr(elem, key);\n if (data !== undefined) {\n return data;\n }\n\n // We tried really hard, but the data doesn't exist.\n return;\n }\n\n // Set the data...\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type);\n\n // Speed up dequeue by getting out quickly if this is just a lookup\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n };\n\n // If the fx queue is dequeued, always remove the progress sentinel\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n }\n\n // Clear up the last queue stop function\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data);\n\n // Ensure a hooks for this queue\n jQuery._queueHooks(this, type);\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n type = type || \"fx\";\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n };\n\n // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n\n // Inline style trumps all\n return elem.style.display === \"none\" || elem.style.display === \"\" &&\n // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2;\n\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3];\n\n // Iteratively approximate from a nonzero starting point\n initialInUnit = +initial || 1;\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n initialInUnit = initialInUnit / scale;\n }\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit);\n\n // Make sure we update the tween properties later on\n valueParts = valueParts || [];\n }\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0;\n\n // Apply relative offset (+=/-=) if specified\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n return adjusted;\n }\n var defaultDisplayMap = {};\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n if (display) {\n return display;\n }\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n if (display === \"none\") {\n display = \"block\";\n }\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length;\n\n // Determine new display value for elements that need to change\n for (; index < length; index++) {\n elem = elements[index];\n if (!elem.style) {\n continue;\n }\n display = elem.style.display;\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\";\n\n // Remember what we're overwriting\n dataPriv.set(elem, \"display\", display);\n }\n }\n }\n\n // Set the display of the elements in a second loop to avoid constant reflow\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n return elements;\n }\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\");\n\n // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (trac-11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (trac-14901)\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input);\n\n // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n div.innerHTML = \"<textarea>x</textarea>\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n // Support: IE <=9 only\n // IE <=9 replaces <option> tags with their contents when inserted outside of\n // the select element.\n div.innerHTML = \"<option></option>\";\n support.option = !!div.lastChild;\n })();\n\n // We have to close these tags to support XHTML (trac-13200)\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting <tbody> or other required elements.\n thead: [1, \"<table>\", \"</table>\"],\n col: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\n tr: [2, \"<table><tbody>\", \"</tbody></table>\"],\n td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n // Support: IE <=9 only\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\n }\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n var ret;\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n return ret;\n }\n\n // Mark scripts as having already been evaluated\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n var rhtml = /<|&#?\\w+;/;\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n for (; i < l; i++) {\n elem = elems[i];\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem));\n\n // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n // Deserialize a standard representation\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n // Descend through wrappers to the right content\n j = wrap[0];\n while (j--) {\n tmp = tmp.lastChild;\n }\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, tmp.childNodes);\n\n // Remember the top-level container\n tmp = fragment.firstChild;\n\n // Ensure the created nodes are orphaned (trac-12392)\n tmp.textContent = \"\";\n }\n }\n }\n\n // Remove wrapper from fragment\n fragment.textContent = \"\";\n i = 0;\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n continue;\n }\n attached = isAttached(elem);\n\n // Append to fragment\n tmp = getAll(fragment.appendChild(elem), \"script\");\n\n // Preserve script evaluation history\n if (attached) {\n setGlobalEval(tmp);\n }\n\n // Capture executables\n if (scripts) {\n j = 0;\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n return fragment;\n }\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n function on(elem, types, selector, data, fn, one) {\n var origFn, type;\n\n // Types can be a map of types/handlers\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n return elem;\n }\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n if (one === 1) {\n origFn = fn;\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n };\n\n // Use same guid so caller can remove using origFn\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\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 */\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem);\n\n // Only attach events to objects that accept data\n if (!acceptData(elem)) {\n return;\n }\n\n // Caller can pass in an object of custom data in lieu of the handler\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n }\n\n // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n }\n\n // Make sure that the handler has a unique ID, used to find/remove it later\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n }\n\n // Init the element's event structure and main handler, if this is the first\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n }\n\n // Handle multiple events separated by a space\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // There *must* be a type, no attaching namespace-only handlers\n if (!type) {\n continue;\n }\n\n // If event changes its type, use the special event handlers for the changed type\n special = jQuery.event.special[type] || {};\n\n // If selector defined, determine special event api type, otherwise given type\n type = (selector ? special.delegateType : special.bindType) || type;\n\n // Update special based on newly reset type\n special = jQuery.event.special[type] || {};\n\n // handleObj is passed to all event handlers\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn);\n\n // Init the event handler queue if we're the first\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0;\n\n // Only use addEventListener if the special events handler returns false\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n if (special.add) {\n special.add.call(elem, handleObj);\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n }\n\n // Add to the element's handler list, delegates in front\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n }\n\n // Keep track of which events have ever been used, for event optimization\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n if (!elemData || !(events = elemData.events)) {\n return;\n }\n\n // Once for each type.namespace in types; type may be omitted\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n // Unbind all events (on this namespace, if provided) for the element\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n continue;\n }\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n // Remove matching events\n origCount = j = handlers.length;\n while (j--) {\n handleObj = handlers[j];\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n }\n\n // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n delete events[type];\n }\n }\n\n // Remove data and the expando if it's no longer used\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {};\n\n // Use the fix-ed jQuery.Event rather than the (read-only) native event\n args[0] = event;\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n event.delegateTarget = this;\n\n // Call the preDispatch hook for the mapped type, and let it bail if desired\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n }\n\n // Determine handlers\n handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n // Run delegates first; they may want to stop propagation beneath us\n i = 0;\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n // Call the postDispatch hook for the mapped type\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target;\n\n // Find delegate handlers\n if (delegateCount &&\n // Support: IE <=9\n // Black-hole SVG <use> instance trees (trac-13180)\n cur.nodeType &&\n // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (trac-13208)\n // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i];\n\n // Don't conflict with Object.prototype properties (trac-13203)\n sel = handleObj.selector + \" \";\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n }\n\n // Add the remaining (directly-bound) handlers\n cur = this;\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Claim the first handler\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", true);\n }\n\n // Return false to allow normal processing in the caller\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data;\n\n // Force setup before triggering a click\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n }\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\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.\n function leverageNative(el, type, isSetup) {\n // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n if (!isSetup) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n return;\n }\n\n // Register the controller as a special universal handler for all event namespaces\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var result,\n saved = dataPriv.get(this, type);\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n if (!saved) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved);\n\n // Trigger the native event and capture its result\n this[type]();\n result = dataPriv.get(this, type);\n dataPriv.set(this, type, false);\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result;\n }\n\n // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering\n // the native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n }\n\n // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n } else if (saved) {\n // ...and capture the result\n dataPriv.set(this, type, jQuery.event.trigger(saved[0], saved.slice(1), this));\n\n // Abort handling of the native event by all jQuery handlers while allowing\n // native handlers on the same element to run. On target, this is achieved\n // by stopping immediate propagation just on the jQuery event. However,\n // the native event is re-wrapped by a jQuery one on each level of the\n // propagation so the only way to stop it for jQuery is to stop it for\n // everyone via native `stopPropagation()`. This is not a problem for\n // focus/blur which don't bubble, but it does also stop click on checkboxes\n // and radios. We accept this limitation.\n event.stopPropagation();\n event.isImmediatePropagationStopped = returnTrue;\n }\n }\n });\n }\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n }\n\n // Event object\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type;\n\n // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse;\n\n // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (trac-504, trac-13143)\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget;\n\n // Event type\n } else {\n this.type = src;\n }\n\n // Put explicitly provided properties onto the event object\n if (props) {\n jQuery.extend(this, props);\n }\n\n // Create a timestamp if incoming event doesn't have one\n this.timeStamp = src && src.timeStamp || Date.now();\n\n // Mark it as fixed\n this[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\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n this.stopPropagation();\n }\n };\n\n // Includes all common event props including KeyEvent and MouseEvent specific props\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n function focusMappedHandler(nativeEvent) {\n if (document.documentMode) {\n // Support: IE 11+\n // Attach a single focusin/focusout handler on the document while someone wants\n // focus/blur. This is because the former are synchronous in IE while the latter\n // are async. In other browsers, all those handlers are invoked synchronously.\n\n // `handle` from private data would already wrap the event, but we need\n // to change the `type` here.\n var handle = dataPriv.get(this, \"handle\"),\n event = jQuery.event.fix(nativeEvent);\n event.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n event.isSimulated = true;\n\n // First, handle focusin/focusout\n handle(nativeEvent);\n\n // ...then, handle focus/blur\n //\n // focus/blur don't bubble while focusin/focusout do; simulate the former by only\n // invoking the handler at the lower level.\n if (event.target === event.currentTarget) {\n // The setup part calls `leverageNative`, which, in turn, calls\n // `jQuery.event.add`, so event handle will already have been set\n // by this point.\n handle(event);\n }\n } else {\n // For non-IE browsers, attach a single capturing handler on the document\n // while someone wants focusin/focusout.\n jQuery.event.simulate(delegateType, nativeEvent.target, jQuery.event.fix(nativeEvent));\n }\n }\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n var attaches;\n\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, true);\n if (document.documentMode) {\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n attaches = dataPriv.get(this, delegateType);\n if (!attaches) {\n this.addEventListener(delegateType, focusMappedHandler);\n }\n dataPriv.set(this, delegateType, (attaches || 0) + 1);\n } else {\n // Return false to allow normal processing in the caller\n return false;\n }\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type);\n\n // Return non-false to allow normal event-path propagation\n return true;\n },\n teardown: function () {\n var attaches;\n if (document.documentMode) {\n attaches = dataPriv.get(this, delegateType) - 1;\n if (!attaches) {\n this.removeEventListener(delegateType, focusMappedHandler);\n dataPriv.remove(this, delegateType);\n } else {\n dataPriv.set(this, delegateType, attaches);\n }\n } else {\n // Return false to indicate standard teardown should be applied\n return false;\n }\n },\n // Suppress native focus or blur if we're currently inside\n // a leveraged native-event stack\n _default: function (event) {\n return dataPriv.get(event.target, type);\n },\n delegateType: delegateType\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\n //\n // Support: IE 9 - 11+\n // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n // attach a single handler for both events in IE.\n jQuery.event.special[delegateType] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType);\n\n // Support: IE 9 - 11+\n // We use the same native handler for focusin & focus (and focusout & blur)\n // so we need to coordinate setup & teardown parts between those events.\n // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n if (!attaches) {\n if (document.documentMode) {\n this.addEventListener(delegateType, focusMappedHandler);\n } else {\n doc.addEventListener(type, focusMappedHandler, true);\n }\n }\n dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n dataHolder = document.documentMode ? this : doc,\n attaches = dataPriv.get(dataHolder, delegateType) - 1;\n if (!attaches) {\n if (document.documentMode) {\n this.removeEventListener(delegateType, focusMappedHandler);\n } else {\n doc.removeEventListener(type, focusMappedHandler, true);\n }\n dataPriv.remove(dataHolder, delegateType);\n } else {\n dataPriv.set(dataHolder, delegateType, attaches);\n }\n }\n };\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).\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj;\n\n // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n return this;\n }\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n if (fn === false) {\n fn = returnFalse;\n }\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var\n // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /<script|<style|<link/i,\n // checked=\"checked\" or checked\n rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n rcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n // Prefer a tbody over its parent table for containing new rows\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n return elem;\n }\n\n // Replace/restore the type attribute of script elements for safe DOM manipulation\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n return elem;\n }\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n if (dest.nodeType !== 1) {\n return;\n }\n\n // 1. Copy private data: events, handlers, etc.\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n }\n\n // 2. Copy user data\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n }\n\n // Fix IE bugs, see support tests\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase();\n\n // Fails to persist the checked state of a cloned checkbox or radio button.\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked;\n\n // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value);\n\n // We can't cloneNode fragments that contain checked, in WebKit\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n domManip(self, args, callback, ignored);\n });\n }\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n if (fragment.childNodes.length === 1) {\n fragment = first;\n }\n\n // Require either new content or an interest in ignored elements to invoke the callback\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length;\n\n // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (trac-8070).\n for (; i < l; i++) {\n node = fragment;\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true);\n\n // Keep references to cloned scripts for later restoration\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n callback.call(collection[i], node, i);\n }\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument;\n\n // Re-enable scripts\n jQuery.map(scripts, restoreScript);\n\n // Evaluate executable scripts on first document insertion\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n // Unwrap a CDATA section containing script contents. This shouldn't be\n // needed as in XML documents they're already not visible when\n // inspecting element contents and in HTML documents they have no\n // meaning but we're preserving that logic for backwards compatibility.\n // This will be removed completely in 4.0. See gh-4904.\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n return collection;\n }\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n node.parentNode.removeChild(node);\n }\n }\n return elem;\n }\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem);\n\n // Fix IE cloning issues\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew jQuery#find here for performance reasons:\n // https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n }\n\n // Copy the events from the original to the clone\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n }\n\n // Preserve script evaluation history\n destElements = getAll(clone, \"script\");\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n }\n\n // Return the cloned set\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type);\n\n // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n }\n\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataPriv.expando] = undefined;\n }\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false));\n\n // Remove any remaining nodes\n elem.textContent = \"\";\n }\n }\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n }\n\n // See if we can take a shortcut and just use innerHTML\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n try {\n for (; i < l; i++) {\n elem = this[i] || {};\n\n // Remove element nodes and prevent memory leaks\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n elem = 0;\n\n // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = [];\n\n // Make the changes, replacing each non-ignored context element with the new content\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n if (parent) {\n parent.replaceChild(elem, this);\n }\n }\n\n // Force callback invocation\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems);\n\n // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n push.apply(ret, elems.get());\n }\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n var rcustomProp = /^--/;\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = window;\n }\n return view.getComputedStyle(elem);\n };\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {};\n\n // Remember the old values, and insert the new ones\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n ret = callback.call(elem);\n\n // Revert the old values\n for (name in options) {\n elem.style[name] = old[name];\n }\n return ret;\n };\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\";\n\n // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container);\n\n // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n div = null;\n }\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\");\n\n // Finish early in limited (non-browser) environments\n if (!div.style) {\n return;\n }\n\n // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (trac-8908)\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n\n // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is `display: block`\n // gets around this issue.\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n return reliableTrDimensionsVal;\n }\n });\n })();\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n isCustomProp = rcustomProp.test(name),\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem);\n\n // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, trac-12537)\n // .css('--customProperty) (gh-3144)\n if (computed) {\n // Support: IE <=9 - 11+\n // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n // it's only available as `\"cssFloat\"`. We no longer modify properties\n // sent to `.css()` apart from camelCasing, so we need to check both.\n // Normally, this would create difference in behavior: if\n // `getPropertyValue` returns an empty string, the value returned\n // by `.css()` would be `undefined`. This is usually the case for\n // disconnected elements. However, in IE even disconnected elements\n // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n ret = computed.getPropertyValue(name) || computed[name];\n if (isCustomProp && ret) {\n // Support: Firefox 105+, Chrome <=105+\n // Spec requires trimming whitespace for custom properties (gh-4926).\n // Firefox only trims leading whitespace. Chrome just collapses\n // both leading & trailing whitespace to a single space.\n //\n // Fall back to `undefined` if empty string returned.\n // This collapses a missing definition with property defined\n // and set to an empty string but there's no standard API\n // allowing us to differentiate them without a performance penalty\n // and returning `undefined` aligns with older jQuery.\n //\n // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n // as whitespace while CSS does not, but this is not a problem\n // because CSS preprocessing replaces them with U+000A LINE FEED\n // (which *is* CSS whitespace)\n // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n }\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n }\n\n // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth;\n\n // Put in the new values to get a computed value out\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width;\n\n // Revert the changed values\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n return ret !== undefined ?\n // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n }\n\n // Hook needed; redefine it so that the support test is not executed again.\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {};\n\n // Return a vendor-prefixed property or undefined\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n while (i--) {\n name = cssPrefixes[i] + capName;\n if (name in emptyStyle) {\n return name;\n }\n }\n }\n\n // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n if (final) {\n return final;\n }\n if (name in emptyStyle) {\n return name;\n }\n return vendorProps[name] = vendorPropName(name) || name;\n }\n var\n // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ?\n // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0,\n marginDelta = 0;\n\n // Adjustment may not be necessary\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n // Count margin delta separately to only add it after scroll gutter adjustment.\n // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n if (box === \"margin\") {\n marginDelta += jQuery.css(elem, box + cssExpand[i], true, styles);\n }\n\n // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n // For \"border\" or \"margin\", add border\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n\n // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n }\n\n // For \"content\" or \"padding\", subtract border\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n }\n\n // Account for positive content-box scroll gutter when requested by providing computedVal\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n return delta + marginDelta;\n }\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n val = \"auto\";\n }\n\n // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n if ((!support.boxSizingReliable() && isBorderBox ||\n // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" ||\n // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n valueIsBorderBox = offsetProp in elem;\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n }\n\n // Normalize \"\" and auto\n val = parseFloat(val) || 0;\n\n // Adjust for the element's box model\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n animationIterationCount: true,\n aspectRatio: true,\n borderImageSlice: true,\n columnCount: true,\n flexGrow: true,\n flexShrink: true,\n fontWeight: true,\n gridArea: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnStart: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowStart: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n scale: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeMiterlimit: true,\n strokeOpacity: true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n }\n\n // Make sure that we're working with the right name\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style;\n\n // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Gets hook for the prefixed version, then unprefixed version\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // Check if we're setting a value\n if (value !== undefined) {\n type = typeof value;\n\n // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret);\n\n // Fixes bug trac-9237\n type = \"number\";\n }\n\n // Make sure that null and NaN values aren't set (trac-7116)\n if (value == null || value !== value) {\n return;\n }\n\n // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n }\n\n // background-* props affect original clone's values\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n }\n\n // If a hook was provided, use that value, otherwise just set the specified value\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n }\n\n // Otherwise just get the value from the style object\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name);\n\n // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n if (!isCustomProp) {\n name = finalPropName(origName);\n }\n\n // Try prefixed name followed by the unprefixed name\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n // If a hook was provided get the computed value from there\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n }\n\n // Otherwise, if a way to get the computed value exists, use that\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n }\n\n // Convert \"normal\" to computed value\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n }\n\n // Make numeric if forced or a qualifier was provided and val looks numeric\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n }\n\n // Convert to pixels if value adjustment is needed\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n });\n\n // These hooks are used by animate to expand properties\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n return expanded;\n }\n };\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n return map;\n }\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n this.now = (this.end - this.start) * eased + this.start;\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result;\n\n // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n }\n\n // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n result = jQuery.css(tween.elem, tween.prop, \"\");\n\n // Empty strings, null, undefined and \"auto\" are converted to 0.\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n };\n\n // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init;\n\n // Back compat <1.8 extension point\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n jQuery.fx.tick();\n }\n }\n\n // Animations created synchronously will run synchronously\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n }\n\n // Generate parameters to create a standard animation\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n };\n\n // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n includeWidth = includeWidth ? 1 : 0;\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n return attrs;\n }\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\");\n\n // Queue-skipping animations hijack the fx hooks\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n }\n\n // Detect show/hide animations\n for (prop in props) {\n value = props[prop];\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true;\n\n // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n }\n\n // Bail out if this is a no-op like .hide().hide()\n propTween = !jQuery.isEmptyObject(props);\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n }\n\n // Restrict \"overflow\" and \"display\" styles during box animations\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n // Identify a display type, preferring old show/hide data over the CSS cascade\n restoreDisplay = dataShow && dataShow.display;\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n display = jQuery.css(elem, \"display\");\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n }\n\n // Animate inline elements as inline-block\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n style.display = \"inline-block\";\n }\n }\n }\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n }\n\n // Implement show/hide animations\n propTween = false;\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n }\n\n // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n if (toggle) {\n dataShow.hidden = !hidden;\n }\n\n // Show elements before animating them\n if (hidden) {\n showHide([elem], true);\n }\n\n /* eslint-disable no-loop-func */\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n dataPriv.remove(elem, \"fxshow\");\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n }\n\n // Per-property setup\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks;\n\n // camelCase, specialEasing and expand cssHook pass\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n hooks = jQuery.cssHooks[name];\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name];\n\n // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n deferred.notifyWith(elem, [animation, percent, remaining]);\n\n // If there's more to do, yield\n if (percent < 1 && length) {\n return remaining;\n }\n\n // If this was an empty animation, synthesize a final progress notification\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n }\n\n // Resolve the animation and report its conclusion\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n if (stopped) {\n return this;\n }\n stopped = true;\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n }\n\n // Resolve when we played the last frame; otherwise, reject\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n return this;\n }\n }),\n props = animation.props;\n propFilter(props, animation.opts.specialEasing);\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n return result;\n }\n }\n jQuery.map(props, createTween, animation);\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n }\n\n // Attach callbacks from options\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n var prop,\n index = 0,\n length = props.length;\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n };\n\n // Go to the end state if fx are off\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n }\n\n // Normalize opt.queue - true/undefined/null -> \"fx\"\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n }\n\n // Queueing\n opt.old = opt.complete;\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n return opt;\n };\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n // Empty animations, or finishing resolves immediately\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n }\n\n // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0;\n\n // Enable finishing flag on private data\n data.finish = true;\n\n // Empty the queue first\n jQuery.queue(this, type, []);\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n }\n\n // Look for any active animations, and finish them\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n }\n\n // Look for any animations in the old queue and finish them\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n }\n\n // Turn off finishing flag\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n });\n\n // Generate shortcuts for custom animations\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n for (; i < timers.length; i++) {\n timer = timers[i];\n\n // Run the timer and safely remove it when done (allowing for external removal)\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n if (!timers.length) {\n jQuery.fx.stop();\n }\n fxNow = undefined;\n };\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n jQuery.fx.interval = 13;\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n inProgress = true;\n schedule();\n };\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n\n // Based off of the plugin by Clint Helfers, with permission.\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\";\n\n // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n support.checkOn = input.value !== \"\";\n\n // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n support.optSelected = opt.selected;\n\n // Support: IE <=11 only\n // An input loses its value after becoming a radio\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set attributes on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n // Fallback to prop when attributes are not supported\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n }\n\n // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n elem.setAttribute(name, value + \"\");\n return value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n ret = jQuery.find.attr(elem, name);\n\n // Non-existent attributes return null, we normalize to undefined\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n if (val) {\n elem.value = val;\n }\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n });\n\n // Hooks for boolean attributes\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType;\n\n // Don't get/set properties on text, comment and attribute nodes\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n return elem[name] = value;\n }\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // Use proper attribute retrieval (trac-12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\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\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n\n var parent = elem.parentNode;\n if (parent) {\n parent.selectedIndex;\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n\n // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n return [];\n }\n jQuery.fn.extend({\n addClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n if (cur.indexOf(\" \" + className + \" \") < 0) {\n cur += className + \" \";\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n removeClass: function (value) {\n var classNames, cur, curValue, className, i, finalValue;\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n classNames = classesToArray(value);\n if (classNames.length) {\n return this.each(function () {\n curValue = getClass(this);\n\n // This expression is here for better compressibility (see addClass)\n cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n if (cur) {\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Remove *all* instances\n while (cur.indexOf(\" \" + className + \" \") > -1) {\n cur = cur.replace(\" \" + className + \" \", \" \");\n }\n }\n\n // Only assign if different to avoid unneeded rendering.\n finalValue = stripAndCollapse(cur);\n if (curValue !== finalValue) {\n this.setAttribute(\"class\", finalValue);\n }\n }\n });\n }\n return this;\n },\n toggleClass: function (value, stateVal) {\n var classNames,\n className,\n i,\n self,\n type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n classNames = classesToArray(value);\n return this.each(function () {\n if (isValidValue) {\n // Toggle individual class names\n self = jQuery(this);\n for (i = 0; i < classNames.length; i++) {\n className = classNames[i];\n\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n }\n\n // Toggle whole class name\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n }\n\n // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n ret = elem.value;\n\n // Handle most common string cases\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n }\n\n // Handle cases where value is null/undef or number\n return ret == null ? \"\" : ret;\n }\n return;\n }\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n if (this.nodeType !== 1) {\n return;\n }\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n }\n\n // Treat null/undefined as \"\"; convert numbers to string\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n // If set returns undefined, fall back to normal setting\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val :\n // Support: IE <=10 - 11 only\n // option.text throws exceptions (trac-14686, trac-14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n }\n\n // Loop through all the selected options\n for (; i < max; i++) {\n option = options[i];\n\n // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (trac-2551)\n if ((option.selected || i === index) &&\n // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val();\n\n // We don't need an array for one selects\n if (one) {\n return value;\n }\n\n // Multi-Selects return an array\n values.push(value);\n }\n }\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n while (i--) {\n option = options[i];\n\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n\n /* eslint-enable no-cond-assign */\n }\n\n // Force browsers to behave consistently when non-matching value is set\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n return values;\n }\n }\n }\n });\n\n // Radios and checkboxes getter/setter\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n });\n\n // Return jQuery for attributes-only inclusion\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/;\n\n // Cross-browser xml parsing\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n if (!data || typeof data !== \"string\") {\n return null;\n }\n\n // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n return xml;\n };\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document;\n\n // Don't do events on text and comment nodes\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n }\n\n // focus/blur morphs to focusin/out; ensure we're not firing them right now\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n // Caller can pass in a jQuery.Event object, Object, or just an event type string\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n // Clean up the event in case it is being reused\n event.result = undefined;\n if (!event.target) {\n event.target = elem;\n }\n\n // Clone any incoming data and prepend the event, creating the handler arg list\n data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n // Allow special events to draw outside the lines\n special = jQuery.event.special[type] || {};\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n }\n\n // Determine event propagation path in advance, per W3C events spec (trac-9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n }\n\n // Only add window if we got to document (e.g., not plain obj or detached DOM)\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n }\n\n // Fire handlers on the event path\n i = 0;\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type;\n\n // jQuery handler\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n if (handle) {\n handle.apply(cur, data);\n }\n\n // Native handler\n handle = ontype && cur[ontype];\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n event.type = type;\n\n // If nobody prevented the default action, do it now\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (trac-6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n if (tmp) {\n elem[ontype] = null;\n }\n\n // Prevent re-triggering of the same event, since we already bubbled it above\n jQuery.event.triggered = type;\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n elem[type]();\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n jQuery.event.triggered = undefined;\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n function buildParams(prefix, obj, traditional, add) {\n var name;\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n }\n\n // Serialize an array of form elements or a set of\n // key/values into a query string\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n if (a == null) {\n return \"\";\n }\n\n // If an array was passed in, assume that it is an array of form elements.\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n }\n\n // Return the resulting serialization\n return s.join(\"&\");\n };\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type;\n\n // Use .is( \":disabled\" ) so that fieldset[disabled] works\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n if (val == null) {\n return null;\n }\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return 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 trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return 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 */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n }\n\n // The elements to wrap the target around\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n wrap.map(function () {\n var elem = this;\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n return elem;\n }).append(this);\n }\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // trac-1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback;\n\n // Cross domain only allowed if supported through XMLHttpRequest\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n // Apply custom fields if provided\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n }\n\n // Override mime type if needed\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n }\n\n // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n }\n\n // Set headers\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n }\n\n // Callback\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete(\n // File: protocol always yields status 0; see trac-8605, trac-14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n };\n\n // Listen to events\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n }\n\n // Create the abort callback\n callback = callback(\"abort\");\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // trac-14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"<script>\").attr(s.scriptAttrs || {}).prop({\n charset: s.scriptCharset,\n src: s.url\n }).on(\"load error\", callback = function (evt) {\n script.remove();\n callback = null;\n if (evt) {\n complete(evt.type === \"error\" ? 404 : 200, evt.type);\n }\n });\n\n // Use native DOM manipulation to avoid our domManip AJAX trickery\n document.head.appendChild(script[0]);\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n });\n var oldCallbacks = [],\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n // Default jsonp settings\n jQuery.ajaxSetup({\n jsonp: \"callback\",\n jsonpCallback: function () {\n var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce.guid++;\n this[callback] = true;\n return callback;\n }\n });\n\n // Detect, normalize options and install callbacks for jsonp requests\n jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n var callbackName,\n overwritten,\n responseContainer,\n jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data) && \"data\");\n\n // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n // Get callback name, remembering preexisting value associated with it\n callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback;\n\n // Insert callback into url or form data\n if (jsonProp) {\n s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n } else if (s.jsonp !== false) {\n s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n }\n\n // Use data converter to retrieve json after script execution\n s.converters[\"script json\"] = function () {\n if (!responseContainer) {\n jQuery.error(callbackName + \" was not called\");\n }\n return responseContainer[0];\n };\n\n // Force json dataType\n s.dataTypes[0] = \"json\";\n\n // Install callback\n overwritten = window[callbackName];\n window[callbackName] = function () {\n responseContainer = arguments;\n };\n\n // Clean-up function (fires after converters)\n jqXHR.always(function () {\n // If previous value didn't exist - remove it\n if (overwritten === undefined) {\n jQuery(window).removeProp(callbackName);\n\n // Otherwise restore preexisting value\n } else {\n window[callbackName] = overwritten;\n }\n\n // Save back as free\n if (s[callbackName]) {\n // Make sure that re-using the options doesn't screw things around\n s.jsonpCallback = originalSettings.jsonpCallback;\n\n // Save the callback name for future use\n oldCallbacks.push(callbackName);\n }\n\n // Call if it was a function and we have a response\n if (responseContainer && isFunction(overwritten)) {\n overwritten(responseContainer[0]);\n }\n responseContainer = overwritten = undefined;\n });\n\n // Delegate to script\n return \"script\";\n }\n });\n\n // Support: Safari 8 only\n // In Safari 8 documents created via document.implementation.createHTMLDocument\n // collapse sibling forms: the second one becomes a child of the first one.\n // Because of that, this security measure has to be disabled in Safari 8.\n // https://bugs.webkit.org/show_bug.cgi?id=137337\n support.createHTMLDocument = function () {\n var body = document.implementation.createHTMLDocument(\"\").body;\n body.innerHTML = \"<form></form><form></form>\";\n return body.childNodes.length === 2;\n }();\n\n // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n var base, parsed, scripts;\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\");\n\n // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && [];\n\n // Single tag\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n parsed = buildFragment([data], context, scripts);\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n return jQuery.merge([], parsed.childNodes);\n };\n\n /**\n * Load a url into a page\n */\n jQuery.fn.load = function (url, params, callback) {\n var selector,\n type,\n response,\n self = this,\n off = url.indexOf(\" \");\n if (off > -1) {\n selector = stripAndCollapse(url.slice(off));\n url = url.slice(0, off);\n }\n\n // If it's a function\n if (isFunction(params)) {\n // We assume that it's the callback\n callback = params;\n params = undefined;\n\n // Otherwise, build a param string\n } else if (params && typeof params === \"object\") {\n type = \"POST\";\n }\n\n // If we have elements to modify, make the request\n if (self.length > 0) {\n jQuery.ajax({\n url: url,\n // If \"type\" variable is undefined, then \"GET\" method will be used.\n // Make value of this field explicit since\n // user can override it through ajaxSetup method\n type: type || \"GET\",\n dataType: \"html\",\n data: params\n }).done(function (responseText) {\n // Save response for use in complete callback\n response = arguments;\n self.html(selector ?\n // If a selector was specified, locate the right elements in a dummy div\n // Exclude scripts to avoid IE 'Permission Denied' errors\n jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) :\n // Otherwise use the full result\n responseText);\n\n // If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n // but they are ignored because response was set above.\n // If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n }).always(callback && function (jqXHR, status) {\n self.each(function () {\n callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\n });\n });\n }\n return this;\n };\n jQuery.expr.pseudos.animated = function (elem) {\n return jQuery.grep(jQuery.timers, function (fn) {\n return elem === fn.elem;\n }).length;\n };\n jQuery.offset = {\n setOffset: function (elem, options, i) {\n var curPosition,\n curLeft,\n curCSSTop,\n curTop,\n curOffset,\n curCSSLeft,\n calculatePosition,\n position = jQuery.css(elem, \"position\"),\n curElem = jQuery(elem),\n props = {};\n\n // Set position first, in-case top/left are set even on static elem\n if (position === \"static\") {\n elem.style.position = \"relative\";\n }\n curOffset = curElem.offset();\n curCSSTop = jQuery.css(elem, \"top\");\n curCSSLeft = jQuery.css(elem, \"left\");\n calculatePosition = (position === \"absolute\" || position === \"fixed\") && (curCSSTop + curCSSLeft).indexOf(\"auto\") > -1;\n\n // Need to be able to calculate position if either\n // top or left is auto and position is either absolute or fixed\n if (calculatePosition) {\n curPosition = curElem.position();\n curTop = curPosition.top;\n curLeft = curPosition.left;\n } else {\n curTop = parseFloat(curCSSTop) || 0;\n curLeft = parseFloat(curCSSLeft) || 0;\n }\n if (isFunction(options)) {\n // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n options = options.call(elem, i, jQuery.extend({}, curOffset));\n }\n if (options.top != null) {\n props.top = options.top - curOffset.top + curTop;\n }\n if (options.left != null) {\n props.left = options.left - curOffset.left + curLeft;\n }\n if (\"using\" in options) {\n options.using.call(elem, props);\n } else {\n curElem.css(props);\n }\n }\n };\n jQuery.fn.extend({\n // offset() relates an element's border box to the document origin\n offset: function (options) {\n // Preserve chaining for setter\n if (arguments.length) {\n return options === undefined ? this : this.each(function (i) {\n jQuery.offset.setOffset(this, options, i);\n });\n }\n var rect,\n win,\n elem = this[0];\n if (!elem) {\n return;\n }\n\n // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n // Support: IE <=11 only\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n if (!elem.getClientRects().length) {\n return {\n top: 0,\n left: 0\n };\n }\n\n // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n rect = elem.getBoundingClientRect();\n win = elem.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset\n };\n },\n // position() relates an element's margin box to its offset parent's padding box\n // This corresponds to the behavior of CSS absolute positioning\n position: function () {\n if (!this[0]) {\n return;\n }\n var offsetParent,\n offset,\n doc,\n elem = this[0],\n parentOffset = {\n top: 0,\n left: 0\n };\n\n // position:fixed elements are offset from the viewport, which itself always has zero offset\n if (jQuery.css(elem, \"position\") === \"fixed\") {\n // Assume position:fixed implies availability of getBoundingClientRect\n offset = elem.getBoundingClientRect();\n } else {\n offset = this.offset();\n\n // Account for the *real* offset parent, which can be the document or its root element\n // when a statically positioned element is identified\n doc = elem.ownerDocument;\n offsetParent = elem.offsetParent || doc.documentElement;\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n // Incorporate borders into its offset, since they are outside its content origin\n parentOffset = jQuery(offsetParent).offset();\n parentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\n parentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\n }\n }\n\n // Subtract parent offsets and element margins\n return {\n top: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\n left: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\n };\n },\n // This method will return documentElement in the following cases:\n // 1) For the element inside the iframe without offsetParent, this method will return\n // documentElement of the parent window\n // 2) For the hidden or detached element\n // 3) For body or html element, i.e. in case of the html node - it will return itself\n //\n // but those exceptions were never presented as a real life use-cases\n // and might be considered as more preferable results.\n //\n // This logic, however, is not guaranteed and can change at any point in the future\n offsetParent: function () {\n return this.map(function () {\n var offsetParent = this.offsetParent;\n while (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || documentElement;\n });\n }\n });\n\n // Create scrollLeft and scrollTop methods\n jQuery.each({\n scrollLeft: \"pageXOffset\",\n scrollTop: \"pageYOffset\"\n }, function (method, prop) {\n var top = \"pageYOffset\" === prop;\n jQuery.fn[method] = function (val) {\n return access(this, function (elem, method, val) {\n // Coalesce documents and windows\n var win;\n if (isWindow(elem)) {\n win = elem;\n } else if (elem.nodeType === 9) {\n win = elem.defaultView;\n }\n if (val === undefined) {\n return win ? win[prop] : elem[method];\n }\n if (win) {\n win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset);\n } else {\n elem[method] = val;\n }\n }, method, val, arguments.length);\n };\n });\n\n // Support: Safari <=7 - 9.1, Chrome <=37 - 49\n // Add the top/left cssHooks using jQuery.fn.position\n // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n // getComputedStyle returns percent when specified for top/left/bottom/right;\n // rather than make the css module depend on the offset module, just check for it here\n jQuery.each([\"top\", \"left\"], function (_i, prop) {\n jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) {\n if (computed) {\n computed = curCSS(elem, prop);\n\n // If curCSS returns percentage, fallback to offset\n return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + \"px\" : computed;\n }\n });\n });\n\n // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\n jQuery.each({\n Height: \"height\",\n Width: \"width\"\n }, function (name, type) {\n jQuery.each({\n padding: \"inner\" + name,\n content: type,\n \"\": \"outer\" + name\n }, function (defaultExtra, funcName) {\n // Margin is only for outerHeight, outerWidth\n jQuery.fn[funcName] = function (margin, value) {\n var chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\n extra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\n return access(this, function (elem, type, value) {\n var doc;\n if (isWindow(elem)) {\n // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n return funcName.indexOf(\"outer\") === 0 ? elem[\"inner\" + name] : elem.document.documentElement[\"client\" + name];\n }\n\n // Get document width or height\n if (elem.nodeType === 9) {\n doc = elem.documentElement;\n\n // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n // whichever is greatest\n return Math.max(elem.body[\"scroll\" + name], doc[\"scroll\" + name], elem.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n }\n return value === undefined ?\n // Get width or height on the element, requesting but not forcing parseFloat\n jQuery.css(elem, type, extra) :\n // Set width or height on the element\n jQuery.style(elem, type, value, extra);\n }, type, chainable ? margin : undefined, chainable);\n };\n });\n });\n jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (_i, type) {\n jQuery.fn[type] = function (fn) {\n return this.on(type, fn);\n };\n });\n jQuery.fn.extend({\n bind: function (types, data, fn) {\n return this.on(types, null, data, fn);\n },\n unbind: function (types, fn) {\n return this.off(types, null, fn);\n },\n delegate: function (selector, types, data, fn) {\n return this.on(types, selector, data, fn);\n },\n undelegate: function (selector, types, fn) {\n // ( namespace ) or ( selector, types [, fn] )\n return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n },\n hover: function (fnOver, fnOut) {\n return this.on(\"mouseenter\", fnOver).on(\"mouseleave\", fnOut || fnOver);\n }\n });\n jQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup contextmenu\").split(\" \"), function (_i, name) {\n // Handle event binding\n jQuery.fn[name] = function (data, fn) {\n return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n };\n });\n\n // Support: Android <=4.0 only\n // Make sure we trim BOM and NBSP\n // Require that the \"whitespace run\" starts from a non-whitespace\n // to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\n var rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n // Bind a function to a context, optionally partially applying any\n // arguments.\n // jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n // However, it is not slated for removal any time soon\n jQuery.proxy = function (fn, context) {\n var tmp, args, proxy;\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n }\n\n // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n if (!isFunction(fn)) {\n return undefined;\n }\n\n // Simulated bind\n args = slice.call(arguments, 2);\n proxy = function () {\n return fn.apply(context || this, args.concat(slice.call(arguments)));\n };\n\n // Set the guid of unique handler to the same of original handler, so it can be removed\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n };\n jQuery.holdReady = function (hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n };\n jQuery.isArray = Array.isArray;\n jQuery.parseJSON = JSON.parse;\n jQuery.nodeName = nodeName;\n jQuery.isFunction = isFunction;\n jQuery.isWindow = isWindow;\n jQuery.camelCase = camelCase;\n jQuery.type = toType;\n jQuery.now = Date.now;\n jQuery.isNumeric = function (obj) {\n // As of jQuery 3.0, isNumeric is limited to\n // strings and numbers (primitives or objects)\n // that can be coerced to finite numbers (gh-2662)\n var type = jQuery.type(obj);\n return (type === \"number\" || type === \"string\") &&\n // parseFloat NaNs numeric-cast false positives (\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n !isNaN(obj - parseFloat(obj));\n };\n jQuery.trim = function (text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"$1\");\n };\n\n // Register as a named AMD module, since jQuery can be concatenated with other\n // files that may use define, but not via a proper concatenation script that\n // understands anonymous AMD modules. A named AMD is safest and most robust\n // way to register. Lowercase jquery is used because AMD module names are\n // derived from file names, and jQuery is normally delivered in a lowercase\n // file name. Do this after creating the global so that if an AMD module wants\n // to call noConflict to hide this version of jQuery, it will work.\n\n // Note that for maximum portability, libraries that are not jQuery should\n // declare themselves as anonymous modules, and avoid setting a global if an\n // AMD loader is present. jQuery is a special case. For more information, see\n // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\n if (typeof define === \"function\" && define.amd) {\n define(\"jquery\", [], function () {\n return jQuery;\n });\n }\n var\n // Map over jQuery in case of overwrite\n _jQuery = window.jQuery,\n // Map over the $ in case of overwrite\n _$ = window.$;\n jQuery.noConflict = function (deep) {\n if (window.$ === jQuery) {\n window.$ = _$;\n }\n if (deep && window.jQuery === jQuery) {\n window.jQuery = _jQuery;\n }\n return jQuery;\n };\n\n // Expose jQuery and $ identifiers, even in AMD\n // (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n // and CommonJS for browser emulators (trac-13566)\n if (typeof noGlobal === \"undefined\") {\n window.jQuery = window.$ = jQuery;\n }\n return jQuery;\n});","var g;\n\n// This works in non-strict mode\ng = function () {\n return this;\n}();\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (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;","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 },\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 },\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 },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var 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 },\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 },\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 },\n months = ['جانÙÙŠ', 'ÙÙŠÙري', 'مارس', 'Ø£Ùريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\n var arDz = moment.defineLocale('ar-dz', {\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 postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 },\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 },\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 },\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 },\n months = ['يناير', 'Ùبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوÙمبر', 'ديسمبر'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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: 1,\n // 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 arMa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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: 'bir neçə 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) {\n // 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,\n // 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});","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\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,\n // 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});","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 w: 'Ñедмица',\n ww: '%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,\n // 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});","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 || meridiem === 'দà§à¦ªà§à¦°' && hour < 5 || 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,\n // 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});","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var bnBd = moment.defineLocale('bn-bd', {\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 === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'à¦à§‹à¦°') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দà§à¦ªà§à¦°') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return 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 < 6) {\n return 'à¦à§‹à¦°';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সনà§à¦§à§à¦¯à¦¾';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // 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 bnBd;\n});","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\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: '[བདུན་ཕྲག་རྗེས་མ], 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 || meridiem === 'ཉིན་གུང' && hour < 5 || 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,\n // 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});","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\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 weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\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,\n // 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 meridiemParse: /a.m.|g.m./,\n // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n }\n });\n return br;\n});","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = {\n format: 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split('_'),\n standalone: 'ledna_února_bÅ™ezna_dubna_kvÄ›tna_Äervna_Äervence_srpna_zářÃ_Å™Ãjna_listopadu_prosince'.split('_')\n },\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n 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 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 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':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss':\n // 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 case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm':\n // 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 case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 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 case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd':\n // 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 case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM':\n // 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 case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy':\n // 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 }\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,\n // 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});","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed',\n // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 w: ['eine Woche', 'einer Woche'],\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 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 w: processRelativeTime,\n ww: '%d Wochen',\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,\n // 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});","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 w: ['eine Woche', 'einer Woche'],\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 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 w: processRelativeTime,\n ww: '%d Wochen',\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,\n // 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});","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 w: ['eine Woche', 'einer Woche'],\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 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 w: processRelativeTime,\n ww: '%d Wochen',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©', 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©', 'Þ‰Þ§ÞƒÞ¨Þ—Þª', 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª', 'Þ‰Þ', 'Þ–Þ«Þ‚Þ°', 'Þ–ÞªÞÞ¦Þ‡Þ¨', 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª', 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª', 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª', 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª'],\n weekdays = ['އާދިއްތަ', 'Þ€Þ¯Þ‰Þ¦', 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦', 'Þ„ÞªÞ‹Þ¦', 'Þ„ÞªÞƒÞ§Þްފަތި', 'Þ€ÞªÞ†ÞªÞƒÞª', 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª'];\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\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,\n // 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});","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\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')))) {\n // 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,\n // 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});","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // 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 enAu;\n});","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var enIn = moment.defineLocale('en-in', {\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n });\n\n return enIn;\n});","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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_mart_apr_maj_jun_jul_aÅg_sept_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: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, 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[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 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 w: 'una semana',\n ww: '%d semanas',\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,\n // 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 invalidDate: 'Fecha inválida'\n });\n return es;\n});","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 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 w: 'una semana',\n ww: '%d semanas',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 var esMx = moment.defineLocale('es-mx', {\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 w: 'una semana',\n ww: '%d semanas',\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,\n // 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 invalidDate: 'Fecha inválida'\n });\n return esMx;\n});","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 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 w: 'una semana',\n ww: '%d semanas',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\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 result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var fil = moment.defineLocale('fil', {\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,\n // 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 fil;\n});","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\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 monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 w: 'une semaine',\n ww: '%d semaines',\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,\n // 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});","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return frCa;\n});","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\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é ag] 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Ãonna',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['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 monthsShort = ['Faoi', 'Gear', 'Mà rt', 'Gibl', 'Cèit', 'Ã’gmh', 'Iuch', 'Lùn', 'Sult', 'Dà mh', 'Samh', 'Dùbh'],\n weekdays = ['Didòmhnaich', 'Diluain', 'Dimà irt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split('_'),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\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, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM 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: 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: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\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: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\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 > 12 ? 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 < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n }\n });\n return gomDeva;\n});","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_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 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: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] 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: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n\n meridiemParse: /rati|sokallim|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 === 'sokallim') {\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 'sokallim';\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 return gomLatn;\n});","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return he;\n});","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 monthsParse = [/^जन/i, /^फ़र|फर/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सितं|सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव|नवं/i, /^दिसं|दिस/i],\n shortMonthsParse = [/^जन/i, /^फ़र/i, /^मारà¥à¤š/i, /^अपà¥à¤°à¥ˆ/i, /^मई/i, /^जून/i, /^जà¥à¤²/i, /^अग/i, /^सित/i, /^अकà¥à¤Ÿà¥‚/i, /^नव/i, /^दिस/i];\n var hi = moment.defineLocale('hi', {\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: '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 monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ?|अगसà¥à¤¤?|सितमà¥à¤¬à¤°|सितंबर|सित?\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर?|दिसमà¥à¤¬à¤°|दिसंबर?)/i,\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²\\.?|अग\\.?|सित\\.?|अकà¥à¤Ÿà¥‚\\.?|नव\\.?|दिस\\.?)/i,\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,\n // 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});","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do 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 return '[proÅ¡lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ¡lu] [srijedu] [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,\n // 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});","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 monthsParseExact: true,\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,\n // 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});","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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: 0,\n // 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 id;\n});","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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: function () {\n return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextDay: function () {\n return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextWeek: function () {\n return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastDay: function () {\n return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n default:\n return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'tra %s',\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 w: 'una settimana',\n ww: '%d settimane',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ja = moment.defineLocale('ja', {\n eras: [{\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R'\n }, {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H'\n }, {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S'\n }, {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T'\n }, {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M'\n }, {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC'\n }],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\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: '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 'y':\n return number === 1 ? '元年' : number + 'å¹´';\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 return ja;\n});","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split('_'),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split('_'),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split('_'),\n isFormat: /(წინáƒ|შემდეგ)/\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: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\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 return ka;\n});","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var km = moment.defineLocale('km', {\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return ko;\n});","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'Øوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n 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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return lo;\n});","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //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 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 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 = ['[proÅ¡le] [nedjelje] [u] LT', '[proÅ¡log] [ponedjeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srijede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 || meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' || 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 return ml;\n});","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 return mn;\n});","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'à¤à¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\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 === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' || meridiem === 'सायंकाळी' || meridiem === 'रातà¥à¤°à¥€') {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\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 week: {\n dow: 0,\n // 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});","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var my = moment.defineLocale('my', {\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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_apr._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 w: 'en uke',\n ww: '%d uker',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 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 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 monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 w: 'één week',\n ww: '%d weken',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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 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 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 monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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,\n // 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});","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.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.] 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 w: 'ei veke',\n ww: '%d veker',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_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] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4\n }\n });\n return ocLnc;\n});","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\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 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\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 var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\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 monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\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 case 2:\n return '[We wtorek o] LT';\n case 3:\n return '[W Å›rodÄ™ o] LT';\n case 6:\n return '[W sobotÄ™ o] LT';\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 w: 'tydzieÅ„',\n ww: translate,\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,\n // 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});","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\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 w: 'uma semana',\n ww: '%d semanas',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\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 invalidDate: 'Data inválida'\n });\n return ptBr;\n});","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\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 var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._feb._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 w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 ww: 'неделÑ_недели_недель',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\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 // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\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 w: 'неделÑ',\n ww: 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,\n // 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});","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوري', 'Ùيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءÙ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return si;\n});","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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':\n // 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':\n // 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 case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm':\n // 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 case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh':\n // 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 case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd':\n // 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 case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM':\n // 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 case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy':\n // 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 }\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,\n // 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});","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n return number + ' ' + word;\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: 'D. M. 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 = ['[proÅ¡le] [nedelje] [u] LT', '[proÅ¡log] [ponedeljka] [u] LT', '[proÅ¡log] [utorka] [u] LT', '[proÅ¡le] [srede] [u] LT', '[proÅ¡log] [Äetvrtka] [u] LT', '[proÅ¡log] [petka] [u] LT', '[proÅ¡le] [subote] [u] LT'];\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: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један меÑец', 'једног меÑеца'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година']\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n return number + ' ' + word;\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: 'D. M. 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 = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [Ñреде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [Ñуботе] [у] LT'];\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: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // 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 srCyrl;\n});","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 A',\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: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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: 'segundu balun',\n ss: 'segundu %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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 var tg = moment.defineLocale('tg', {\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: '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,\n // 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});","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n // 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 w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี'\n }\n });\n return th;\n});","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\"\n };\n var tk = moment.defineLocale('tk', {\n months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'ÃekÅŸenbe_DuÅŸenbe_SiÅŸenbe_ÇarÅŸenbe_PenÅŸenbe_Anna_Åženbe'.split('_'),\n weekdaysShort: 'Ãek_DuÅŸ_SiÅŸ_Çar_Pen_Ann_Åžen'.split('_'),\n weekdaysMin: 'Ãk_DÅŸ_SÅŸ_Çr_Pn_An_Åžn'.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 sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl'\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) {\n // special case for zero\n return number + \"'unjy\";\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,\n // 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 tk;\n});","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\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 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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 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_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\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: '[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 w: 'bir hafta',\n ww: '%d hafta',\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) {\n // 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,\n // 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});","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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 return tzl;\n});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var ugCn = moment.defineLocale('ug-cn', {\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: '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 (meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\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 nounCase;\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 nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format) ? 'genitive' : '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 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,\n // 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});","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var months = ['جنوری', 'Ùروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\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,\n // 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});","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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,\n // 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});","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.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 trÆ°á»›c 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 w: 'má»™t tuần',\n ww: '%d tuần',\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,\n // 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});","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split('_'),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€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: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d'\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1,\n // 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});","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 === '早上' || 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: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\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 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 w: '1 周',\n ww: '%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,\n // 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});","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\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 return zhHk;\n});","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\n var zhMo = moment.defineLocale('zh-mo', {\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: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\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 return zhMo;\n});","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n //! moment.js locale configuration\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 return zhTw;\n});","/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function (t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function () {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function (t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n for (e in t) n = t[e], r[e] = n;\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function (t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function (t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function (t, e) {\n return t.slice(0, e.length) === e;\n }, n = function (t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n for (t in r) e = r[t].tracked, e && n.push(t);\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n for (n in o) i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n for (e in n) o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n for (o in i) n = i[o].elements, e(n[0], t) && (r = n[0]);\n return r;\n }, i = function (t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function (t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function (t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function (t, e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n e.Renderer = function () {\n function e() {}\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function (t, e) {\n var r, n, o, i, s, a, u;\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function (t, e) {\n function r() {\n this.constructor = t;\n }\n for (var n in e) o.call(e, n) && (t[n] = e[n]);\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.removeChild(t));\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) t = n[e], o.push(document.head.appendChild(t));\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n for (u = [], o = 0, i = t.length; i > o; o++) a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function (t) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", t.id), {\n element: e,\n permanentElement: t\n };\n }, r = function (t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function (t, e) {\n function n() {\n this.constructor = t;\n }\n for (var o in e) r.call(e, o) && (t[o] = e[o]);\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) e = n[t], o.push(delete this.snapshots[e]);\n return o;\n }, r = function (t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function (t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) if (t === document.body) return console.warn(\"You are loading Turbolinks from a <script> element inside the <body> element. This is probably not what you meant to do!\\n\\nLoad your application\\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\\n\\nFor more information, see: https://github.com/turbolinks/turbolinks#working-with-script-elements\\n\\n\\u2014\\u2014\\nSuppress this warning by adding a `data-turbolinks-suppress-warning` attribute to: %s\", e.outerHTML);\n }();\n }.call(this), function () {\n var t, r, n;\n e.start = function () {\n return r() ? (null == e.controller && (e.controller = t()), e.controller.start()) : void 0;\n }, r = function () {\n return null == window.Turbolinks && (window.Turbolinks = e), n();\n }, t = function () {\n var t;\n return t = new e.Controller(), t.adapter = new e.BrowserAdapter(t), t;\n }, n = function () {\n return window.Turbolinks === e;\n }, n() && e.start();\n }.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}).call(this);","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n var nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n};\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n return offsets;\n}\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n var noRound = function noRound(v) {\n return v;\n };\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n }]);\n\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n module.paths = [];\n // module.parent = undefined by default\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function () {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function () {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n return module;\n};","var map = {\n\t\"./af\": 25,\n\t\"./af.js\": 25,\n\t\"./ar\": 26,\n\t\"./ar-dz\": 27,\n\t\"./ar-dz.js\": 27,\n\t\"./ar-kw\": 28,\n\t\"./ar-kw.js\": 28,\n\t\"./ar-ly\": 29,\n\t\"./ar-ly.js\": 29,\n\t\"./ar-ma\": 30,\n\t\"./ar-ma.js\": 30,\n\t\"./ar-sa\": 31,\n\t\"./ar-sa.js\": 31,\n\t\"./ar-tn\": 32,\n\t\"./ar-tn.js\": 32,\n\t\"./ar.js\": 26,\n\t\"./az\": 33,\n\t\"./az.js\": 33,\n\t\"./be\": 34,\n\t\"./be.js\": 34,\n\t\"./bg\": 35,\n\t\"./bg.js\": 35,\n\t\"./bm\": 36,\n\t\"./bm.js\": 36,\n\t\"./bn\": 37,\n\t\"./bn-bd\": 38,\n\t\"./bn-bd.js\": 38,\n\t\"./bn.js\": 37,\n\t\"./bo\": 39,\n\t\"./bo.js\": 39,\n\t\"./br\": 40,\n\t\"./br.js\": 40,\n\t\"./bs\": 41,\n\t\"./bs.js\": 41,\n\t\"./ca\": 42,\n\t\"./ca.js\": 42,\n\t\"./cs\": 43,\n\t\"./cs.js\": 43,\n\t\"./cv\": 44,\n\t\"./cv.js\": 44,\n\t\"./cy\": 45,\n\t\"./cy.js\": 45,\n\t\"./da\": 46,\n\t\"./da.js\": 46,\n\t\"./de\": 47,\n\t\"./de-at\": 48,\n\t\"./de-at.js\": 48,\n\t\"./de-ch\": 49,\n\t\"./de-ch.js\": 49,\n\t\"./de.js\": 47,\n\t\"./dv\": 50,\n\t\"./dv.js\": 50,\n\t\"./el\": 51,\n\t\"./el.js\": 51,\n\t\"./en-au\": 52,\n\t\"./en-au.js\": 52,\n\t\"./en-ca\": 53,\n\t\"./en-ca.js\": 53,\n\t\"./en-gb\": 54,\n\t\"./en-gb.js\": 54,\n\t\"./en-ie\": 55,\n\t\"./en-ie.js\": 55,\n\t\"./en-il\": 56,\n\t\"./en-il.js\": 56,\n\t\"./en-in\": 57,\n\t\"./en-in.js\": 57,\n\t\"./en-nz\": 58,\n\t\"./en-nz.js\": 58,\n\t\"./en-sg\": 59,\n\t\"./en-sg.js\": 59,\n\t\"./eo\": 60,\n\t\"./eo.js\": 60,\n\t\"./es\": 61,\n\t\"./es-do\": 62,\n\t\"./es-do.js\": 62,\n\t\"./es-mx\": 63,\n\t\"./es-mx.js\": 63,\n\t\"./es-us\": 64,\n\t\"./es-us.js\": 64,\n\t\"./es.js\": 61,\n\t\"./et\": 65,\n\t\"./et.js\": 65,\n\t\"./eu\": 66,\n\t\"./eu.js\": 66,\n\t\"./fa\": 67,\n\t\"./fa.js\": 67,\n\t\"./fi\": 68,\n\t\"./fi.js\": 68,\n\t\"./fil\": 69,\n\t\"./fil.js\": 69,\n\t\"./fo\": 70,\n\t\"./fo.js\": 70,\n\t\"./fr\": 71,\n\t\"./fr-ca\": 72,\n\t\"./fr-ca.js\": 72,\n\t\"./fr-ch\": 73,\n\t\"./fr-ch.js\": 73,\n\t\"./fr.js\": 71,\n\t\"./fy\": 74,\n\t\"./fy.js\": 74,\n\t\"./ga\": 75,\n\t\"./ga.js\": 75,\n\t\"./gd\": 76,\n\t\"./gd.js\": 76,\n\t\"./gl\": 77,\n\t\"./gl.js\": 77,\n\t\"./gom-deva\": 78,\n\t\"./gom-deva.js\": 78,\n\t\"./gom-latn\": 79,\n\t\"./gom-latn.js\": 79,\n\t\"./gu\": 80,\n\t\"./gu.js\": 80,\n\t\"./he\": 81,\n\t\"./he.js\": 81,\n\t\"./hi\": 82,\n\t\"./hi.js\": 82,\n\t\"./hr\": 83,\n\t\"./hr.js\": 83,\n\t\"./hu\": 84,\n\t\"./hu.js\": 84,\n\t\"./hy-am\": 85,\n\t\"./hy-am.js\": 85,\n\t\"./id\": 86,\n\t\"./id.js\": 86,\n\t\"./is\": 87,\n\t\"./is.js\": 87,\n\t\"./it\": 88,\n\t\"./it-ch\": 89,\n\t\"./it-ch.js\": 89,\n\t\"./it.js\": 88,\n\t\"./ja\": 90,\n\t\"./ja.js\": 90,\n\t\"./jv\": 91,\n\t\"./jv.js\": 91,\n\t\"./ka\": 92,\n\t\"./ka.js\": 92,\n\t\"./kk\": 93,\n\t\"./kk.js\": 93,\n\t\"./km\": 94,\n\t\"./km.js\": 94,\n\t\"./kn\": 95,\n\t\"./kn.js\": 95,\n\t\"./ko\": 96,\n\t\"./ko.js\": 96,\n\t\"./ku\": 97,\n\t\"./ku.js\": 97,\n\t\"./ky\": 98,\n\t\"./ky.js\": 98,\n\t\"./lb\": 99,\n\t\"./lb.js\": 99,\n\t\"./lo\": 100,\n\t\"./lo.js\": 100,\n\t\"./lt\": 101,\n\t\"./lt.js\": 101,\n\t\"./lv\": 102,\n\t\"./lv.js\": 102,\n\t\"./me\": 103,\n\t\"./me.js\": 103,\n\t\"./mi\": 104,\n\t\"./mi.js\": 104,\n\t\"./mk\": 105,\n\t\"./mk.js\": 105,\n\t\"./ml\": 106,\n\t\"./ml.js\": 106,\n\t\"./mn\": 107,\n\t\"./mn.js\": 107,\n\t\"./mr\": 108,\n\t\"./mr.js\": 108,\n\t\"./ms\": 109,\n\t\"./ms-my\": 110,\n\t\"./ms-my.js\": 110,\n\t\"./ms.js\": 109,\n\t\"./mt\": 111,\n\t\"./mt.js\": 111,\n\t\"./my\": 112,\n\t\"./my.js\": 112,\n\t\"./nb\": 113,\n\t\"./nb.js\": 113,\n\t\"./ne\": 114,\n\t\"./ne.js\": 114,\n\t\"./nl\": 115,\n\t\"./nl-be\": 116,\n\t\"./nl-be.js\": 116,\n\t\"./nl.js\": 115,\n\t\"./nn\": 117,\n\t\"./nn.js\": 117,\n\t\"./oc-lnc\": 118,\n\t\"./oc-lnc.js\": 118,\n\t\"./pa-in\": 119,\n\t\"./pa-in.js\": 119,\n\t\"./pl\": 120,\n\t\"./pl.js\": 120,\n\t\"./pt\": 121,\n\t\"./pt-br\": 122,\n\t\"./pt-br.js\": 122,\n\t\"./pt.js\": 121,\n\t\"./ro\": 123,\n\t\"./ro.js\": 123,\n\t\"./ru\": 124,\n\t\"./ru.js\": 124,\n\t\"./sd\": 125,\n\t\"./sd.js\": 125,\n\t\"./se\": 126,\n\t\"./se.js\": 126,\n\t\"./si\": 127,\n\t\"./si.js\": 127,\n\t\"./sk\": 128,\n\t\"./sk.js\": 128,\n\t\"./sl\": 129,\n\t\"./sl.js\": 129,\n\t\"./sq\": 130,\n\t\"./sq.js\": 130,\n\t\"./sr\": 131,\n\t\"./sr-cyrl\": 132,\n\t\"./sr-cyrl.js\": 132,\n\t\"./sr.js\": 131,\n\t\"./ss\": 133,\n\t\"./ss.js\": 133,\n\t\"./sv\": 134,\n\t\"./sv.js\": 134,\n\t\"./sw\": 135,\n\t\"./sw.js\": 135,\n\t\"./ta\": 136,\n\t\"./ta.js\": 136,\n\t\"./te\": 137,\n\t\"./te.js\": 137,\n\t\"./tet\": 138,\n\t\"./tet.js\": 138,\n\t\"./tg\": 139,\n\t\"./tg.js\": 139,\n\t\"./th\": 140,\n\t\"./th.js\": 140,\n\t\"./tk\": 141,\n\t\"./tk.js\": 141,\n\t\"./tl-ph\": 142,\n\t\"./tl-ph.js\": 142,\n\t\"./tlh\": 143,\n\t\"./tlh.js\": 143,\n\t\"./tr\": 144,\n\t\"./tr.js\": 144,\n\t\"./tzl\": 145,\n\t\"./tzl.js\": 145,\n\t\"./tzm\": 146,\n\t\"./tzm-latn\": 147,\n\t\"./tzm-latn.js\": 147,\n\t\"./tzm.js\": 146,\n\t\"./ug-cn\": 148,\n\t\"./ug-cn.js\": 148,\n\t\"./uk\": 149,\n\t\"./uk.js\": 149,\n\t\"./ur\": 150,\n\t\"./ur.js\": 150,\n\t\"./uz\": 151,\n\t\"./uz-latn\": 152,\n\t\"./uz-latn.js\": 152,\n\t\"./uz.js\": 151,\n\t\"./vi\": 153,\n\t\"./vi.js\": 153,\n\t\"./x-pseudo\": 154,\n\t\"./x-pseudo.js\": 154,\n\t\"./yo\": 155,\n\t\"./yo.js\": 155,\n\t\"./zh-cn\": 156,\n\t\"./zh-cn.js\": 156,\n\t\"./zh-hk\": 157,\n\t\"./zh-hk.js\": 157,\n\t\"./zh-mo\": 158,\n\t\"./zh-mo.js\": 158,\n\t\"./zh-tw\": 159,\n\t\"./zh-tw.js\": 159\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 170;","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n var previousToast;\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n function getContainer(options, create) {\n if (!options) {\n options = getOptions();\n }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n function subscribe(callback) {\n listener = callback;\n }\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) {\n getContainer(options);\n }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) {\n getContainer(options);\n }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer(options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n function clearToast($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () {\n removeToast($toastElement);\n }\n });\n return true;\n }\n return false;\n }\n function createContainer(options) {\n $container = $('<div/>').attr('id', options.containerId).addClass(options.positionClass);\n $container.appendTo($(options.target));\n return $container;\n }\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n showMethod: 'fadeIn',\n //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing',\n //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000,\n // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '<button type=\"button\">×</button>',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n function publish(args) {\n if (!listener) {\n return;\n }\n listener(args);\n }\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n if (typeof map.optionsOverride !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n if (shouldExit(options, map)) {\n return;\n }\n toastId++;\n $container = getContainer(options, true);\n var intervalId = null;\n var $toastElement = $('<div/>');\n var $titleElement = $('<div/>');\n var $messageElement = $('<div/>');\n var $progressElement = $('<div/>');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n personalizeToast();\n displayToast();\n handleEvents();\n publish(response);\n if (options.debug && console) {\n console.log(response);\n }\n return $toastElement;\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n return source.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');\n }\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n hideToast(true);\n });\n }\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n function displayToast() {\n $toastElement.hide();\n $toastElement[options.showMethod]({\n duration: options.showDuration,\n easing: options.showEasing,\n complete: options.onShown\n });\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ? options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod]({\n duration: options.showDuration,\n easing: options.showEasing\n });\n }\n function updateProgress() {\n var percentage = (progressBar.hideEta - new Date().getTime()) / progressBar.maxHideTime * 100;\n $progressElement.width(percentage + '%');\n }\n }\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n function removeToast($toastElement) {\n if (!$container) {\n $container = getContainer();\n }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n }();\n });\n})(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) {\n //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n});","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n"],"sourceRoot":""}