1 line
2.8 MiB
1 line
2.8 MiB
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/underscore/modules/index-default.js","webpack:///./core/src/OC/legacy-loader.js","webpack:///./core/src/OC/notification.js","webpack:///./core/src/OC/xhr-error.js","webpack:///./core/src/OC/appconfig.js","webpack:///./core/src/OC/appswebroots.js","webpack:///./core/src/OC/backbone-webdav.js","webpack:///./core/src/OC/backbone.js","webpack:///./core/src/OC/config.js","webpack:///./core/src/OC/currentuser.js","webpack:///./core/src/OC/dialogs.js","webpack:///./core/src/OC/eventsource.js","webpack:///./core/src/OC/capabilities.js","webpack:///./core/src/OC/menu.js","webpack:///./core/src/OC/admin.js","webpack:///./core/src/OC/msg.js","webpack:///./core/src/OC/search.js","webpack:///./core/src/OC/theme.js","webpack:///./core/src/OC/util.js","webpack:///./core/src/OC/util-history.js","webpack:///./core/src/Util/human-file-size.js","webpack:///./core/src/OC/debug.js","webpack:///./core/src/OC/webroot.js","webpack:///./core/src/OC/get_set.js","webpack:///./core/src/OC/index.js","webpack:///./core/src/OC/appsettings.js","webpack:///./core/src/OC/host.js","webpack:///./core/src/OC/plugins.js","webpack:///./core/src/OC/navigation.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./core/src/OC/constants.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/fails.js","webpack:///./node_modules/core-js/internals/redefine.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/global.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/underscore/modules/index.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@nextcloud/router/dist/index.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/core-js/internals/array-iteration.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/utils.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/core-js/internals/a-function.js","webpack:///./node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/core-js/internals/set-to-string-tag.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/global.js","webpack:///./node_modules/backbone/backbone.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/@nextcloud/event-bus/dist/index.js","webpack:///./core/src/OC/l10n-registry.js","webpack:///./core/src/OC/l10n.js","webpack:///./core/src/OC/requesttoken.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/exception.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@nextcloud/dialogs/dist/index.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./core/src/OC/routing.js","webpack:///./core/src/OCP/appconfig.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/@nextcloud/paths/dist/index.js","webpack:///./node_modules/core-js/internals/set-global.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/core-js/internals/array-method-has-species-support.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/core-js/internals/define-iterator.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/core-js/internals/internal-metadata.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-integer.js","webpack:///./core/src/OCA/index.js","webpack:///./node_modules/core-js/internals/define-well-known-symbol.js","webpack:///./node_modules/handlebars/runtime.js","webpack:///./node_modules/core-js/modules/es.array.concat.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/core-js/internals/create-property.js","webpack:///./node_modules/core-js/internals/array-species-create.js","webpack:///./node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/core-js/modules/es.array.for-each.js","webpack:///./node_modules/core-js/modules/es.array.iterator.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/fails.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/has.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/core-js/modules/es.array.filter.js","webpack:///./node_modules/core-js/internals/add-to-unscopables.js","webpack:///./node_modules/core-js/internals/redefine-all.js","webpack:///./node_modules/core-js/internals/set-species.js","webpack:///./node_modules/escape-html/index.js","webpack:///./node_modules/core-js/internals/path.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/core-js/internals/species-constructor.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/export.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/core-js/internals/array-for-each.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:///./node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/core-js/internals/dom-iterables.js","webpack:///./node_modules/core-js/internals/regexp-exec.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/_createCtor.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/keys.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@nextcloud/initial-state/dist/index.js","webpack:///./node_modules/@nextcloud/axios/dist/index.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack:///./node_modules/@nextcloud/auth/dist/index.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars.runtime.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/core-js/internals/create-iterator-constructor.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/core-js/modules/es.string.iterator.js","webpack:///./node_modules/lodash/_createWrap.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_LazyWrapper.js","webpack:///./node_modules/lodash/_baseLodash.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_replaceHolders.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/native-symbol.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/set-global.js","webpack:///./core/src/OC/query-string.js","webpack:///./node_modules/lodash/fp/identity.js","webpack:///./node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/core-js/modules/es.map.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/core-js/modules/es.regexp.exec.js","webpack:///./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./core/src/OC/apps.js","webpack:///./node_modules/davclient.js/lib/client.js","webpack:///./node_modules/dompurify/dist/purify.js","webpack:///./core/src/OC/password-confirmation.js","webpack:///./node_modules/@nextcloud/event-bus/dist/ProxyBus.js","webpack:///./node_modules/@nextcloud/event-bus/node_modules/semver/semver.js","webpack:///./node_modules/@nextcloud/event-bus/dist/SimpleBus.js","webpack:///./node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/core-js/internals/task.js","webpack:///./node_modules/core-js/internals/new-promise-capability.js","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/engine-is-ios.js","webpack:///./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/base.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/logger.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/proto-access.js","webpack:///./node_modules/lodash/fp/placeholder.js","webpack:///./node_modules/lodash/_baseSetData.js","webpack:///./node_modules/lodash/_metaMap.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_createHybrid.js","webpack:///./node_modules/lodash/_composeArgs.js","webpack:///./node_modules/lodash/_composeArgsRight.js","webpack:///./node_modules/lodash/_createRecurry.js","webpack:///./node_modules/lodash/_getData.js","webpack:///./node_modules/lodash/_LodashWrapper.js","webpack:///./node_modules/lodash/_setData.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_setWrapToString.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_getHolder.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/_arrayMap.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/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-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/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/@nextcloud/axios/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./core/src/OC/contactsmenu.js","webpack:///./node_modules/@nextcloud/capabilities/dist/index.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/path.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.object.to-string.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/object-to-string.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/classof.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.regexp.to-string.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/advance-string-index.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/string-multibyte.js","webpack:///./node_modules/@nextcloud/router/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:///./node_modules/@nextcloud/auth/dist/requesttoken.js","webpack:///./node_modules/@nextcloud/auth/dist/user.js","webpack:///./node_modules/core-js/modules/es.promise.js","webpack:///./node_modules/core-js/internals/native-promise-constructor.js","webpack:///./node_modules/core-js/internals/microtask.js","webpack:///./node_modules/core-js/internals/promise-resolve.js","webpack:///./node_modules/core-js/internals/perform.js","webpack:///./node_modules/core-js/modules/es.symbol.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///./node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es.object.keys.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/modules/es.array.map.js","webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/@nextcloud/dialogs/dist/filepicker.js","webpack:///./node_modules/core-js/internals/host-report-errors.js","webpack:///./node_modules/@nextcloud/dialogs/dist/toast.js","webpack:///./node_modules/toastify-js/src/toastify.js","webpack:///./core/src/OC/contactsmenu/contact.handlebars","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/block-helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/each.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/helper-missing.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/if.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/log.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/lookup.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/helpers/with.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/decorators/inline.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/create-new-lookup-object.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/safe-string.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/runtime.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/internal/wrapHelper.js","webpack:///./node_modules/handlebars/dist/cjs/handlebars/no-conflict.js","webpack:///./core/src/OC/contactsmenu/loading.handlebars","webpack:///./core/src/OC/contactsmenu/error.handlebars","webpack:///./core/src/OC/contactsmenu/menu.handlebars","webpack:///./core/src/OC/contactsmenu/list.handlebars","webpack:///./node_modules/lodash/fp/convert.js","webpack:///./node_modules/lodash/fp/_baseConvert.js","webpack:///./node_modules/lodash/fp/_mapping.js","webpack:///./node_modules/lodash/fp/_util.js","webpack:///./node_modules/lodash/ary.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_createBind.js","webpack:///./node_modules/lodash/_createCurry.js","webpack:///./node_modules/lodash/_countHolders.js","webpack:///./node_modules/lodash/_isLaziable.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/lodash/_getFuncName.js","webpack:///./node_modules/lodash/_realNames.js","webpack:///./node_modules/lodash/wrapperLodash.js","webpack:///./node_modules/lodash/_wrapperClone.js","webpack:///./node_modules/lodash/_getWrapDetails.js","webpack:///./node_modules/lodash/_insertWrapDetails.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/_updateWrapDetails.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_reorder.js","webpack:///./node_modules/lodash/_createPartial.js","webpack:///./node_modules/lodash/_mergeData.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/clone.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/curry.js","webpack:///./node_modules/lodash/isError.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/isWeakMap.js","webpack:///./node_modules/lodash/iteratee.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/rearg.js","webpack:///./node_modules/lodash/_flatRest.js","webpack:///./node_modules/lodash/flatten.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/toPath.js","webpack:///./node_modules/lodash/fp/_falseOptions.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/modules/es.object.assign.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/export.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/shared.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/uid.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/path.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-length.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-assign.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/@nextcloud/axios/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./core/src/maintenance.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","factory","window","this","noGlobal","arr","document","slice","concat","push","indexOf","class2type","toString","hasOwn","support","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","isArrayLike","obj","length","type","isWindow","jquery","constructor","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","Array","isNumeric","realStringObj","parseFloat","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","guid","proxy","tmp","args","now","Date","iterator","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","e","els","seed","nid","nidselect","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","disabled","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","div1","defaultValue","unique","isXMLDoc","until","truncate","is","siblings","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","sibling","has","targets","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","readyList","rnotwhite","completed","removeEventListener","Callbacks","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","progress","notify","resolve","reject","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","off","readyState","doScroll","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","register","initial","writable","configurable","set","data","prop","stored","camel","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHidden","el","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","unit","cssNumber","initialInUnit","style","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","handleObjIn","eventHandle","events","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","sel","isNaN","button","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","Event","load","noBubble","focus","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","timeStamp","isSimulated","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","HTML","BODY","actualDisplay","display","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","view","opener","getComputedStyle","swap","old","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelMarginRight","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","pixelMarginRightVal","reliableMarginLeftVal","container","computeStyleTests","cssText","divStyle","marginLeft","marginRight","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginLeft","reliableMarginRight","marginDiv","rdisplayswap","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","Tween","easing","cssHooks","opacity","cssProps","origName","isFinite","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","propHooks","run","percent","eased","duration","step","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rrun","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","tick","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","anim","complete","tweener","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","boolHook","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","rfocusable","rclickable","removeProp","tabindex","parseInt","rclass","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","rspaces","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","status","abort","statusText","finalText","success","method","crossDomain","host","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","unwrap","visible","getClientRects","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","getWindow","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","box","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","size","andSelf","_jQuery","_$","$","noConflict","w","hookCallback","some","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","res","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","from","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","stack","deprecations","deprecateSimple","Function","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","number","targetLength","forceSign","absNumber","abs","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","array","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","modMonth","x","mod","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","getSetYear","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","millisecond","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","round","separator","utcOffset","sign","offsetFromString","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","item","isNumberOrStringArray","objectTest","propertyTest","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toObject","toDate","toISOString","keepOffset","zone","for","toJSON","unix","creationData","eraName","since","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","listMonthsImpl","out","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","getOwnPropertyDescriptor","f","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","loadedScripts","loadedStyles","updatableNotification","getDefaultNotificationFunction","setDefault","$row","toastify","hideToast","showHtml","isHTML","toast","showMessage","toastElement","showUpdate","showTemporary","ajaxConnectionLostHandler","throttle","Notification","trailing","appConfig","oc_appconfig","AppConfig","getValue","app","setValue","getApps","getKeys","deleteKey","appswebroots","_oc_appswebroots","methodMap","update","patch","delete","read","parsePropFindResult","davProperties","subResult","propStat","propKey","parseIdFromLocation","queryPos","isSuccessStatus","callPropPatch","client","propPatch","changedProp","isBoolean","convertModelAttributesToDavProperties","changed","Backbone","VendorBackbone","davCall","dav","Client","baseUrl","xmlNamespaces","resolveUrl","OC","requestToken","propFind","depth","propsMapping","callPropFind","request","callMkCol","responseJson","locationHeader","callMethod","davSync","isCollection","Collection","hasInnerCollection","usePUT","urlError","stringify","textStatus","errorThrown","_oc_config","rawUid","displayName","currentUser","Dialogs","YES_NO_BUTTONS","OK_BUTTONS","FILEPICKER_TYPE_CHOOSE","FILEPICKER_TYPE_MOVE","FILEPICKER_TYPE_COPY","FILEPICKER_TYPE_COPY_MOVE","FILEPICKER_TYPE_CUSTOM","dialogsCounter","alert","title","modal","message","OK_BUTTON","info","confirm","confirmDestructive","buttons","confirmHtml","prompt","_getMessageTemplate","$tmpl","dialogName","dialogId","$dlg","octemplate","dialog_name","label","buttonlist","ocdialog","defaultButton","closeOnEscape","filepicker","multiselect","mimetypeFilter","path","sortField","loading","emptyText","newText","filesClient","OCA","Sharing","PublicApp","fileList","Files","getClient","filelist","allowDirectoryChooser","_getFilePickerTemplate","$filePicker","emptytext","newtext","nameCol","sizeCol","modifiedCol","Util","isIE","$showGridView","_onGridviewChange","_getGridSettings","newButton","registerMenu","$input","newName","lastPos","lastIndexOf","selectRange","$form","checkInput","filename","trimmedName","blacklist_files_regex","isFileNameValid","escape","tooltip","placement","newname","createDirectory","_fillFilePicker","hideMenus","keypress","$fileListHeader","$filelist","$filelistContainer","$dirTree","_handleTreeListSelect","_handlePickerClick","functionToCall","returnType","datapath","element","selectedName","buttonEnableDisable","dialogType","allowHtml","escapeFunction","cancel","confirmClasses","_fileexistsshown","fileexists","replacement","controller","dialogDeferred","crop","img","canvas","getContext","drawImage","resampleHermite","toDataURL","H","W2","H2","getImageData","img2","data2","ratio_w","ratio_h","ratio_w_half","ratio_h_half","x2","weight","weights","weights_alpha","gx_r","gx_g","gx_b","gx_a","center_y","dy","center_x","w0","xx","dx","sqrt","clearRect","putImageData","addConflict","$conflicts","$conflict","$originalDiv","$replacementDiv","humanFileSize","formatDate","mtime","lastModifiedDate","directory","urlSpec","forceIcon","previewpath","generatePreviewUrl","FileReader","reader","blob","Blob","URL","webkitURL","originalUrl","createObjectURL","Image","readAsArrayBuffer","getCroppedPreview","MimeType","getIconUrl","checkboxId","_getFileExistsTemplate","allnewfiles","allexistingfiles","why","onCancel","onContinue","closeButton","$primaryButton","updatePrimaryButton","checkedCount","$checkbox","generateUrl","gridview","post","$filePickerTemplate","filePath","tmpl","$listTmpl","$messageTemplate","$fileexistsTemplate","_getFileList","mimetypes","getFolderContents","files","mimetype","Comparators","fileInfo1","fileInfo2","naturalSortCompare","comparator","file1","file2","isFavorite","fileInfo","tags","TAG_FAVORITE","_fillSlug","entry","simpleSize","sizeColor","icon","filename1","filename2","relativeModifiedDate","previewUrl","addButton","$template","paths","getOcDialog","_changeButtonsText","$element","ctrlKey","copyText","folder","moveText","OCEventSource","joinChar","dataStr","typelessListeners","closed","listeners","getToken","useFallBack","EventSource","iframeId","iframeCount","fallBackSources","onmessage","listen","fallBackCallBack","lastLength","getCapabilities","realGetCapabilities","currentMenu","lastMenu","menuSpeed","isAdmin","_oc_isadmin","startSaving","startAction","finishedSaving","finishedAction","finishedSuccess","finishedError","search","query","Search","customResults","resultTypes","theme","_theme","chunkify","tz","History","_handlers","_pushState","strParams","buildQueryString","history","pushState","pathname","navigator","userAgent","patterns","fill","stroke","replaceState","_cancelPop","addOnPopStateHandler","_parseHashQuery","_decodeQuery","parseUrlQuery","parseQueryString","_onPopState","skipSmallSizes","humanList","order","log","readableFormat","relativeSize","toLocaleString","getCanonicalLocale","computerFileSize","bytes","timestamp","moment","getScrollBarWidth","_scrollBarWidth","inner","outer","w1","w2","clientWidth","stripTime","aa","bb","aNum","Number","bNum","localeCompare","getLanguage","waitFor","internalCallback","isCookieSetToValue","cookies","cookie","debug","_oc_debug","webroot","_oc_webroot","coreApps","PERMISSION_ALL","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_NONE","PERMISSION_READ","PERMISSION_SHARE","PERMISSION_UPDATE","fileIsBlacklisted","Config","addScript","addStyle","createStyleSheet","Apps","appSettings","appid","scriptName","popup","arrowclass","loadJS","scriptname","jqxhr","ContactsMenu","dialogs","getCurrentUser","isUserAdmin","L10N","_ajaxConnectionLostHandler","_processAjaxError","_reloadCalled","_userIsNavigatingAway","reload","registerXHRForErrorProcessing","_capabilities","$toggle","$menuEl","headerMenu","isClickableElement","showMenu","unregisterMenu","basename","encodePath","dirname","isSamePath","joinPaths","getHost","getHostName","hostname","getPort","port","getProtocol","addTranslations","PasswordConfirmation","Plugins","_plugins","targetName","plugin","plugins","getPlugins","attach","targetObject","generateFilePath","tail","getRootPath","getRootUrl","imagePath","redirect","targetURL","getRequestToken","linkTo","linkToOCS","generateOcsUrl","linkToRemote","generateRemoteUrl","linkToRemoteBase","subscribe","it","globalThis","shared","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","TypeError","fails","DESCRIPTORS","IE8_DOM_DEFINE","anObject","toPrimitive","nativeDefineProperty","O","P","Attributes","definePropertyModule","createPropertyDescriptor","toInteger","requireObjectCoercible","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","unsafe","g","freeGlobal","freeSelf","IndexedObject","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isFile","isBlob","isStream","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","assignValue","deepMerge","thisArg","str","ArrayProto","ObjProto","SymbolProto","nativeIsArray","nativeKeys","nativeCreate","_isNaN","_isFinite","Ctor","_wrapped","VERSION","optimizeCb","argCount","accumulator","baseIteratee","identity","iteratee","Infinity","cb","restArguments","startIndex","rest","baseCreate","shallowProperty","_has","deepGet","MAX_ARRAY_INDEX","getLength","_keys","currentKey","createReduce","reducer","memo","reduce","reduceRight","predicate","findIndex","findKey","negate","every","fromIndex","guard","invoke","contextPath","pluck","where","findWhere","lastComputed","shuffle","sample","rand","sortBy","criteria","right","group","behavior","partition","groupBy","indexBy","countBy","reStrSymbol","pass","compact","Boolean","_flatten","shallow","isArguments","flatten","without","otherArrays","difference","uniq","isSorted","seen","union","arrays","intersection","argsLength","unzip","zip","createPredicateIndexFinder","findLastIndex","sortedIndex","low","mid","createIndexFinder","predicateFind","range","chunk","executeBound","sourceFunc","boundFunc","callingContext","bound","callArgs","partial","boundArgs","placeholder","bindAll","memoize","hasher","address","previous","later","leading","throttled","_now","debounce","immediate","debounced","callNow","wrapper","compose","times","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","allKeys","mapObject","pairs","functions","createAssigner","keysFunc","extendOwn","keyInObj","pick","omit","tap","interceptor","isMatch","aStack","bStack","areArrays","aCtor","bCtor","deepEq","isEqual","isEmpty","isElement","tagTester","isRegExp","isError","isSymbol","isMap","isWeakMap","isSet","isWeakSet","nodelist","isNull","constant","propertyOf","accum","Int8Array","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","unescape","fallback","idCounter","uniqueId","templateSettings","evaluate","interpolate","noMatch","escapes","escapeRegExp","escapeChar","template","oldSettings","render","variable","chain","instance","_chain","chainResult","mixin","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","store","wmget","wmhas","wmset","metadata","STATE","getterFor","TYPE","service","allOptions","noRewrite","_build","vars","modRewriteWorking","isCore","link","substring","encodeURI","propertyIsEnumerableModule","toIndexedObject","nativeGetOwnPropertyDescriptor","aFunction","toLength","arraySpeciesCreate","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","escapeExpression","toHTML","possible","badChars","createFrame","frame","_parent","blockParams","ids","appendContextPath","chr","bitmap","thrower","METHOD_NAME","ACCESSORS","argument0","argument1","TO_STRING_TAG","wellKnownSymbol","TAG","PREFERRED_STRING","previousBackbone","emulateHTTP","emulateJSON","_listening","Events","eventSplitter","eventsApi","_events","onApi","ctx","listening","_listeners","interop","listenTo","_listenId","listeningTo","_listeningTo","Listening","tryCatchOn","offApi","stopListening","_callback","cleanup","onceMap","listenToOnce","offer","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","listener","Model","preinitialize","cid","cidPrefix","initialize","validationError","idAttribute","sync","_validate","unset","silent","changes","changing","_changing","_previousAttributes","_pending","clear","hasChanged","changedAttributes","previousAttributes","fetch","resp","serverAttrs","wrapError","save","validate","isNew","destroy","models","_reset","setOptions","addOptions","at","singular","removed","_removeModels","added","merged","_isModel","toAdd","toMerge","toRemove","modelMap","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","previousModels","_byId","modelId","callbackOpts","CollectionIterator","ITERATOR_VALUES","ITERATOR_KEYS","entries","ITERATOR_KEYSVALUES","_onModelEvent","prevId","$$iterator","kind","_collection","_kind","_index","View","viewOptions","_ensureElement","delegateEventSplitter","tagName","$el","_removeElement","setElement","undelegateEvents","_setElement","delegateEvents","eventName","_createElement","_setAttributes","addUnderscoreMethods","Class","methods","attribute","defaultVal","addMethod","modelMatcher","collect","foldl","inject","foldr","detect","any","include","includes","take","drop","Base","mappings","_method","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","route","_routeToRegExp","router","_extractParameters","execute","navigate","optional","decodeURIComponent","checkUrl","routeStripper","rootStripper","pathStripper","started","atRoot","getSearch","matchRoot","decodeFragment","decodeURI","getHash","getPath","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","_hasPushState","rootPath","iWindow","contentWindow","_checkUrlInterval","loadUrl","detachEvent","decodedFragment","_updateHash","protoProps","staticProps","child","__super__","activeXDocument","defineProperties","enumBugKeys","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObject","domain","ActiveXObject","iframeDocument","NullProtoObjectViaActiveX","F","Properties","bus","unsubscribe","emit","_ProxyBus","_SimpleBus","_eventBus","_nc_event_bus","ProxyBus","SimpleBus","_oc_l10n_registry_translations","_oc_l10n_registry_plural_functions","registerAppTranslations","appId","translations","pluralFunction","hasAppTranslations","getAppTranslations","L10n","appName","pluralForm","bundle","_getPlural","_unregister","translate","sanitize","optSanitize","DOMPurify","optEscape","escapeHTML","translation","translatePlural","textSingular","textPlural","plural","language","Handlebars","registerHelper","manageFromDocument","setToken","newToken","classof","postfix","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","getPrototypeOf","errorProps","Exception","loc","line","endLineNumber","column","endColumn","captureStackTrace","lineNumber","nop","baseIsNative","getRawTag","objectToString","symToStringTag","_filepicker","FilePicker","FilePickerBuilder","getFilePickerBuilder","_toast","showSuccess","showWarning","showInfo","showError","Constructor","endpoint","requiresPasswordConfirmation","requirePasswordConfirmation","isArrayIteratorMethod","getIteratorMethod","callWithSafeIterationClosing","Result","iterable","AS_ENTRIES","IS_ITERATOR","iterFn","_len","_key","nonEmptyArgs","lastArg","leadingSlash","trailingSlash","sections","acc","section","path1","path2","pathSections1","pathSections2","internalObjectKeys","feature","detection","normalize","POLYFILL","NATIVE","V8_VERSION","SPECIES","foo","createIteratorConstructor","setPrototypeOf","setToStringTag","IS_PURE","Iterators","IteratorsCore","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ITERATOR","returnThis","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","aPossiblePrototype","CORRECT_SETTER","__proto__","FREEZING","METADATA","isExtensible","setMetadata","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","wrappedWellKnownSymbolModule","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","A","EXISTS","functionToString","copyright","propertyKey","originalArray","C","getOwnPropertySymbols","process","versions","v8","addToUnscopables","defineIterator","setInternalState","iterated","Arguments","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","baseGetTag","isObjectLike","DataView","Map","Promise","Set","toSource","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","nativePropertyIsEnumerable","NASHORN_BUG","1","V","integer","$filter","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","UNSCOPABLES","ArrayPrototype","getBuiltIn","CONSTRUCTOR_NAME","matchHtmlRegExp","charCodeAt","defaultConstructor","S","re1","re2","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","re","sticky","charsAdded","strCopy","multiline","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","umask","$forEach","arrayMethodIsStrict","STRICT_METHOD","PrototypeOfArrayIteratorPrototype","arrayIterator","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","CONVERT_TO_STRING","codeAt","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","thisBinding","objectCreate","baseAssignValue","customizer","newValue","arrayLikeKeys","baseKeys","webpackPolyfill","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","getNative","isKeyable","__data__","loadState","querySelector","atob","default","_axios","_auth","requesttoken","cancelableClient","CancelToken","isCancel","onRequestTokenUpdate","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","toAbsoluteIndex","IS_INCLUDES","preventExtensions","DOMIterables","COLLECTION_NAME","CollectionPrototype","_requesttoken","_user","_interopRequireDefault","_interopRequireWildcard","newObj","_handlebarsSafeString2","_handlebarsException2","Utils","runtime","_handlebarsNoConflict2","hb","HandlebarsEnvironment","SafeString","VM","spec","inst","InternalMetadataModule","iterate","anInstance","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","ADDER","NativeConstructor","NativePrototype","exported","fixMethod","nativeMethod","getConstructor","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","setStrong","Wrapper","NewTarget","NewTargetPrototype","objectKeys","point","baseSetData","createBind","createCurry","createHybrid","createPartial","getData","mergeData","setData","setWrapToString","nativeMax","bitmask","partials","holders","argPos","ary","arity","isBindKey","partialsRight","holdersRight","newData","baseLodash","LazyWrapper","__wrapped__","__actions__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","reIsUint","resIndex","baseIsArguments","objectProto","stubFalse","freeExports","freeModule","Buffer","freeProcess","nodeUtil","require","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayFilter","stubArray","nativeGetSymbols","getSymbols","symbol","getPrototype","overArg","Uint8Array","arrayBuffer","byteLength","reIsDeepProp","reIsPlainProp","ignoreCase","dotAll","unicode","queryString","components","part","build","convert","ownKeys","getOwnPropertyDescriptorModule","collectionStrong","ENTRIES","returnMethod","redefineAll","setSpecies","internalStateGetterFor","define","getEntry","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","ArrayIteratorMethods","ArrayValues","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","R","dynamicSlideToggleEnabled","enableDynamicSlideToggle","registerAppsSlideToggle","areaSelector","area","hideArea","showArea","_XML_CHAR_MAP","_escapeXml","ch","userName","parseClarkNotation","_renderPropSet","propValue","mkcol","xhrProvider","btoa","upload","onProgress","fulfill","resultBody","parseMultiStatus","ontimeout","_parsePropNode","propNode","subNodes","xmlBody","resolver","responseIterator","XPathResult","ANY_TYPE","responseNode","iterateNext","stringValue","propStatIterator","propStatNode","propIterator","namespaceURI","localName","baseParts","parseUrl","subString","scheme","propertyName","freeze","seal","_ref","Reflect","construct","thisValue","Func","_toConsumableArray","arrayForEach","unapply","arrayIndexOf","arrayJoin","arrayPop","arrayPush","arraySlice","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","regExpCreate","unconstruct","typeErrorCreate","_len2","_key2","addToSet","lcElement","newObject","svg","svgFilters","mathMl","html$1","svg$1","mathMl$1","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","currentScript","hasAttribute","policyName","createHTML","html$$1","createDOMPurify","isSupported","originalDocument","removeTitle","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","MozNamedAttrMap","Text","Comment","trustedTypesPolicy","emptyHTML","_document","implementation","createNodeIterator","importNode","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","_forceRemove","outerHTML","_removeAttribute","_initDocument","dirty","leadingWhitespace","dirtyPayload","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","insertAdjacentHTML","htmlToInsert","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","toStaticHTML","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","pageLoadTime","serverTimeDiff","nc_pageLoad","timeSinceLogin","nc_lastLogin","backendAllowsPasswordConfirmation","rejectCallback","_confirmPassword","$dialog","$error","$buttons","lastLogin","_semver","_defineProperties","packageJson","_classCallCheck","_defineProperty","getVersion","valid","major","NODE_DEBUG","SEMVER_SPEC_VERSION","MAX_SAFE_INTEGER","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","MAINVERSION","MAINVERSIONLOOSE","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","PRERELEASE","PRERELEASELOOSE","BUILDIDENTIFIER","BUILD","FULLPLAIN","FULL","LOOSEPLAIN","LOOSE","GTLT","XRANGEIDENTIFIERLOOSE","XRANGEIDENTIFIER","XRANGEPLAIN","XRANGEPLAINLOOSE","XRANGE","XRANGELOOSE","COERCE","COERCERTL","LONETILDE","TILDETRIM","TILDE","TILDELOOSE","LONECARET","CARETTRIM","CARET","CARETLOOSE","COMPARATORLOOSE","COMPARATOR","COMPARATORTRIM","HYPHENRANGE","HYPHENRANGELOOSE","STAR","loose","includePrerelease","SemVer","er","minor","prerelease","clean","compareMain","comparePre","compareIdentifiers","compareBuild","inc","release","version1","version2","v1","v2","defaultResult","numeric","anum","bnum","gt","lt","neq","gte","lte","cmp","op","Comparator","comp","semver","ANY","rcompareIdentifiers","compareLoose","versionA","versionB","rcompare","rsort","Range","parseRange","isSatisfiable","comparators","remainingComparators","testComparator","otherComparator","intersects","isX","hyphenReplace","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","testSet","allowed","satisfies","outside","hilo","gtfn","ltefn","ltfn","ecomp","rangeTmp","sameDirectionIncreasing","sameDirectionDecreasing","sameSemVer","differentDirectionsInclusive","oppositeDirectionsLessThan","oppositeDirectionsGreaterThan","comps","hr","compRe","pr","replaceCaret","replaceCarets","replaceTilde","replaceTildes","gtlt","xM","xm","xp","anyX","replaceXRange","replaceXRanges","replaceStars","parseComparator","thisComparators","rangeComparators","thisComparator","rangeComparator","toComparators","maxSatisfying","maxSV","rangeObj","minSatisfying","minSV","minVersion","minver","compver","validRange","ltr","gtr","r1","r2","coerce","rtl","channel","IS_IOS","setImmediate","clearImmediate","MessageChannel","Dispatch","counter","runner","postMessage","port2","port1","importScripts","PromiseCapability","$$resolve","$$reject","IS_RIGHT","argumentsLength","RE","MATCH","_utils","_exception2","_helpers","_decorators","_logger2","_internalProtoAccess","COMPILER_REVISION","LAST_COMPATIBLE_COMPILER_REVISION","REVISION_CHANGES","2","3","4","5","6","7","8","helpers","decorators","registerDefaultHelpers","registerDefaultDecorators","logger","unregisterHelper","registerPartial","unregisterPartial","registerDecorator","unregisterDecorator","resetLoggedPropertyAccesses","resetLoggedProperties","_helpersBlockHelperMissing2","_helpersEach2","_helpersHelperMissing2","_helpersIf2","_helpersLog2","_helpersLookup2","_helpersWith2","moveHelperToHooks","helperName","keepHelper","level","lookupLevel","levelMap","createProtoAccessControl","runtimeOptions","defaultMethodWhiteList","defaultPropertyWhiteList","whitelist","_createNewLookupObject","createNewLookupObject","allowedProtoProperties","allowProtoPropertiesByDefault","allowedProtoMethods","allowProtoMethodsByDefault","resultIsAllowed","protoAccessControl","checkWhiteList","loggedProperties","protoAccessControlForType","logUnexpecedPropertyAccessOnce","metaMap","funcToString","composeArgs","composeArgsRight","countHolders","createCtor","createRecurry","getHolder","reorder","replaceHolders","isAry","isBind","isCurried","isFlip","holdersCount","newHolders","argsIndex","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","holdersIndex","rightIndex","rightLength","isLaziable","wrapFunc","isCurry","LodashWrapper","chainAll","__chain__","__index__","__values__","shortOut","nativeNow","lastCalled","stamp","getWrapDetails","insertWrapDetails","setToString","updateWrapDetails","reference","baseSetToString","toFinite","remainder","copyObject","objValue","baseTimes","isIndex","isTypedArray","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseIsTypedArray","baseUnary","nodeIsTypedArray","isPrototype","transform","isLength","arrayEach","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","cloneableTags","baseClone","isDeep","isFlat","isFull","isFunc","stacked","subValue","keysIn","baseKeysIn","getSymbolsIn","baseGetAllKeys","symbolsFunc","baseIsEqualDeep","baseIsEqual","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrValue","othValue","compared","othIndex","srcValue","castPath","toKey","isKey","stringToPath","memoizeCapped","rePropName","reEscapeChar","quote","baseToString","symbolMap","numberMap","plurals","pluralize","weekdaysParseExact","suffixes","70","80","20","50","100","9","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","mutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","ll","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","utils","encode","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","adapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","auth","Authorization","fullPath","baseURL","responseURL","timeoutErrorMessage","xsrfValue","withCredentials","onDownloadProgress","onUploadProgress","cancelToken","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","axiosKeys","otherKeys","Cancel","Contact","fullName","lastMessage","actions","hasOneAction","hasTwoActions","hasManyActions","ContactCollection","ContactsListView","_subViews","contact","ContactsListItemView","_onChildActionMenuToggle","$src","_template","_model","_actionMenuShown","contactTemplate","_onOtherActionMenuOpened","imageplaceholder","_onToggleActionsMenu","ContactsMenuView","_loadingTemplate","_errorTemplate","_contentTemplate","_contactsTemplate","_contacts","_searchTerm","templates","menu","_onSearch","searchTerm","loadingTemplate","errorTemplate","couldNotLoadText","contentTemplate","searchContactsText","contactsTemplate","noContactsFoundText","showAllContactsText","contactsAppMgmtText","showLoading","loadingText","showContacts","viewData","contacts","contactsAppEnabled","contactsAppURL","canInstallApp","contactsAppMgmtURL","searchVal","_$trigger","_view","_contactsPromise","_loadContacts","_toggleVisibility","_getContacts","term","catch","_initialState","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","nativeAssign","B","T","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeCallNative","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","capture","observer","observers","tokenElement","uidElement","displayNameElement","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","speciesConstructor","task","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","PromiseConstructor","$fetch","newPromiseCapability","newGenericPromiseCapability","IS_NODE","DISPATCH_EVENT","createEvent","dispatchEvent","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","isThenable","isReject","notified","reactions","ok","exited","reaction","rejection","onHandleUnhandled","enter","exit","onUnhandled","initEvent","isUnhandled","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","alreadyCalled","race","flush","macrotask","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","observe","characterData","promiseCapability","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","HIDDEN","TO_PRIMITIVE","$Symbol","$stringify","nativeGetOwnPropertyNames","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperty","$defineProperties","$getOwnPropertySymbols","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","space","$replacer","windowNames","getWindowNames","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeJoin","ES3_STRINGS","$map","$reduce","callRegExpExec","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","lim","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","_createClass","FilePickerType","multiSelect","mimeTypeFilter","directoriesAllowed","mimeTypeFiler","_this","rej","Choose","allow","_objectSpread","ToastType","ERROR","WARNING","INFO","SUCCESS","_toastifyJs","enumerableOnly","_options$type","onRemove","onClick","gravity","backgroundColor","showToast","PERMANENT","Toastify","lib","containsClass","yourClass","destination","newWindow","positionLeft","avatar","stopOnFocus","buildToast","divElement","background","ELEMENT_NODE","avatarElement","insertAdjacentElement","closeElement","removeElement","timeOutValue","innerWidth","screen","rootElement","reposition","classUsed","topLeftOffsetSize","bottom","topRightOffsetSize","offsetSize","allToasts","depth0","stack1","alias1","lambda","alias2","lookupProperty","nullContext","program","helper","helperMissing","alias4","alias3","inverse","_exception","priorKey","execIteration","conditional","includeZero","_decoratorsInline2","_decoratorsInline","sources","checkRevision","compilerInfo","compilerRevision","currentRevision","_base","runtimeVersions","compilerVersions","templateSpec","main","decorator","main_d","compiler","templateWasPrecompiledWithCompilerV7","lookup","depths","invokePartial","resolvePartial","extendedOptions","compilerOptions","indent","lines","programs","declaredBlockParams","programWrapper","wrapProgram","mergeIfNeeded","_setup","useData","initData","useBlockParams","useDepths","executeDecorators","isTop","mergedHelpers","_internalWrapHelper","wrapHelper","passLookupPropertyOption","wrapHelpersToPassLookupProperty","usePartial","useDecorators","keepHelperInHelpers","allowCallsToHelperMissing","_child","currentPartialBlock","partialBlock","prog","currentDepths","transformOptionsFn","$Handlebars","baseConvert","util","mapping","fallbackHolder","baseAry","cloneArray","wrapImmutable","cloner","isLib","isObj","cap","curry","fixed","immutable","rearg","defaultHolder","forceCurry","forceFixed","forceRearg","pristine","runInContext","toPath","aryMethodKeys","aryMethod","wrappers","castArray","pair","nthArg","indexes","castCap","iterateeRearg","baseArity","iterateeAry","castFixed","skipFixed","methodSpread","otherArgs","flatSpread","castRearg","skipRearg","methodRearg","aryRearg","cloneByPath","nested","createConverter","realName","aliasToReal","methodName","remap","oldOptions","newUtil","newFunc","newOptions","wrapped","mutate","createCloner","aryKey","otherName","afterRearg","castCurry","realToAlias","createWrap","isMasked","reIsHostCtor","funcProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","getFuncName","lodash","realNames","otherFunc","wrapperClone","reWrapDetails","reSplitDetails","reWrapComment","details","arrayIncludes","wrapFlags","baseIndexOf","baseFindIndex","baseIsNaN","strictIndexOf","fromRight","nativeMin","oldArray","srcBitmask","newBitmask","isCommon","isCombo","toNumber","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","typedArrayTags","assocIndexOf","LARGE_ARRAY_SIZE","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","nativeKeysIn","isProto","allocUnsafe","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","dataView","byteOffset","reFlags","symbolProto","symbolValueOf","typedArray","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","objectCtorString","baseMatches","baseMatchesProperty","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","equalArrays","equalByTag","equalObjects","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","mapToArray","setToArray","objProps","objLength","skipCtor","objCtor","othCtor","isStrictComparable","hasIn","baseGet","memoized","Cache","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","flatRest","overRest","baseFlatten","isFlattenable","spreadableSymbol","webpackContext","req","webpackContextResolve","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","promises","spread","InterceptorManager","dispatchRequest","interceptors","fulfilled","rejected","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","normalizedName","isAxiosError","fileName","columnNumber","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","requestURL","expires","secure","toGMTString","resolvePromise","maintenance"],"mappings":"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","file":"maintenance.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1026);\n","/*!\n * jQuery JavaScript Library v2.2.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:23Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\"use strict\";\nvar arr = [];\n\nvar document = window.document;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"2.2.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\tvar realStringObj = obj && obj.toString();\n\t\treturn !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Not own constructor property must be Object\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj, \"constructor\" ) &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype || {}, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf( \"use strict\" ) === 1 ) {\n\t\t\t\tscript = document.createElement( \"script\" );\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\n\t\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t\t// and removal by using an indirect global eval\n\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\n// JSHint would error on this code due to the Symbol not being defined in ES5.\n// Defining this global in .jshintrc would create a danger of using the global\n// unguarded in another place, it seems safer to just disable JSHint for these\n// three lines.\n/* jshint ignore: start */\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n/* jshint ignore: end */\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, nidselect, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rescape, \"\\\\$&\" );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\tnidselect = ridentifier.test( nid ) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = nidselect + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( (parent = document.defaultView) && parent.top !== parent ) {\n\t\t// Support: IE 11\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( document.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\treturn m ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( (oldCache = uniqueCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"<a href='#'></a>\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"<input/>\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/ );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && ( pos ?\n\t\t\t\t\tpos.index( cur ) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnotwhite = ( /\\S+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ) ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add( function() {\n\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 ||\n\t\t\t\t( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred.\n\t\t\t// If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) )\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n} );\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n} );\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called\n\t\t// after the browser event has already occurred.\n\t\t// Support: IE9-10 only\n\t\t// Older IE sometimes signals \"interactive\" too soon\n\t\tif ( document.readyState === \"complete\" ||\n\t\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\twindow.setTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tregister: function( owner, initial ) {\n\t\tvar value = initial || {};\n\n\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t// use plain assignment\n\t\tif ( owner.nodeType ) {\n\t\t\towner[ this.expando ] = value;\n\n\t\t// Otherwise secure it in a non-enumerable, non-writable property\n\t\t// configurability must be true to allow the property to be\n\t\t// deleted with the delete operator\n\t\t} else {\n\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\tvalue: value,\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true\n\t\t\t} );\n\t\t}\n\t\treturn owner[ this.expando ];\n\t},\n\tcache: function( owner ) {\n\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return an empty object.\n\t\tif ( !acceptData( owner ) ) {\n\t\t\treturn {};\n\t\t}\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\t\t\towner[ this.expando ] && owner[ this.expando ][ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase( key ) );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.register( owner );\n\n\t\t} else {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <= 35-45+\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://code.google.com/p/chromium/issues/detail?id=378607\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data, camelKey;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = dataUser.get( elem, key ) ||\n\n\t\t\t\t\t// Try to find dashed key if it exists (gh-2779)\n\t\t\t\t\t// This is for 2.2.x only\n\t\t\t\t\tdataUser.get( elem, key.replace( rmultiDash, \"-$&\" ).toLowerCase() );\n\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = dataUser.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tcamelKey = jQuery.camelCase( key );\n\t\t\tthis.each( function() {\n\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = dataUser.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdataUser.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf( \"-\" ) > -1 && data !== undefined ) {\n\t\t\t\t\tdataUser.set( this, key, value );\n\t\t\t\t}\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ||\n\t\t\t!jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() { return tween.cur(); } :\n\t\t\tfunction() { return jQuery.css( elem, prop, \"\" ); },\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([\\w:-]+)/ );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE9\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE9-11+\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret = typeof context.getElementsByTagName !== \"undefined\" ?\n\t\t\tcontext.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ?\n\t\t\t\tcontext.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0-4.3, Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE9\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Support (at least): Chrome, IE9\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG <use> instance trees (#13180)\n\t\t//\n\t\t// Support: Firefox<=42+\n\t\t// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)\n\t\tif ( delegateCount && cur.nodeType &&\n\t\t\t( event.type !== \"click\" || isNaN( event.button ) || event.button < 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== \"click\" ) ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matches } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split( \" \" ),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: ( \"button buttons clientX clientY offsetX offsetY pageX pageY \" +\n\t\t\t\"screenX screenY toElement\" ).split( \" \" ),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX +\n\t\t\t\t\t( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -\n\t\t\t\t\t( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY +\n\t\t\t\t\t( doc && doc.scrollTop || body && body.scrollTop || 0 ) -\n\t\t\t\t\t( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// 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://code.google.com/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi,\n\n\t// Support: IE 10-11, Edge 10240+\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName( \"tbody\" )[ 0 ] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement( \"tbody\" ) ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <= 35-45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\n\t// Keep domManip exposed until 3.0 (gh-2225)\n\tdomManip: domManip,\n\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\n\nvar iframe,\n\telemdisplay = {\n\n\t\t// Support: Firefox\n\t\t// We have to pre-define these values for FF (#10227)\n\t\tHTML: \"block\",\n\t\tBODY: \"block\"\n\t};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\tdisplay = jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe || jQuery( \"<iframe frameborder='0' width='0' height='0'/>\" ) )\n\t\t\t\t.appendTo( doc.documentElement );\n\n\t\t\t// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse\n\t\t\tdoc = iframe[ 0 ].contentDocument;\n\n\t\t\t// Support: IE\n\t\t\tdoc.write();\n\t\t\tdoc.close();\n\n\t\t\tdisplay = actualDisplay( nodeName, doc );\n\t\t\tiframe.detach();\n\t\t}\n\n\t\t// Store the correct default display\n\t\telemdisplay[ nodeName ] = display;\n\t}\n\n\treturn display;\n}\nvar rmargin = ( /^margin/ );\n\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE<=11+, Firefox<=30+ (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar documentElement = document.documentElement;\n\n\n\n( function() {\n\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE9-11+\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tcontainer.style.cssText = \"border:0;width:8px;height:0;top:0;left:-9999px;\" +\n\t\t\"padding:0;margin-top:1px;position:absolute\";\n\tcontainer.appendChild( div );\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\t\tdiv.style.cssText =\n\n\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t// Vendor-prefix box-sizing\n\t\t\t\"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;\" +\n\t\t\t\"position:relative;display:block;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"top:1%;width:50%\";\n\t\tdiv.innerHTML = \"\";\n\t\tdocumentElement.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\t\treliableMarginLeftVal = divStyle.marginLeft === \"2px\";\n\t\tboxSizingReliableVal = divStyle.width === \"4px\";\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.marginRight = \"50%\";\n\t\tpixelMarginRightVal = divStyle.marginRight === \"4px\";\n\n\t\tdocumentElement.removeChild( container );\n\t}\n\n\tjQuery.extend( support, {\n\t\tpixelPosition: function() {\n\n\t\t\t// This test is executed only once but we still do memoizing\n\t\t\t// since we can use the boxSizingReliable pre-computing.\n\t\t\t// No need to check if the test was already performed, though.\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\tboxSizingReliable: function() {\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelMarginRight: function() {\n\n\t\t\t// Support: Android 4.0-4.3\n\t\t\t// We're checking for boxSizingReliableVal here instead of pixelMarginRightVal\n\t\t\t// since that compresses better and they're computed together anyway.\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn pixelMarginRightVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\n\t\t\t// Support: IE <=8 only, Android 4.0 - 4.3 only, Firefox <=3 - 37\n\t\t\tif ( boxSizingReliableVal == null ) {\n\t\t\t\tcomputeStyleTests();\n\t\t\t}\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\treliableMarginRight: function() {\n\n\t\t\t// Support: Android 2.3\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\t// This support function is only executed once so no memoizing is needed.\n\t\t\tvar ret,\n\t\t\t\tmarginDiv = div.appendChild( document.createElement( \"div\" ) );\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border; padding\n\t\t\tmarginDiv.style.cssText = div.style.cssText =\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;box-sizing:content-box;\" +\n\t\t\t\t\"display:block;margin:0;border:0;padding:0\";\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\t\t\tdocumentElement.appendChild( container );\n\n\t\t\tret = !parseFloat( window.getComputedStyle( marginDiv ).marginRight );\n\n\t\t\tdocumentElement.removeChild( container );\n\t\t\tdiv.removeChild( marginDiv );\n\n\t\t\treturn ret;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;\n\n\t// Support: Opera 12.1x only\n\t// Fall back to style even without computed\n\t// computed is undefined for elems on document fragments\n\tif ( ( ret === \"\" || ret === undefined ) && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\tret = jQuery.style( elem, name );\n\t}\n\n\t// Support: IE9\n\t// getPropertyValue is only needed for .css('filter') (#12537)\n\tif ( computed ) {\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// http://dev.w3.org/csswg/cssom/#resolved-values\n\t\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE9-11+\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// At this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = dataPriv.get( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = dataPriv.access(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\tdefaultDisplay( elem.nodeName )\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\thidden = isHidden( elem );\n\n\t\t\tif ( display !== \"none\" || !hidden ) {\n\t\t\t\tdataPriv.set(\n\t\t\t\t\telem,\n\t\t\t\t\t\"olddisplay\",\n\t\t\t\t\thidden ? display : jQuery.css( elem, \"display\" )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t\"float\": \"cssFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\t\t\t\t\telem.offsetWidth === 0 ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = extra && getStyles( elem ),\n\t\t\t\tsubtract = extra && augmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ name ] = value;\n\t\t\t\tvalue = jQuery.css( elem, name );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// Support: Android 2.3\njQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn swap( elem, { \"display\": \"inline-block\" },\n\t\t\t\tcurCSS, [ elem, \"marginRight\" ] );\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE9\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back Compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4 ; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\t/* jshint validthis: true */\n\tvar prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHidden( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Handle queue: false promises\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Height/width overflow pass\n\tif ( elem.nodeType === 1 && ( \"height\" in props || \"width\" in props ) ) {\n\n\t\t// Make sure that nothing sneaks out\n\t\t// Record all 3 overflow attributes because IE9-10 do not\n\t\t// change the overflow attribute when overflowX and\n\t\t// overflowY are set to the same value\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Set display property to inline-block for height/width\n\t\t// animations on inline elements that are having width/height animated\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\n\t\t// Test default display if display is currently \"none\"\n\t\tcheckDisplay = display === \"none\" ?\n\t\t\tdataPriv.get( elem, \"olddisplay\" ) || defaultDisplay( elem.nodeName ) : display;\n\n\t\tif ( checkDisplay === \"inline\" && jQuery.css( elem, \"float\" ) === \"none\" ) {\n\t\t\tstyle.display = \"inline-block\";\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// show/hide pass\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.exec( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// If there is dataShow left over from a stopped hide or show\n\t\t\t\t// and we are going to proceed with show, we should pretend to be hidden\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\n\t\t// Any non-fx value stops us from restoring the original display value\n\t\t} else {\n\t\t\tdisplay = undefined;\n\t\t}\n\t}\n\n\tif ( !jQuery.isEmptyObject( orig ) ) {\n\t\tif ( dataShow ) {\n\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\thidden = dataShow.hidden;\n\t\t\t}\n\t\t} else {\n\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", {} );\n\t\t}\n\n\t\t// Store state if its toggle - enables .stop().toggle() to \"reverse\"\n\t\tif ( toggle ) {\n\t\t\tdataShow.hidden = !hidden;\n\t\t}\n\t\tif ( hidden ) {\n\t\t\tjQuery( elem ).show();\n\t\t} else {\n\t\t\tanim.done( function() {\n\t\t\t\tjQuery( elem ).hide();\n\t\t\t} );\n\t\t}\n\t\tanim.done( function() {\n\t\t\tvar prop;\n\n\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\tfor ( prop in orig ) {\n\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t}\n\t\t} );\n\t\tfor ( prop in orig ) {\n\t\t\ttween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\n\t\t\tif ( !( prop in dataShow ) ) {\n\t\t\t\tdataShow[ prop ] = tween.start;\n\t\t\t\tif ( hidden ) {\n\t\t\t\t\ttween.end = tween.start;\n\t\t\t\t\ttween.start = prop === \"width\" || prop === \"height\" ? 1 : 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t// If this is a noop like .hide().hide(), restore an overwritten display value\n\t} else if ( ( display === \"none\" ? defaultDisplay( elem.nodeName ) : display ) === \"inline\" ) {\n\t\tstyle.display = display;\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length ; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length ; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( jQuery.isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tjQuery.proxy( result.stop, result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnotwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length ; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\topt.duration = jQuery.fx.off ? 0 : typeof opt.duration === \"number\" ?\n\t\topt.duration : opt.duration in jQuery.fx.speeds ?\n\t\t\tjQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHidden ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = window.setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\twindow.clearInterval( timerId );\n\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// http://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: iOS<=5.1, Android<=4.2+\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE<=11+\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: Android<=2.3\n\t// Options inside disabled selects are incorrectly marked as disabled\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<=11+\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tjQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle;\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ name ];\n\t\t\tattrHandle[ name ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tname.toLowerCase() :\n\t\t\t\tnull;\n\t\t\tattrHandle[ name ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\t\trclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t\t0 :\n\t\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\nvar rclass = /[\\t\\r\\n\\f]/g;\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tif ( typeof value === \"string\" && value ) {\n\t\t\tclasses = value.match( rnotwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 &&\n\t\t\t\t\t( \" \" + curValue + \" \" ).replace( rclass, \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = jQuery.trim( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( type === \"string\" ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = value.match( rnotwhite ) || [];\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + getClass( elem ) + \" \" ).replace( rclass, \" \" )\n\t\t\t\t\t.indexOf( className ) > -1\n\t\t\t) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g,\n\trspaces = /[\\x20\\t\\r\\n\\f]+/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\n\t\t\t\t\t// Handle most common string cases\n\t\t\t\t\tret.replace( rreturn, \"\" ) :\n\n\t\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE10-11+\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tjQuery.trim( jQuery.text( elem ) ).replace( rspaces, \" \" );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( support.optDisabled ?\n\t\t\t\t\t\t\t\t!option.disabled : option.getAttribute( \"disabled\" ) === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout load resize scroll unload click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup error contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\n// Support: Firefox\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, Safari\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://code.google.com/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = jQuery.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Support: Android 2.3\n// Workaround failure to string-cast null input\njQuery.parseJSON = function( data ) {\n\treturn JSON.parse( data + \"\" );\n};\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE9\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trhash = /#.*$/,\n\trts = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": jQuery.parseJSON,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// The jqXHR state\n\t\t\tstate = 0,\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( state === 2 ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn state === 2 ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tvar lname = name.toLowerCase();\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\tname = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( !state ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\t\t\tfor ( code in map ) {\n\n\t\t\t\t\t\t\t\t// Lazy-add the new callback in a way that preserves old ones\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR ).complete = completeDeferred.add;\n\t\tjqXHR.success = jqXHR.done;\n\t\tjqXHR.error = jqXHR.fail;\n\n\t\t// Remove hash character (#7531: and string promotion)\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" ).replace( rhash, \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = jQuery.trim( s.dataType || \"*\" ).toLowerCase().match( rnotwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE8-11+\n\t\t\t// IE throws exception if url is malformed, e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE8-11+\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( state === 2 ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\tcacheURL = s.url;\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL = ( s.url += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data );\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add anti-cache in url if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\ts.url = rts.test( cacheURL ) ?\n\n\t\t\t\t\t// If there is already a '_' parameter, set its value\n\t\t\t\t\tcacheURL.replace( rts, \"$1_=\" + nonce++ ) :\n\n\t\t\t\t\t// Otherwise add one to the end\n\t\t\t\t\tcacheURL + ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + nonce++;\n\t\t\t}\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tfor ( i in { success: 1, error: 1, complete: 1 } ) {\n\t\t\tjqXHR[ i ]( s[ i ] );\n\t\t}\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tstate = 1;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Propagate exception as error if not done\n\t\t\t\tif ( state < 2 ) {\n\t\t\t\t\tdone( -1, e );\n\n\t\t\t\t// Simply rethrow otherwise\n\t\t\t\t} else {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Called once\n\t\t\tif ( state === 2 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// State is \"done\" now\n\t\t\tstate = 2;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapAll( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( this[ 0 ] ) {\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each( function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t} ).end();\n\t}\n} );\n\n\njQuery.expr.filters.hidden = function( elem ) {\n\treturn !jQuery.expr.filters.visible( elem );\n};\njQuery.expr.filters.visible = function( elem ) {\n\n\t// Support: Opera <= 12.12\n\t// Opera reports offsetWidths and offsetHeights less than zero on some elements\n\t// Use OR instead of AND as the element is not visible if either is true\n\t// See tickets #10406 and #13132\n\treturn elem.offsetWidth > 0 || elem.offsetHeight > 0 || elem.getClientRects().length > 0;\n};\n\n\n\n\nvar r20 = /%20/g,\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && jQuery.type( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, value ) {\n\n\t\t\t// If value is a function, invoke it and return its value\n\t\t\tvalue = jQuery.isFunction( value ) ? value() : ( value == null ? \"\" : value );\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" + encodeURIComponent( value );\n\t\t};\n\n\t// Set traditional to true for jQuery <= 1.3.2 behavior.\n\tif ( traditional === undefined ) {\n\t\ttraditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" ).replace( r20, \"+\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\treturn val == null ?\n\t\t\t\tnull :\n\t\t\t\tjQuery.isArray( val ) ?\n\t\t\t\t\tjQuery.map( val, function( val ) {\n\t\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t\t} ) :\n\t\t\t\t\t{ name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE9\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE9\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = callback( \"error\" );\n\n\t\t\t\t// Support: IE9\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\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\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\tcontext = context || document;\n\n\tvar parsed = rsingleTag.exec( data ),\n\t\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n// Keep a copy of the old load method\nvar _load = jQuery.fn.load;\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tif ( typeof url !== \"string\" && _load ) {\n\t\treturn _load.apply( this, arguments );\n\t}\n\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = jQuery.trim( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.filters.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\toffset: function( options ) {\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar docElem, win,\n\t\t\telem = this[ 0 ],\n\t\t\tbox = { top: 0, left: 0 },\n\t\t\tdoc = elem && elem.ownerDocument;\n\n\t\tif ( !doc ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdocElem = doc.documentElement;\n\n\t\t// Make sure it's not a disconnected DOM node\n\t\tif ( !jQuery.contains( docElem, elem ) ) {\n\t\t\treturn box;\n\t\t}\n\n\t\tbox = elem.getBoundingClientRect();\n\t\twin = getWindow( doc );\n\t\treturn {\n\t\t\ttop: box.top + win.pageYOffset - docElem.clientTop,\n\t\t\tleft: box.left + win.pageXOffset - docElem.clientLeft\n\t\t};\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n\t\t// because it is its only offset parent\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], \"html\" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset.top += jQuery.css( offsetParent[ 0 ], \"borderTopWidth\", true );\n\t\t\tparentOffset.left += jQuery.css( offsetParent[ 0 ], \"borderLeftWidth\", true );\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari<7-8+, Chrome<37-44+\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://code.google.com/p/chromium/issues/detail?id=229280\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\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there\n\t\t\t\t\t// isn't a whole lot we can do. See pull request at this URL for discussion:\n\t\t\t\t\t// https://github.com/jquery/jquery/pull/764\n\t\t\t\t\treturn elem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable, null );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\tsize: function() {\n\t\treturn this.length;\n\t}\n} );\n\njQuery.fn.andSelf = jQuery.fn.addBack;\n\n\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\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\nreturn jQuery;\n}));\n","//! moment.js\n//! version : 2.26.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n 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\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\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\n return false;\n };\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 =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; 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(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\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(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\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 (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|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(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n 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\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 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\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\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(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\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\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\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\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\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\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n 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\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, 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\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\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\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\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\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\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\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\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\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\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\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n 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\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\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\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\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\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 (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\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 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\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(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\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(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\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\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // 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 = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n 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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\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(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n 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(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 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\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\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\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // 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\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[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(\n string.indexOf(parsedInput) + parsedInput.length\n );\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 =\n 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 (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\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\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n 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\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\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\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\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + 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\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // 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 (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\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 (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\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 =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\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(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // 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\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !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 (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\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 (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\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 (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 =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\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; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\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\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\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)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\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\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n 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\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\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(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 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 +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n 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\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\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\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\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\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\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\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\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\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\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\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\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\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\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\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.startOf('day').valueOf();\n\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\n return '';\n }\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.startOf('day').valueOf();\n\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\n return '';\n }\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.startOf('day').valueOf();\n\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\n return '';\n }\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.startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\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\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\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(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\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\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n 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(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n 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\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\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\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n 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 (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\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 (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n 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\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // 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\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 =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\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\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n 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\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\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\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\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.26.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","import * as allExports from './index.js';\nimport { mixin } from './index.js';\n\n// Add all of the Underscore functions to the wrapper object.\nvar _ = mixin(allExports);\n// Legacy Node.js API\n_._ = _;\n// Export the Underscore API.\nexport default _;\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport $ from 'jquery'\n\nconst loadedScripts = {}\nconst loadedStyles = []\n\n/**\n * Load a script for the server and load it. If the script is already loaded,\n * the event handler will be called directly\n * @param {string} app the app id to which the script belongs\n * @param {string} script the filename of the script\n * @param {Function} ready event handler to be called when the script is loaded\n * @returns {jQuery.Deferred}\n * @deprecated 16.0.0 Use OCP.Loader.loadScript\n */\nexport const addScript = (app, script, ready) => {\n\tconsole.warn('OC.addScript is deprecated, use OCP.Loader.loadScript instead')\n\n\tlet deferred\n\tconst path = OC.filePath(app, 'js', script + '.js')\n\tif (!loadedScripts[path]) {\n\t\tdeferred = $.Deferred()\n\t\t$.getScript(path, () => deferred.resolve())\n\t\tloadedScripts[path] = deferred\n\t} else {\n\t\tif (ready) {\n\t\t\tready()\n\t\t}\n\t}\n\treturn loadedScripts[path]\n}\n\n/**\n * Loads a CSS file\n * @param {string} app the app id to which the css style belongs\n * @param {string} style the filename of the css file\n * @deprecated 16.0.0 Use OCP.Loader.loadStylesheet\n */\nexport const addStyle = (app, style) => {\n\tconsole.warn('OC.addStyle is deprecated, use OCP.Loader.loadStylesheet instead')\n\n\tconst path = OC.filePath(app, 'css', style + '.css')\n\tif (loadedStyles.indexOf(path) === -1) {\n\t\tloadedStyles.push(path)\n\t\tif (document.createStyleSheet) {\n\t\t\tdocument.createStyleSheet(path)\n\t\t} else {\n\t\t\tstyle = $('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + path + '\"/>')\n\t\t\t$('head').append(style)\n\t\t}\n\t}\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\nimport { showMessage } from '@nextcloud/dialogs'\n\n/**\n * @todo Write documentation\n * @deprecated 17.0.0 use the `@nextcloud/dialogs` package instead\n * @namespace OC.Notification\n */\nexport default {\n\n\tupdatableNotification: null,\n\n\tgetDefaultNotificationFunction: null,\n\n\t/**\n\t * @param {Function} callback callback function\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tsetDefault: function(callback) {\n\t\tthis.getDefaultNotificationFunction = callback\n\t},\n\n\t/**\n\t * Hides a notification.\n\t *\n\t * If a row is given, only hide that one.\n\t * If no row is given, hide all notifications.\n\t *\n\t * @param {jQuery} [$row] notification row\n\t * @param {Function} [callback] callback\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\thide: function($row, callback) {\n\t\tif (_.isFunction($row)) {\n\t\t\t// first arg is the callback\n\t\t\tcallback = $row\n\t\t\t$row = undefined\n\t\t}\n\n\t\tif (!$row) {\n\t\t\tconsole.error('Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification')\n\t\t\treturn\n\t\t}\n\n\t\t// remove the row directly\n\t\t$row.each(function() {\n\t\t\tif ($(this)[0].toastify) {\n\t\t\t\t$(this)[0].toastify.hideToast()\n\t\t\t} else {\n\t\t\t\tconsole.error('cannot hide toast because object is not set')\n\t\t\t}\n\t\t\tif (this === this.updatableNotification) {\n\t\t\t\tthis.updatableNotification = null\n\t\t\t}\n\t\t})\n\t\tif (callback) {\n\t\t\tcallback.call()\n\t\t}\n\t\tif (this.getDefaultNotificationFunction) {\n\t\t\tthis.getDefaultNotificationFunction()\n\t\t}\n\t},\n\n\t/**\n\t * Shows a notification as HTML without being sanitized before.\n\t * If you pass unsanitized user input this may lead to a XSS vulnerability.\n\t * Consider using show() instead of showHTML()\n\t *\n\t * @param {string} html Message to display\n\t * @param {Object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {int} [options.timeout=0] timeout value, defaults to 0 (permanent)\n\t * @returns {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowHtml: function(html, options) {\n\t\toptions = options || {}\n\t\toptions.isHTML = true\n\t\toptions.timeout = (!options.timeout) ? -1 : options.timeout\n\t\tconst toast = showMessage(html, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Shows a sanitized notification\n\t *\n\t * @param {string} text Message to display\n\t * @param {Object} [options] options\n\t * @param {string} [options.type] notification type\n\t * @param {int} [options.timeout=0] timeout value, defaults to 0 (permanent)\n\t * @returns {jQuery} jQuery element for notification row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshow: function(text, options) {\n\t\toptions = options || {}\n\t\toptions.timeout = (!options.timeout) ? -1 : options.timeout\n\t\tconst toast = showMessage(text, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Updates (replaces) a sanitized notification.\n\t *\n\t * @param {string} text Message to display\n\t * @returns {jQuery} JQuery element for notificaiton row\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowUpdate: function(text) {\n\t\tif (this.updatableNotification) {\n\t\t\tthis.updatableNotification.hideToast()\n\t\t}\n\t\tthis.updatableNotification = showMessage(text, { timeout: -1 })\n\t\tthis.updatableNotification.toastElement.toastify = this.updatableNotification\n\t\treturn $(this.updatableNotification.toastElement)\n\t},\n\n\t/**\n\t * Shows a notification that disappears after x seconds, default is\n\t * 7 seconds\n\t *\n\t * @param {string} text Message to show\n\t * @param {array} [options] options array\n\t * @param {int} [options.timeout=7] timeout in seconds, if this is 0 it will show the message permanently\n\t * @param {boolean} [options.isHTML=false] an indicator for HTML notifications (true) or text (false)\n\t * @param {string} [options.type] notification type\n\t * @returns {JQuery<any>} the toast element\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tshowTemporary: function(text, options) {\n\t\toptions = options || {}\n\t\toptions.timeout = options.timeout || 7\n\t\tconst toast = showMessage(text, options)\n\t\ttoast.toastElement.toastify = toast\n\t\treturn $(toast.toastElement)\n\t},\n\n\t/**\n\t * Returns whether a notification is hidden.\n\t * @returns {boolean}\n\t * @deprecated 17.0.0 use the `@nextcloud/dialogs` package\n\t */\n\tisHidden: function() {\n\t\treturn !$('#content').find('.toastify').length\n\t},\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\n\nimport OC from './index'\nimport Notification from './notification'\n\n/**\n * Warn users that the connection to the server was lost temporarily\n *\n * This function is throttled to prevent stacked notfications.\n * After 7sec the first notification is gone, then we can show another one\n * if necessary.\n */\nexport const ajaxConnectionLostHandler = _.throttle(() => {\n\tNotification.showTemporary(t('core', 'Connection to server lost'))\n}, 7 * 1000, { trailing: false })\n\n/**\n * Process ajax error, redirects to main page\n * if an error/auth error status was returned.\n * @param {XMLHttpRequest} xhr xhr request\n */\nexport const processAjaxError = xhr => {\n\t// purposefully aborted request ?\n\t// OC._userIsNavigatingAway needed to distinguish ajax calls cancelled by navigating away\n\t// from calls cancelled by failed cross-domain ajax due to SSO redirect\n\tif (xhr.status === 0 && (xhr.statusText === 'abort' || xhr.statusText === 'timeout' || OC._reloadCalled)) {\n\t\treturn\n\t}\n\n\tif (_.contains([302, 303, 307, 401], xhr.status) && OC.currentUser) {\n\t\t// sometimes \"beforeunload\" happens later, so need to defer the reload a bit\n\t\tsetTimeout(function() {\n\t\t\tif (!OC._userIsNavigatingAway && !OC._reloadCalled) {\n\t\t\t\tlet timer = 0\n\t\t\t\tconst seconds = 5\n\t\t\t\tconst interval = setInterval(function() {\n\t\t\t\t\tNotification.showUpdate(n('core', 'Problem loading page, reloading in %n second', 'Problem loading page, reloading in %n seconds', seconds - timer))\n\t\t\t\t\tif (timer >= seconds) {\n\t\t\t\t\t\tclearInterval(interval)\n\t\t\t\t\t\tOC.reload()\n\t\t\t\t\t}\n\t\t\t\t\ttimer++\n\t\t\t\t}, 1000 // 1 second interval\n\t\t\t\t)\n\n\t\t\t\t// only call reload once\n\t\t\t\tOC._reloadCalled = true\n\t\t\t}\n\t\t}, 100)\n\t} else if (xhr.status === 0) {\n\t\t// Connection lost (e.g. WiFi disconnected or server is down)\n\t\tsetTimeout(function() {\n\t\t\tif (!OC._userIsNavigatingAway && !OC._reloadCalled) {\n\t\t\t\t// TODO: call method above directly\n\t\t\t\tOC._ajaxConnectionLostHandler()\n\t\t\t}\n\t\t}, 100)\n\t}\n}\n\n/**\n * Registers XmlHttpRequest object for global error processing.\n *\n * This means that if this XHR object returns 401 or session timeout errors,\n * the current page will automatically be reloaded.\n *\n * @param {XMLHttpRequest} xhr xhr request\n */\nexport const registerXHRForErrorProcessing = xhr => {\n\tconst loadCallback = () => {\n\t\tif (xhr.readyState !== 4) {\n\t\t\treturn\n\t\t}\n\n\t\tif ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304) {\n\t\t\treturn\n\t\t}\n\n\t\t// fire jquery global ajax error handler\n\t\t$(document).trigger(new $.Event('ajaxError'), xhr)\n\t}\n\n\tconst errorCallback = () => {\n\t\t// fire jquery global ajax error handler\n\t\t$(document).trigger(new $.Event('ajaxError'), xhr)\n\t}\n\n\tif (xhr.addEventListener) {\n\t\txhr.addEventListener('load', loadCallback)\n\t\txhr.addEventListener('error', errorCallback)\n\t}\n\n}\n","/* eslint-disable */\n/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n import { getValue, setValue, getApps, getKeys, deleteKey } from '../OCP/appconfig'\n\nexport const appConfig = window.oc_appconfig || {}\n\n/**\n * @namespace\n * @deprecated 16.0.0 Use OCP.AppConfig instead\n */\nexport const AppConfig = {\n\t/**\n\t * @deprecated Use OCP.AppConfig.getValue() instead\n\t */\n\tgetValue: function(app, key, defaultValue, callback) {\n\t\tgetValue(app, key, defaultValue, {\n\t\t\tsuccess: callback\n\t\t})\n\t},\n\n\t/**\n\t * @deprecated Use OCP.AppConfig.setValue() instead\n\t */\n\tsetValue: function(app, key, value) {\n\t\tsetValue(app, key, value)\n\t},\n\n\t/**\n\t * @deprecated Use OCP.AppConfig.getApps() instead\n\t */\n\tgetApps: function(callback) {\n\t\tgetApps({\n\t\t\tsuccess: callback\n\t\t})\n\t},\n\n\t/**\n\t * @deprecated Use OCP.AppConfig.getKeys() instead\n\t */\n\tgetKeys: function(app, callback) {\n\t\tgetKeys(app, {\n\t\t\tsuccess: callback\n\t\t})\n\t},\n\n\t/**\n\t * @deprecated Use OCP.AppConfig.deleteKey() instead\n\t */\n\tdeleteKey: function(app, key) {\n\t\tdeleteKey(app, key)\n\t}\n\n}\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nconst appswebroots = (window._oc_appswebroots !== undefined) ? window._oc_appswebroots : false\n\nexport default appswebroots\n","/* eslint-disable */\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/**\n * Webdav transport for Backbone.\n *\n * This makes it possible to use Webdav endpoints when\n * working with Backbone models and collections.\n *\n * Requires the davclient.js library.\n *\n * Usage example:\n *\n * var PersonModel = OC.Backbone.Model.extend({\n * // make it use the DAV transport\n * sync: OC.Backbone.davSync,\n *\n * // DAV properties mapping\n * davProperties: {\n * 'id': '{http://example.com/ns}id',\n * 'firstName': '{http://example.com/ns}first-name',\n * 'lastName': '{http://example.com/ns}last-name',\n * 'age': '{http://example.com/ns}age'\n * },\n *\n * // additional parsing, if needed\n * parse: function(props) {\n * // additional parsing (DAV property values are always strings)\n * props.age = parseInt(props.age, 10);\n * return props;\n * }\n * });\n *\n * var PersonCollection = OC.Backbone.Collection.extend({\n * // make it use the DAV transport\n * sync: OC.Backbone.davSync,\n *\n * // use person model\n * // note that davProperties will be inherited\n * model: PersonModel,\n *\n * // DAV collection URL\n * url: function() {\n * return OC.linkToRemote('dav') + '/person/';\n * },\n * });\n */\n\nimport _ from 'underscore'\nimport dav from 'davclient.js'\n\nconst methodMap = {\n\tcreate: 'POST',\n\tupdate: 'PROPPATCH',\n\tpatch: 'PROPPATCH',\n\tdelete: 'DELETE',\n\tread: 'PROPFIND'\n}\n\n// Throw an error when a URL is needed, and none is supplied.\nfunction urlError() {\n\tthrow new Error('A \"url\" property or function must be specified')\n}\n\n/**\n * Convert a single propfind result to JSON\n *\n * @param {Object} result\n * @param {Object} davProperties properties mapping\n */\nfunction parsePropFindResult(result, davProperties) {\n\tif (_.isArray(result)) {\n\t\treturn _.map(result, function(subResult) {\n\t\t\treturn parsePropFindResult(subResult, davProperties)\n\t\t})\n\t}\n\tvar props = {\n\t\thref: result.href\n\t}\n\n\t_.each(result.propStat, function(propStat) {\n\t\tif (propStat.status !== 'HTTP/1.1 200 OK') {\n\t\t\treturn\n\t\t}\n\n\t\tfor (var key in propStat.properties) {\n\t\t\tvar propKey = key\n\t\t\tif (key in davProperties) {\n\t\t\t\tpropKey = davProperties[key]\n\t\t\t}\n\t\t\tprops[propKey] = propStat.properties[key]\n\t\t}\n\t})\n\n\tif (!props.id) {\n\t\t// parse id from href\n\t\tprops.id = parseIdFromLocation(props.href)\n\t}\n\n\treturn props\n}\n\n/**\n * Parse ID from location\n *\n * @param {string} url url\n * @returns {string} id\n */\nfunction parseIdFromLocation(url) {\n\tvar queryPos = url.indexOf('?')\n\tif (queryPos > 0) {\n\t\turl = url.substr(0, queryPos)\n\t}\n\n\tvar parts = url.split('/')\n\tvar result\n\tdo {\n\t\tresult = parts[parts.length - 1]\n\t\tparts.pop()\n\t\t// note: first result can be empty when there is a trailing slash,\n\t\t// so we take the part before that\n\t} while (!result && parts.length > 0)\n\n\treturn result\n}\n\nfunction isSuccessStatus(status) {\n\treturn status >= 200 && status <= 299\n}\n\nfunction convertModelAttributesToDavProperties(attrs, davProperties) {\n\tvar props = {}\n\tvar key\n\tfor (key in attrs) {\n\t\tvar changedProp = davProperties[key]\n\t\tvar value = attrs[key]\n\t\tif (!changedProp) {\n\t\t\tconsole.warn('No matching DAV property for property \"' + key)\n\t\t\tchangedProp = key\n\t\t}\n\t\tif (_.isBoolean(value) || _.isNumber(value)) {\n\t\t\t// convert to string\n\t\t\tvalue = '' + value\n\t\t}\n\t\tprops[changedProp] = value\n\t}\n\treturn props\n}\n\nfunction callPropFind(client, options, model, headers) {\n\treturn client.propFind(\n\t\toptions.url,\n\t\t_.values(options.davProperties) || [],\n\t\toptions.depth,\n\t\theaders\n\t).then(function(response) {\n\t\tif (isSuccessStatus(response.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\tvar propsMapping = _.invert(options.davProperties)\n\t\t\t\tvar results = parsePropFindResult(response.body, propsMapping)\n\t\t\t\tif (options.depth > 0) {\n\t\t\t\t\t// discard root entry\n\t\t\t\t\tresults.shift()\n\t\t\t\t}\n\n\t\t\t\toptions.success(results)\n\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(response)\n\t\t}\n\t})\n}\n\nfunction callPropPatch(client, options, model, headers) {\n\treturn client.propPatch(\n\t\toptions.url,\n\t\tconvertModelAttributesToDavProperties(model.changed, options.davProperties),\n\t\theaders\n\t).then(function(result) {\n\t\tif (isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return the updated model\n\t\t\t\toptions.success(model.toJSON())\n\t\t\t}\n\t\t} else if (_.isFunction(options.error)) {\n\t\t\toptions.error(result)\n\t\t}\n\t})\n\n}\n\nfunction callMkCol(client, options, model, headers) {\n\t// call MKCOL without data, followed by PROPPATCH\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\tnull\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tcallPropPatch(client, options, model, headers)\n\t})\n}\n\nfunction callMethod(client, options, model, headers) {\n\theaders['Content-Type'] = 'application/json'\n\treturn client.request(\n\t\toptions.type,\n\t\toptions.url,\n\t\theaders,\n\t\toptions.data\n\t).then(function(result) {\n\t\tif (!isSuccessStatus(result.status)) {\n\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\toptions.error(result)\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tif (_.isFunction(options.success)) {\n\t\t\tif (options.type === 'PUT' || options.type === 'POST' || options.type === 'MKCOL') {\n\t\t\t\t// pass the object's own values because the server\n\t\t\t\t// does not return anything\n\t\t\t\tvar responseJson = result.body || model.toJSON()\n\t\t\t\tvar locationHeader = result.xhr.getResponseHeader('Content-Location')\n\t\t\t\tif (options.type === 'POST' && locationHeader) {\n\t\t\t\t\tresponseJson.id = parseIdFromLocation(locationHeader)\n\t\t\t\t}\n\t\t\t\toptions.success(responseJson)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// if multi-status, parse\n\t\t\tif (result.status === 207) {\n\t\t\t\tvar propsMapping = _.invert(options.davProperties)\n\t\t\t\toptions.success(parsePropFindResult(result.body, propsMapping))\n\t\t\t} else {\n\t\t\t\toptions.success(result.body)\n\t\t\t}\n\t\t}\n\t})\n}\n\nexport const davCall = (options, model) => {\n\tvar client = new dav.Client({\n\t\tbaseUrl: options.url,\n\t\txmlNamespaces: _.extend({\n\t\t\t'DAV:': 'd',\n\t\t\t'http://owncloud.org/ns': 'oc'\n\t\t}, options.xmlNamespaces || {})\n\t})\n\tclient.resolveUrl = function() {\n\t\treturn options.url\n\t}\n\tvar headers = _.extend({\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t'requesttoken': OC.requestToken\n\t}, options.headers)\n\tif (options.type === 'PROPFIND') {\n\t\treturn callPropFind(client, options, model, headers)\n\t} else if (options.type === 'PROPPATCH') {\n\t\treturn callPropPatch(client, options, model, headers)\n\t} else if (options.type === 'MKCOL') {\n\t\treturn callMkCol(client, options, model, headers)\n\t} else {\n\t\treturn callMethod(client, options, model, headers)\n\t}\n}\n\n/**\n * DAV transport\n */\nexport const davSync = Backbone => (method, model, options) => {\n\tvar params = { type: methodMap[method] || method }\n\tvar isCollection = (model instanceof Backbone.Collection)\n\n\tif (method === 'update') {\n\t\t// if a model has an inner collection, it must define an\n\t\t// attribute \"hasInnerCollection\" that evaluates to true\n\t\tif (model.hasInnerCollection) {\n\t\t\t// if the model itself is a Webdav collection, use MKCOL\n\t\t\tparams.type = 'MKCOL'\n\t\t} else if (model.usePUT || (model.collection && model.collection.usePUT)) {\n\t\t\t// use PUT instead of PROPPATCH\n\t\t\tparams.type = 'PUT'\n\t\t}\n\t}\n\n\t// Ensure that we have a URL.\n\tif (!options.url) {\n\t\tparams.url = _.result(model, 'url') || urlError()\n\t}\n\n\t// Ensure that we have the appropriate request data.\n\tif (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n\t\tparams.data = JSON.stringify(options.attrs || model.toJSON(options))\n\t}\n\n\t// Don't process data on a non-GET request.\n\tif (params.type !== 'PROPFIND') {\n\t\tparams.processData = false\n\t}\n\n\tif (params.type === 'PROPFIND' || params.type === 'PROPPATCH') {\n\t\tvar davProperties = model.davProperties\n\t\tif (!davProperties && model.model) {\n\t\t\t// use dav properties from model in case of collection\n\t\t\tdavProperties = model.model.prototype.davProperties\n\t\t}\n\t\tif (davProperties) {\n\t\t\tif (_.isFunction(davProperties)) {\n\t\t\t\tparams.davProperties = davProperties.call(model)\n\t\t\t} else {\n\t\t\t\tparams.davProperties = davProperties\n\t\t\t}\n\t\t}\n\n\t\tparams.davProperties = _.extend(params.davProperties || {}, options.davProperties)\n\n\t\tif (_.isUndefined(options.depth)) {\n\t\t\tif (isCollection) {\n\t\t\t\toptions.depth = 1\n\t\t\t} else {\n\t\t\t\toptions.depth = 0\n\t\t\t}\n\t\t}\n\t}\n\n\t// Pass along `textStatus` and `errorThrown` from jQuery.\n\tvar error = options.error\n\toptions.error = function(xhr, textStatus, errorThrown) {\n\t\toptions.textStatus = textStatus\n\t\toptions.errorThrown = errorThrown\n\t\tif (error) {\n\t\t\terror.call(options.context, xhr, textStatus, errorThrown)\n\t\t}\n\t}\n\n\t// Make the request, allowing the user to override any Ajax options.\n\tvar xhr = options.xhr = Backbone.davCall(_.extend(params, options), model)\n\tmodel.trigger('request', model, xhr, options)\n\treturn xhr\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport VendorBackbone from 'backbone'\nimport { davCall, davSync } from './backbone-webdav'\n\nconst Backbone = VendorBackbone.noConflict()\n\n// Patch Backbone for DAV\nObject.assign(Backbone, {\n\tdavCall,\n\tdavSync: davSync(Backbone),\n})\n\nexport default Backbone\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nconst config = window._oc_config || {}\n\nexport default config\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\nexport const getCurrentUser = () => {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","/* eslint-disable */\n/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author Gary Kim <gary@garykim.dev>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\n\nimport OC from './index'\nimport OCA from '../OCA/index'\n\n/**\n * this class to ease the usage of jquery dialogs\n */\nconst Dialogs = {\n\t// dialog button types\n\tYES_NO_BUTTONS: 70,\n\tOK_BUTTONS: 71,\n\n\tFILEPICKER_TYPE_CHOOSE: 1,\n\tFILEPICKER_TYPE_MOVE: 2,\n\tFILEPICKER_TYPE_COPY: 3,\n\tFILEPICKER_TYPE_COPY_MOVE: 4,\n\tFILEPICKER_TYPE_CUSTOM: 5,\n\n\t// used to name each dialog\n\tdialogsCounter: 0,\n\n\t/**\n\t * displays alert dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t */\n\talert: function(text, title, callback, modal) {\n\t\tthis.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'alert',\n\t\t\tDialogs.OK_BUTTON,\n\t\t\tcallback,\n\t\t\tmodal\n\t\t)\n\t},\n\t/**\n\t * displays info dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses OK\n\t * @param {boolean} [modal] make the dialog modal\n\t */\n\tinfo: function(text, title, callback, modal) {\n\t\tthis.message(text, title, 'info', Dialogs.OK_BUTTON, callback, modal)\n\t},\n\n\t/**\n\t * displays confirmation dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @returns {Promise}\n\t */\n\tconfirm: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {{type: Int, confirm: String, cancel: String, confirmClasses: String}} buttons text content of buttons\n\t * @param {function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @returns {Promise}\n\t */\n\tconfirmDestructive: function(text, title, buttons, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'none',\n\t\t\tbuttons,\n\t\t\tcallback,\n\t\t\tmodal\n\t\t)\n\t},\n\t/**\n\t * displays confirmation dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @returns {Promise}\n\t */\n\tconfirmHtml: function(text, title, callback, modal) {\n\t\treturn this.message(\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\t'notice',\n\t\t\tDialogs.YES_NO_BUTTONS,\n\t\t\tcallback,\n\t\t\tmodal,\n\t\t\ttrue\n\t\t)\n\t},\n\t/**\n\t * displays prompt dialog\n\t * @param {string} text content of dialog\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses OK (true or false would be passed to callback respectively)\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} name name of the input field\n\t * @param {boolean} password whether the input should be a password input\n\t * @returns {Promise}\n\t */\n\tprompt: function(text, title, callback, modal, name, password) {\n\t\treturn $.when(this._getMessageTemplate()).then(function($tmpl) {\n\t\t\tvar dialogName = 'oc-dialog-' + Dialogs.dialogsCounter + '-content'\n\t\t\tvar dialogId = '#' + dialogName\n\t\t\tvar $dlg = $tmpl.octemplate({\n\t\t\t\tdialog_name: dialogName,\n\t\t\t\ttitle: title,\n\t\t\t\tmessage: text,\n\t\t\t\ttype: 'notice'\n\t\t\t})\n\t\t\tvar input = $('<input/>')\n\t\t\tinput.attr('type', password ? 'password' : 'text').attr('id', dialogName + '-input').attr('placeholder', name)\n\t\t\tvar label = $('<label/>').attr('for', dialogName + '-input').text(name + ': ')\n\t\t\t$dlg.append(label)\n\t\t\t$dlg.append(input)\n\t\t\tif (modal === undefined) {\n\t\t\t\tmodal = false\n\t\t\t}\n\t\t\t$('body').append($dlg)\n\n\t\t\t// wrap callback in _.once():\n\t\t\t// only call callback once and not twice (button handler and close\n\t\t\t// event) but call it for the close event, if ESC or the x is hit\n\t\t\tif (callback !== undefined) {\n\t\t\t\tcallback = _.once(callback)\n\t\t\t}\n\n\t\t\tvar buttonlist = [{\n\t\t\t\ttext: t('core', 'No'),\n\t\t\t\tclick: function() {\n\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t// eslint-disable-next-line standard/no-callback-literal\n\t\t\t\t\t\tcallback(false, input.val())\n\t\t\t\t\t}\n\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\ttext: t('core', 'Yes'),\n\t\t\t\tclick: function() {\n\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t// eslint-disable-next-line standard/no-callback-literal\n\t\t\t\t\t\tcallback(true, input.val())\n\t\t\t\t\t}\n\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t},\n\t\t\t\tdefaultButton: true\n\t\t\t}]\n\n\t\t\t$(dialogId).ocdialog({\n\t\t\t\tcloseOnEscape: true,\n\t\t\t\tmodal: modal,\n\t\t\t\tbuttons: buttonlist,\n\t\t\t\tclose: function() {\n\t\t\t\t\t// callback is already fired if Yes/No is clicked directly\n\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t// eslint-disable-next-line standard/no-callback-literal\n\t\t\t\t\t\tcallback(false, input.val())\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tinput.focus()\n\t\t\tDialogs.dialogsCounter++\n\t\t})\n\t},\n\t/**\n\t * show a file picker to pick a file from\n\t *\n\t * In order to pick several types of mime types they need to be passed as an\n\t * array of strings.\n\t *\n\t * When no mime type filter is given only files can be selected. In order to\n\t * be able to select both files and folders \"['*', 'httpd/unix-directory']\"\n\t * should be used instead.\n\t *\n\t * @param {string} title dialog title\n\t * @param {function} callback which will be triggered when user presses Choose\n\t * @param {boolean} [multiselect] whether it should be possible to select multiple files\n\t * @param {string[]} [mimetypeFilter] mimetype to filter by - directories will always be included\n\t * @param {boolean} [modal] make the dialog modal\n\t * @param {string} [type] Type of file picker : Choose, copy, move, copy and move\n\t * @param {string} [path] path to the folder that the the file can be picket from\n\t * @param {Object} [options] additonal options that need to be set\n\t */\n\tfilepicker: function(title, callback, multiselect, mimetypeFilter, modal, type, path, options) {\n\t\tvar self = this\n\n\t\tthis.filepicker.sortField = 'name'\n\t\tthis.filepicker.sortOrder = 'asc'\n\t\t// avoid opening the picker twice\n\t\tif (this.filepicker.loading) {\n\t\t\treturn\n\t\t}\n\n\t\tif (type === undefined) {\n\t\t\ttype = this.FILEPICKER_TYPE_CHOOSE\n\t\t}\n\n\t\tvar emptyText = t('core', 'No files in here')\n\t\tvar newText = t('files', 'New folder')\n\t\tif (type === this.FILEPICKER_TYPE_COPY || type === this.FILEPICKER_TYPE_MOVE || type === this.FILEPICKER_TYPE_COPY_MOVE) {\n\t\t\temptyText = t('core', 'No more subfolders in here')\n\t\t}\n\n\t\tthis.filepicker.loading = true\n\t\tthis.filepicker.filesClient = (OCA.Sharing && OCA.Sharing.PublicApp && OCA.Sharing.PublicApp.fileList) ? OCA.Sharing.PublicApp.fileList.filesClient : OC.Files.getClient()\n\n\t\tthis.filelist = null\n\t\tpath = path || ''\n\t\toptions = Object.assign({\n\t\t\tallowDirectoryChooser: false\n\t\t}, options)\n\n\t\t$.when(this._getFilePickerTemplate()).then(function($tmpl) {\n\t\t\tself.filepicker.loading = false\n\t\t\tvar dialogName = 'oc-dialog-filepicker-content'\n\t\t\tif (self.$filePicker) {\n\t\t\t\tself.$filePicker.ocdialog('close')\n\t\t\t}\n\n\t\t\tif (mimetypeFilter === undefined || mimetypeFilter === null) {\n\t\t\t\tmimetypeFilter = []\n\t\t\t}\n\t\t\tif (typeof (mimetypeFilter) === 'string') {\n\t\t\t\tmimetypeFilter = [mimetypeFilter]\n\t\t\t}\n\n\t\t\tself.$filePicker = $tmpl.octemplate({\n\t\t\t\tdialog_name: dialogName,\n\t\t\t\ttitle: title,\n\t\t\t\temptytext: emptyText,\n\t\t\t\tnewtext: newText,\n\t\t\t\tnameCol: t('core', 'Name'),\n\t\t\t\tsizeCol: t('core', 'Size'),\n\t\t\t\tmodifiedCol: t('core', 'Modified')\n\t\t\t}).data('path', path).data('multiselect', multiselect).data('mimetype', mimetypeFilter).data('allowDirectoryChooser', options.allowDirectoryChooser)\n\n\t\t\tif (modal === undefined) {\n\t\t\t\tmodal = false\n\t\t\t}\n\t\t\tif (multiselect === undefined) {\n\t\t\t\tmultiselect = false\n\t\t\t}\n\n\t\t\t// No grid for IE!\n\t\t\tif (OC.Util.isIE()) {\n\t\t\t\tself.$filePicker.find('#picker-view-toggle').remove()\n\t\t\t\tself.$filePicker.find('#picker-filestable').removeClass('view-grid')\n\t\t\t}\n\n\t\t\t$('body').append(self.$filePicker)\n\n\t\t\tself.$showGridView = $('input#picker-showgridview')\n\t\t\tself.$showGridView.on('change', _.bind(self._onGridviewChange, self))\n\n\t\t\tif (!OC.Util.isIE()) {\n\t\t\t\tself._getGridSettings()\n\t\t\t}\n\n\t\t\tvar newButton = self.$filePicker.find('.actions.creatable .button-add')\n\t\t\tif (type === self.FILEPICKER_TYPE_CHOOSE && !options.allowDirectoryChooser) {\n\t\t\t\tnewButton.hide()\n\t\t\t}\n\t\t\tnewButton.on('focus', function() {\n\t\t\t\tself.$filePicker.ocdialog('setEnterCallback', function() {\n\t\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tnewButton.click()\n\t\t\t\t})\n\t\t\t})\n\t\t\tnewButton.on('blur', function() {\n\t\t\t\tself.$filePicker.ocdialog('unsetEnterCallback')\n\t\t\t})\n\n\t\t\tOC.registerMenu(newButton, self.$filePicker.find('.menu'), function() {\n\t\t\t\t$input.focus()\n\t\t\t\tself.$filePicker.ocdialog('setEnterCallback', function() {\n\t\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tself.$filePicker.submit()\n\t\t\t\t})\n\t\t\t\tvar newName = $input.val()\n\t\t\t\tvar lastPos = newName.lastIndexOf('.')\n\t\t\t\tif (lastPos === -1) {\n\t\t\t\t\tlastPos = newName.length\n\t\t\t\t}\n\t\t\t\t$input.selectRange(0, lastPos)\n\t\t\t})\n\t\t\tvar $form = self.$filePicker.find('.filenameform')\n\t\t\tvar $input = $form.find('input[type=\\'text\\']')\n\t\t\tvar $submit = $form.find('input[type=\\'submit\\']')\n\t\t\t$submit.on('click', function(event) {\n\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\tevent.preventDefault()\n\t\t\t\t$form.submit()\n\t\t\t})\n\n\n\t\t\t/**\n\t\t\t * Checks whether the given file name is valid.\n\t\t\t *\n\t\t\t * @param name file name to check\n\t\t\t * @return true if the file name is valid.\n\t\t\t * @throws a string exception with an error message if\n\t\t\t * the file name is not valid\n\t\t\t *\n\t\t\t * NOTE: This function is duplicated in the files app:\n\t\t\t * https://github.com/nextcloud/server/blob/b9bc2417e7a8dc81feb0abe20359bedaf864f790/apps/files/js/files.js#L127-L148\n\t\t\t */\n\t\t\tvar isFileNameValid = function (name) {\n\t\t\t\tvar trimmedName = name.trim();\n\t\t\t\tif (trimmedName === '.' || trimmedName === '..')\n\t\t\t\t{\n\t\t\t\t\tthrow t('files', '\"{name}\" is an invalid file name.', {name: name})\n\t\t\t\t} else if (trimmedName.length === 0) {\n\t\t\t\t\tthrow t('files', 'File name cannot be empty.')\n\t\t\t\t} else if (trimmedName.indexOf('/') !== -1) {\n\t\t\t\t\tthrow t('files', '\"/\" is not allowed inside a file name.')\n\t\t\t\t} else if (!!(trimmedName.match(OC.config.blacklist_files_regex))) {\n\t\t\t\t\tthrow t('files', '\"{name}\" is not an allowed filetype', {name: name})\n\t\t\t\t}\n\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tvar checkInput = function() {\n\t\t\t\tvar filename = $input.val()\n\t\t\t\ttry {\n\t\t\t\t\tif (!isFileNameValid(filename)) {\n\t\t\t\t\t\t// isFileNameValid(filename) throws an exception itself\n\t\t\t\t\t} else if (self.filelist.find(function(file) {\n\t\t\t\t\t\treturn file.name === this\n\t\t\t\t\t}, filename)) {\n\t\t\t\t\t\tthrow t('files', '{newName} already exists', { newName: filename }, undefined, {\n\t\t\t\t\t\t\tescape: false\n\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\t$input.attr('title', error)\n\t\t\t\t\t$input.tooltip({\n\t\t\t\t\t\tplacement: 'right',\n\t\t\t\t\t\ttrigger: 'manual',\n\t\t\t\t\t\t'container': '.newFolderMenu'\n\t\t\t\t\t})\n\t\t\t\t\t$input.tooltip('fixTitle')\n\t\t\t\t\t$input.tooltip('show')\n\t\t\t\t\t$input.addClass('error')\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t$form.on('submit', function(event) {\n\t\t\t\tevent.stopPropagation()\n\t\t\t\tevent.preventDefault()\n\n\t\t\t\tif (checkInput()) {\n\t\t\t\t\tvar newname = $input.val()\n\t\t\t\t\tself.filepicker.filesClient.createDirectory(self.$filePicker.data('path') + \"/\" + newname).always(function (status) {\n\t\t\t\t\t\tself._fillFilePicker(self.$filePicker.data('path') + \"/\" + newname)\n\t\t\t\t\t})\n\t\t\t\t\tOC.hideMenus()\n\t\t\t\t\tself.$filePicker.ocdialog('unsetEnterCallback')\n\t\t\t\t\tself.$filePicker.click()\n\t\t\t\t\t$input.val(newText)\n\t\t\t\t}\n\t\t\t})\n\t\t\t$input.keypress(function(event) {\n\t\t\t\tif (event.keyCode === 13 || event.which === 13) {\n\t\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t$form.submit()\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tself.$filePicker.ready(function() {\n\t\t\t\tself.$fileListHeader = self.$filePicker.find('.filelist thead tr')\n\t\t\t\tself.$filelist = self.$filePicker.find('.filelist tbody')\n\t\t\t\tself.$filelistContainer = self.$filePicker.find('.filelist-container')\n\t\t\t\tself.$dirTree = self.$filePicker.find('.dirtree')\n\t\t\t\tself.$dirTree.on('click', 'div:not(:last-child)', self, function(event) {\n\t\t\t\t\tself._handleTreeListSelect(event, type)\n\t\t\t\t})\n\t\t\t\tself.$filelist.on('click', 'tr', function(event) {\n\t\t\t\t\tself._handlePickerClick(event, $(this), type)\n\t\t\t\t})\n\t\t\t\tself.$fileListHeader.on('click', 'a', function(event) {\n\t\t\t\t\tvar dir = self.$filePicker.data('path')\n\t\t\t\t\tself.filepicker.sortField = $(event.currentTarget).data('sort')\n\t\t\t\t\tself.filepicker.sortOrder = self.filepicker.sortOrder === 'asc' ? 'desc' : 'asc'\n\t\t\t\t\tself._fillFilePicker(dir)\n\t\t\t\t})\n\t\t\t\tself._fillFilePicker(path)\n\t\t\t})\n\n\t\t\t// build buttons\n\t\t\tvar functionToCall = function(returnType) {\n\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\tvar datapath\n\t\t\t\t\tif (multiselect === true) {\n\t\t\t\t\t\tdatapath = []\n\t\t\t\t\t\tself.$filelist.find('tr.filepicker_element_selected').each(function(index, element) {\n\t\t\t\t\t\t\tdatapath.push(self.$filePicker.data('path') + '/' + $(element).data('entryname'))\n\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdatapath = self.$filePicker.data('path')\n\t\t\t\t\t\tvar selectedName = self.$filelist.find('tr.filepicker_element_selected').data('entryname')\n\t\t\t\t\t\tif (selectedName) {\n\t\t\t\t\t\t\tdatapath += '/' + selectedName\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcallback(datapath, returnType)\n\t\t\t\t\tself.$filePicker.ocdialog('close')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar chooseCallback = function() {\n\t\t\t\tfunctionToCall(Dialogs.FILEPICKER_TYPE_CHOOSE)\n\t\t\t}\n\n\t\t\tvar copyCallback = function() {\n\t\t\t\tfunctionToCall(Dialogs.FILEPICKER_TYPE_COPY)\n\t\t\t}\n\n\t\t\tvar moveCallback = function() {\n\t\t\t\tfunctionToCall(Dialogs.FILEPICKER_TYPE_MOVE)\n\t\t\t}\n\n\t\t\tvar buttonlist = []\n\t\t\tif (type === Dialogs.FILEPICKER_TYPE_CHOOSE) {\n\t\t\t\tbuttonlist.push({\n\t\t\t\t\ttext: t('core', 'Choose'),\n\t\t\t\t\tclick: chooseCallback,\n\t\t\t\t\tdefaultButton: true\n\t\t\t\t})\n\t\t\t} else if (type === Dialogs.FILEPICKER_TYPE_CUSTOM) {\n\t\t\t\toptions.buttons.forEach(function(button) {\n\t\t\t\t\tbuttonlist.push({\n\t\t\t\t\t\ttext: button.text,\n\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\tfunctionToCall(button.type)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdefaultButton: button.defaultButton\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tif (type === Dialogs.FILEPICKER_TYPE_COPY || type === Dialogs.FILEPICKER_TYPE_COPY_MOVE) {\n\t\t\t\t\tbuttonlist.push({\n\t\t\t\t\t\ttext: t('core', 'Copy'),\n\t\t\t\t\t\tclick: copyCallback,\n\t\t\t\t\t\tdefaultButton: false\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (type === Dialogs.FILEPICKER_TYPE_MOVE || type === Dialogs.FILEPICKER_TYPE_COPY_MOVE) {\n\t\t\t\t\tbuttonlist.push({\n\t\t\t\t\t\ttext: t('core', 'Move'),\n\t\t\t\t\t\tclick: moveCallback,\n\t\t\t\t\t\tdefaultButton: true\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tself.$filePicker.ocdialog({\n\t\t\t\tcloseOnEscape: true,\n\t\t\t\t// max-width of 600\n\t\t\t\twidth: 600,\n\t\t\t\theight: 500,\n\t\t\t\tmodal: modal,\n\t\t\t\tbuttons: buttonlist,\n\t\t\t\tstyle: {\n\t\t\t\t\tbuttons: 'aside'\n\t\t\t\t},\n\t\t\t\tclose: function() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$(this).ocdialog('destroy').remove()\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t}\n\t\t\t\t\tself.$filePicker = null\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// We can access primary class only from oc-dialog.\n\t\t\t// Hence this is one of the approach to get the choose button.\n\t\t\tvar getOcDialog = self.$filePicker.closest('.oc-dialog')\n\t\t\tvar buttonEnableDisable = getOcDialog.find('.primary')\n\t\t\tif (self.$filePicker.data('mimetype').indexOf('httpd/unix-directory') !== -1 || self.$filePicker.data('allowDirectoryChooser')) {\n\t\t\t\tbuttonEnableDisable.prop('disabled', false)\n\t\t\t} else {\n\t\t\t\tbuttonEnableDisable.prop('disabled', true)\n\t\t\t}\n\t\t})\n\t\t\t.fail(function(status, error) {\n\t\t\t\t// If the method is called while navigating away\n\t\t\t\t// from the page, it is probably not needed ;)\n\t\t\t\tself.filepicker.loading = false\n\t\t\t\tif (status !== 0) {\n\t\t\t\t\talert(t('core', 'Error loading file picker template: {error}', { error: error }))\n\t\t\t\t}\n\t\t\t})\n\t},\n\t/**\n\t * Displays raw dialog\n\t * You better use a wrapper instead ...\n\t */\n\tmessage: function(content, title, dialogType, buttons, callback, modal, allowHtml) {\n\t\treturn $.when(this._getMessageTemplate()).then(function($tmpl) {\n\t\t\tvar dialogName = 'oc-dialog-' + Dialogs.dialogsCounter + '-content'\n\t\t\tvar dialogId = '#' + dialogName\n\t\t\tvar $dlg = $tmpl.octemplate({\n\t\t\t\tdialog_name: dialogName,\n\t\t\t\ttitle: title,\n\t\t\t\tmessage: content,\n\t\t\t\ttype: dialogType\n\t\t\t}, allowHtml ? { escapeFunction: '' } : {})\n\t\t\tif (modal === undefined) {\n\t\t\t\tmodal = false\n\t\t\t}\n\t\t\t$('body').append($dlg)\n\t\t\tvar buttonlist = []\n\t\t\tswitch (buttons) {\n\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\tbuttonlist = [{\n\t\t\t\t\ttext: t('core', 'No'),\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: t('core', 'Yes'),\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t},\n\t\t\t\t\tdefaultButton: true\n\t\t\t\t}]\n\t\t\t\tbreak\n\t\t\tcase Dialogs.OK_BUTTON:\n\t\t\t\tvar functionToCall = function() {\n\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\tcallback()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbuttonlist[0] = {\n\t\t\t\t\ttext: t('core', 'OK'),\n\t\t\t\t\tclick: functionToCall,\n\t\t\t\t\tdefaultButton: true\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (typeof(buttons) === 'object') {\n\t\t\t\t\tswitch (buttons.type) {\n\t\t\t\t\t\tcase Dialogs.YES_NO_BUTTONS:\n\t\t\t\t\t\t\tbuttonlist = [{\n\t\t\t\t\t\t\t\ttext: buttons.cancel || t('core', 'No'),\n\t\t\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t\t\t\t\tcallback(false)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: buttons.confirm || t('core', 'Yes'),\n\t\t\t\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\t\t\t\tif (callback !== undefined) {\n\t\t\t\t\t\t\t\t\t\t\tcallback(true)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdefaultButton: true,\n\t\t\t\t\t\t\t\t\tclasses: buttons.confirmClasses\n\t\t\t\t\t\t\t\t}]\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t}\n\n\t\t\t$(dialogId).ocdialog({\n\t\t\t\tcloseOnEscape: true,\n\t\t\t\tmodal: modal,\n\t\t\t\tbuttons: buttonlist\n\t\t\t})\n\t\t\tDialogs.dialogsCounter++\n\t\t})\n\t\t\t.fail(function(status, error) {\n\t\t\t\t// If the method is called while navigating away from\n\t\t\t\t// the page, we still want to deliver the message.\n\t\t\t\tif (status === 0) {\n\t\t\t\t\talert(title + ': ' + content)\n\t\t\t\t} else {\n\t\t\t\t\talert(t('core', 'Error loading message template: {error}', { error: error }))\n\t\t\t\t}\n\t\t\t})\n\t},\n\t_fileexistsshown: false,\n\t/**\n\t * Displays file exists dialog\n\t * @param {object} data upload object\n\t * @param {object} original file with name, size and mtime\n\t * @param {object} replacement file with name, size and mtime\n\t * @param {object} controller with onCancel, onSkip, onReplace and onRename methods\n\t * @returns {Promise} jquery promise that resolves after the dialog template was loaded\n\t */\n\tfileexists: function(data, original, replacement, controller) {\n\t\tvar self = this\n\t\tvar dialogDeferred = new $.Deferred()\n\n\t\tvar getCroppedPreview = function(file) {\n\t\t\tvar deferred = new $.Deferred()\n\t\t\t// Only process image files.\n\t\t\tvar type = file.type && file.type.split('/').shift()\n\t\t\tif (window.FileReader && type === 'image') {\n\t\t\t\tvar reader = new FileReader()\n\t\t\t\treader.onload = function(e) {\n\t\t\t\t\tvar blob = new Blob([e.target.result])\n\t\t\t\t\twindow.URL = window.URL || window.webkitURL\n\t\t\t\t\tvar originalUrl = window.URL.createObjectURL(blob)\n\t\t\t\t\tvar image = new Image()\n\t\t\t\t\timage.src = originalUrl\n\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\tvar url = crop(image)\n\t\t\t\t\t\tdeferred.resolve(url)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treader.readAsArrayBuffer(file)\n\t\t\t} else {\n\t\t\t\tdeferred.reject()\n\t\t\t}\n\t\t\treturn deferred\n\t\t}\n\n\t\tvar crop = function(img) {\n\t\t\tvar canvas = document.createElement('canvas')\n\t\t\tvar targetSize = 96\n\t\t\tvar width = img.width\n\t\t\tvar height = img.height\n\t\t\tvar x; var y; var size\n\n\t\t\t// Calculate the width and height, constraining the proportions\n\t\t\tif (width > height) {\n\t\t\t\ty = 0\n\t\t\t\tx = (width - height) / 2\n\t\t\t} else {\n\t\t\t\ty = (height - width) / 2\n\t\t\t\tx = 0\n\t\t\t}\n\t\t\tsize = Math.min(width, height)\n\n\t\t\t// Set canvas size to the cropped area\n\t\t\tcanvas.width = size\n\t\t\tcanvas.height = size\n\t\t\tvar ctx = canvas.getContext('2d')\n\t\t\tctx.drawImage(img, x, y, size, size, 0, 0, size, size)\n\n\t\t\t// Resize the canvas to match the destination (right size uses 96px)\n\t\t\tresampleHermite(canvas, size, size, targetSize, targetSize)\n\n\t\t\treturn canvas.toDataURL('image/png', 0.7)\n\t\t}\n\n\t\t/**\n\t\t * Fast image resize/resample using Hermite filter with JavaScript.\n\t\t *\n\t\t * @author: ViliusL\n\t\t *\n\t\t * @param {*} canvas\n\t\t * @param {number} W\n\t\t * @param {number} H\n\t\t * @param {number} W2\n\t\t * @param {number} H2\n\t\t */\n\t\tvar resampleHermite = function(canvas, W, H, W2, H2) {\n\t\t\tW2 = Math.round(W2)\n\t\t\tH2 = Math.round(H2)\n\t\t\tvar img = canvas.getContext('2d').getImageData(0, 0, W, H)\n\t\t\tvar img2 = canvas.getContext('2d').getImageData(0, 0, W2, H2)\n\t\t\tvar data = img.data\n\t\t\tvar data2 = img2.data\n\t\t\tvar ratio_w = W / W2\n\t\t\tvar ratio_h = H / H2\n\t\t\tvar ratio_w_half = Math.ceil(ratio_w / 2)\n\t\t\tvar ratio_h_half = Math.ceil(ratio_h / 2)\n\n\t\t\tfor (var j = 0; j < H2; j++) {\n\t\t\t\tfor (var i = 0; i < W2; i++) {\n\t\t\t\t\tvar x2 = (i + j * W2) * 4\n\t\t\t\t\tvar weight = 0\n\t\t\t\t\tvar weights = 0\n\t\t\t\t\tvar weights_alpha = 0\n\t\t\t\t\tvar gx_r = 0\n\t\t\t\t\tvar gx_g = 0\n\t\t\t\t\tvar gx_b = 0\n\t\t\t\t\tvar gx_a = 0\n\t\t\t\t\tvar center_y = (j + 0.5) * ratio_h\n\t\t\t\t\tfor (var yy = Math.floor(j * ratio_h); yy < (j + 1) * ratio_h; yy++) {\n\t\t\t\t\t\tvar dy = Math.abs(center_y - (yy + 0.5)) / ratio_h_half\n\t\t\t\t\t\tvar center_x = (i + 0.5) * ratio_w\n\t\t\t\t\t\tvar w0 = dy * dy // pre-calc part of w\n\t\t\t\t\t\tfor (var xx = Math.floor(i * ratio_w); xx < (i + 1) * ratio_w; xx++) {\n\t\t\t\t\t\t\tvar dx = Math.abs(center_x - (xx + 0.5)) / ratio_w_half\n\t\t\t\t\t\t\tvar w = Math.sqrt(w0 + dx * dx)\n\t\t\t\t\t\t\tif (w >= -1 && w <= 1) {\n\t\t\t\t\t\t\t\t// hermite filter\n\t\t\t\t\t\t\t\tweight = 2 * w * w * w - 3 * w * w + 1\n\t\t\t\t\t\t\t\tif (weight > 0) {\n\t\t\t\t\t\t\t\t\tdx = 4 * (xx + yy * W)\n\t\t\t\t\t\t\t\t\t// alpha\n\t\t\t\t\t\t\t\t\tgx_a += weight * data[dx + 3]\n\t\t\t\t\t\t\t\t\tweights_alpha += weight\n\t\t\t\t\t\t\t\t\t// colors\n\t\t\t\t\t\t\t\t\tif (data[dx + 3] < 255) { weight = weight * data[dx + 3] / 250 }\n\t\t\t\t\t\t\t\t\tgx_r += weight * data[dx]\n\t\t\t\t\t\t\t\t\tgx_g += weight * data[dx + 1]\n\t\t\t\t\t\t\t\t\tgx_b += weight * data[dx + 2]\n\t\t\t\t\t\t\t\t\tweights += weight\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata2[x2] = gx_r / weights\n\t\t\t\t\tdata2[x2 + 1] = gx_g / weights\n\t\t\t\t\tdata2[x2 + 2] = gx_b / weights\n\t\t\t\t\tdata2[x2 + 3] = gx_a / weights_alpha\n\t\t\t\t}\n\t\t\t}\n\t\t\tcanvas.getContext('2d').clearRect(0, 0, Math.max(W, W2), Math.max(H, H2))\n\t\t\tcanvas.width = W2\n\t\t\tcanvas.height = H2\n\t\t\tcanvas.getContext('2d').putImageData(img2, 0, 0)\n\t\t}\n\n\t\tvar addConflict = function($conflicts, original, replacement) {\n\n\t\t\tvar $conflict = $conflicts.find('.template').clone().removeClass('template').addClass('conflict')\n\t\t\tvar $originalDiv = $conflict.find('.original')\n\t\t\tvar $replacementDiv = $conflict.find('.replacement')\n\n\t\t\t$conflict.data('data', data)\n\n\t\t\t$conflict.find('.filename').text(original.name)\n\t\t\t$originalDiv.find('.size').text(OC.Util.humanFileSize(original.size))\n\t\t\t$originalDiv.find('.mtime').text(OC.Util.formatDate(original.mtime))\n\t\t\t// ie sucks\n\t\t\tif (replacement.size && replacement.lastModifiedDate) {\n\t\t\t\t$replacementDiv.find('.size').text(OC.Util.humanFileSize(replacement.size))\n\t\t\t\t$replacementDiv.find('.mtime').text(OC.Util.formatDate(replacement.lastModifiedDate))\n\t\t\t}\n\t\t\tvar path = original.directory + '/' + original.name\n\t\t\tvar urlSpec = {\n\t\t\t\tfile: path,\n\t\t\t\tx: 96,\n\t\t\t\ty: 96,\n\t\t\t\tc: original.etag,\n\t\t\t\tforceIcon: 0\n\t\t\t}\n\t\t\tvar previewpath = Files.generatePreviewUrl(urlSpec)\n\t\t\t// Escaping single quotes\n\t\t\tpreviewpath = previewpath.replace(/'/g, '%27')\n\t\t\t$originalDiv.find('.icon').css({ 'background-image': \"url('\" + previewpath + \"')\" })\n\t\t\tgetCroppedPreview(replacement).then(\n\t\t\t\tfunction(path) {\n\t\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t\t}, function() {\n\t\t\t\t\tpath = OC.MimeType.getIconUrl(replacement.type)\n\t\t\t\t\t$replacementDiv.find('.icon').css('background-image', 'url(' + path + ')')\n\t\t\t\t}\n\t\t\t)\n\t\t\t// connect checkboxes with labels\n\t\t\tvar checkboxId = $conflicts.find('.conflict').length\n\t\t\t$originalDiv.find('input:checkbox').attr('id', 'checkbox_original_' + checkboxId)\n\t\t\t$replacementDiv.find('input:checkbox').attr('id', 'checkbox_replacement_' + checkboxId)\n\n\t\t\t$conflicts.append($conflict)\n\n\t\t\t// set more recent mtime bold\n\t\t\t// ie sucks\n\t\t\tif (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() > original.mtime) {\n\t\t\t\t$replacementDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else if (replacement.lastModifiedDate && replacement.lastModifiedDate.getTime() < original.mtime) {\n\t\t\t\t$originalDiv.find('.mtime').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same mtime collection?\n\t\t\t}\n\n\t\t\t// set bigger size bold\n\t\t\tif (replacement.size && replacement.size > original.size) {\n\t\t\t\t$replacementDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else if (replacement.size && replacement.size < original.size) {\n\t\t\t\t$originalDiv.find('.size').css('font-weight', 'bold')\n\t\t\t} else {\n\t\t\t\t// TODO add to same size collection?\n\t\t\t}\n\n\t\t\t// TODO show skip action for files with same size and mtime in bottom row\n\n\t\t\t// always keep readonly files\n\n\t\t\tif (original.status === 'readonly') {\n\t\t\t\t$originalDiv\n\t\t\t\t\t.addClass('readonly')\n\t\t\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t\t\t.prop('checked', true)\n\t\t\t\t\t.prop('disabled', true)\n\t\t\t\t$originalDiv.find('.message')\n\t\t\t\t\t.text(t('core', 'read-only'))\n\t\t\t}\n\t\t}\n\t\t// var selection = controller.getSelection(data.originalFiles);\n\t\t// if (selection.defaultAction) {\n\t\t//\tcontroller[selection.defaultAction](data);\n\t\t// } else {\n\t\tvar dialogName = 'oc-dialog-fileexists-content'\n\t\tvar dialogId = '#' + dialogName\n\t\tif (this._fileexistsshown) {\n\t\t\t// add conflict\n\n\t\t\tvar $conflicts = $(dialogId + ' .conflicts')\n\t\t\taddConflict($conflicts, original, replacement)\n\n\t\t\tvar count = $(dialogId + ' .conflict').length\n\t\t\tvar title = n('core',\n\t\t\t\t'{count} file conflict',\n\t\t\t\t'{count} file conflicts',\n\t\t\t\tcount,\n\t\t\t\t{ count: count }\n\t\t\t)\n\t\t\t$(dialogId).parent().children('.oc-dialog-title').text(title)\n\n\t\t\t// recalculate dimensions\n\t\t\t$(window).trigger('resize')\n\t\t\tdialogDeferred.resolve()\n\t\t} else {\n\t\t\t// create dialog\n\t\t\tthis._fileexistsshown = true\n\t\t\t$.when(this._getFileExistsTemplate()).then(function($tmpl) {\n\t\t\t\tvar title = t('core', 'One file conflict')\n\t\t\t\tvar $dlg = $tmpl.octemplate({\n\t\t\t\t\tdialog_name: dialogName,\n\t\t\t\t\ttitle: title,\n\t\t\t\t\ttype: 'fileexists',\n\n\t\t\t\t\tallnewfiles: t('core', 'New Files'),\n\t\t\t\t\tallexistingfiles: t('core', 'Already existing files'),\n\n\t\t\t\t\twhy: t('core', 'Which files do you want to keep?'),\n\t\t\t\t\twhat: t('core', 'If you select both versions, the copied file will have a number added to its name.')\n\t\t\t\t})\n\t\t\t\t$('body').append($dlg)\n\n\t\t\t\tif (original && replacement) {\n\t\t\t\t\tvar $conflicts = $dlg.find('.conflicts')\n\t\t\t\t\taddConflict($conflicts, original, replacement)\n\t\t\t\t}\n\n\t\t\t\tvar buttonlist = [{\n\t\t\t\t\ttext: t('core', 'Cancel'),\n\t\t\t\t\tclasses: 'cancel',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onCancel !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onCancel(data)\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\ttext: t('core', 'Continue'),\n\t\t\t\t\tclasses: 'continue',\n\t\t\t\t\tclick: function() {\n\t\t\t\t\t\tif (typeof controller.onContinue !== 'undefined') {\n\t\t\t\t\t\t\tcontroller.onContinue($(dialogId + ' .conflict'))\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(dialogId).ocdialog('close')\n\t\t\t\t\t}\n\t\t\t\t}]\n\n\t\t\t\t$(dialogId).ocdialog({\n\t\t\t\t\twidth: 500,\n\t\t\t\t\tcloseOnEscape: true,\n\t\t\t\t\tmodal: true,\n\t\t\t\t\tbuttons: buttonlist,\n\t\t\t\t\tcloseButton: null,\n\t\t\t\t\tclose: function() {\n\t\t\t\t\t\tself._fileexistsshown = false\n\t\t\t\t\t\t$(this).ocdialog('destroy').remove()\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\t$(dialogId).css('height', 'auto')\n\n\t\t\t\tvar $primaryButton = $dlg.closest('.oc-dialog').find('button.continue')\n\t\t\t\t$primaryButton.prop('disabled', true)\n\n\t\t\t\tfunction updatePrimaryButton() {\n\t\t\t\t\tvar checkedCount = $dlg.find('.conflicts .checkbox:checked').length\n\t\t\t\t\t$primaryButton.prop('disabled', checkedCount === 0)\n\t\t\t\t}\n\n\t\t\t\t// add checkbox toggling actions\n\t\t\t\t$(dialogId).find('.allnewfiles').on('click', function() {\n\t\t\t\t\tvar $checkboxes = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.allexistingfiles').on('click', function() {\n\t\t\t\t\tvar $checkboxes = $(dialogId).find('.conflict .original:not(.readonly) input[type=\"checkbox\"]')\n\t\t\t\t\t$checkboxes.prop('checked', $(this).prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement,.original:not(.readonly)', function() {\n\t\t\t\t\tvar $checkbox = $(this).find('input[type=\"checkbox\"]')\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\t\t\t\t$(dialogId).find('.conflicts').on('click', '.replacement input[type=\"checkbox\"],.original:not(.readonly) input[type=\"checkbox\"]', function() {\n\t\t\t\t\tvar $checkbox = $(this)\n\t\t\t\t\t$checkbox.prop('checked', !$checkbox.prop('checked'))\n\t\t\t\t})\n\n\t\t\t\t// update counters\n\t\t\t\t$(dialogId).on('click', '.replacement,.allnewfiles', function() {\n\t\t\t\t\tvar count = $(dialogId).find('.conflict .replacement input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text(t('core', '({count} selected)', { count: count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allnewfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\t\t\t\t$(dialogId).on('click', '.original,.allexistingfiles', function() {\n\t\t\t\t\tvar count = $(dialogId).find('.conflict .original input[type=\"checkbox\"]:checked').length\n\t\t\t\t\tif (count === $(dialogId + ' .conflict').length) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', true)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text(t('core', '(all selected)'))\n\t\t\t\t\t} else if (count > 0) {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count')\n\t\t\t\t\t\t\t.text(t('core', '({count} selected)', { count: count }))\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles').prop('checked', false)\n\t\t\t\t\t\t$(dialogId).find('.allexistingfiles + .count').text('')\n\t\t\t\t\t}\n\t\t\t\t\tupdatePrimaryButton()\n\t\t\t\t})\n\n\t\t\t\tdialogDeferred.resolve()\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdialogDeferred.reject()\n\t\t\t\t\talert(t('core', 'Error loading file exists template'))\n\t\t\t\t})\n\t\t}\n\t\t// }\n\t\treturn dialogDeferred.promise()\n\t},\n\t// get the gridview setting and set the input accordingly\n\t_getGridSettings: function() {\n\t\tvar self = this\n\t\t$.get(OC.generateUrl('/apps/files/api/v1/showgridview'), function(response) {\n\t\t\tself.$showGridView.get(0).checked = response.gridview\n\t\t\tself.$showGridView.next('#picker-view-toggle')\n\t\t\t\t.removeClass('icon-toggle-filelist icon-toggle-pictures')\n\t\t\t\t.addClass(response.gridview ? 'icon-toggle-filelist' : 'icon-toggle-pictures')\n\t\t\t$('.list-container').toggleClass('view-grid', response.gridview)\n\t\t})\n\t},\n\t_onGridviewChange: function() {\n\t\tvar show = this.$showGridView.is(':checked')\n\t\t// only save state if user is logged in\n\t\tif (OC.currentUser) {\n\t\t\t$.post(OC.generateUrl('/apps/files/api/v1/showgridview'), {\n\t\t\t\tshow: show\n\t\t\t})\n\t\t}\n\t\tthis.$showGridView.next('#picker-view-toggle')\n\t\t\t.removeClass('icon-toggle-filelist icon-toggle-pictures')\n\t\t\t.addClass(show ? 'icon-toggle-filelist' : 'icon-toggle-pictures')\n\t\t$('.list-container').toggleClass('view-grid', show)\n\t},\n\t_getFilePickerTemplate: function() {\n\t\tvar defer = $.Deferred()\n\t\tif (!this.$filePickerTemplate) {\n\t\t\tvar self = this\n\t\t\t$.get(OC.filePath('core', 'templates', 'filepicker.html'), function(tmpl) {\n\t\t\t\tself.$filePickerTemplate = $(tmpl)\n\t\t\t\tself.$listTmpl = self.$filePickerTemplate.find('.filelist tbody tr:first-child').detach()\n\t\t\t\tdefer.resolve(self.$filePickerTemplate)\n\t\t\t})\n\t\t\t\t.fail(function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tdefer.reject(jqXHR.status, errorThrown)\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$filePickerTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n\t_getMessageTemplate: function() {\n\t\tvar defer = $.Deferred()\n\t\tif (!this.$messageTemplate) {\n\t\t\tvar self = this\n\t\t\t$.get(OC.filePath('core', 'templates', 'message.html'), function(tmpl) {\n\t\t\t\tself.$messageTemplate = $(tmpl)\n\t\t\t\tdefer.resolve(self.$messageTemplate)\n\t\t\t})\n\t\t\t\t.fail(function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\tdefer.reject(jqXHR.status, errorThrown)\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$messageTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n\t_getFileExistsTemplate: function() {\n\t\tvar defer = $.Deferred()\n\t\tif (!this.$fileexistsTemplate) {\n\t\t\tvar self = this\n\t\t\t$.get(OC.filePath('files', 'templates', 'fileexists.html'), function(tmpl) {\n\t\t\t\tself.$fileexistsTemplate = $(tmpl)\n\t\t\t\tdefer.resolve(self.$fileexistsTemplate)\n\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\tdefer.reject()\n\t\t\t\t})\n\t\t} else {\n\t\t\tdefer.resolve(this.$fileexistsTemplate)\n\t\t}\n\t\treturn defer.promise()\n\t},\n\t_getFileList: function(dir, mimeType) { // this is only used by the spreedme app atm\n\t\tif (typeof (mimeType) === 'string') {\n\t\t\tmimeType = [mimeType]\n\t\t}\n\n\t\treturn $.getJSON(\n\t\t\tOC.filePath('files', 'ajax', 'list.php'),\n\t\t\t{\n\t\t\t\tdir: dir,\n\t\t\t\tmimetypes: JSON.stringify(mimeType)\n\t\t\t}\n\t\t)\n\t},\n\n\t/**\n\t * fills the filepicker with files\n\t */\n\t_fillFilePicker: function(dir) {\n\t\tvar self = this\n\t\tthis.$filelist.empty()\n\t\tthis.$filePicker.find('.emptycontent').hide()\n\t\tthis.$filelistContainer.addClass('icon-loading')\n\t\tthis.$filePicker.data('path', dir)\n\t\tvar filter = this.$filePicker.data('mimetype')\n\t\tif (typeof (filter) === 'string') {\n\t\t\tfilter = [filter]\n\t\t}\n\t\tself.$fileListHeader.find('.sort-indicator').addClass('hidden').removeClass('icon-triangle-n').removeClass('icon-triangle-s')\n\t\tself.$fileListHeader.find('[data-sort=' + self.filepicker.sortField + '] .sort-indicator').removeClass('hidden')\n\t\tif (self.filepicker.sortOrder === 'asc') {\n\t\t\tself.$fileListHeader.find('[data-sort=' + self.filepicker.sortField + '] .sort-indicator').addClass('icon-triangle-n')\n\t\t} else {\n\t\t\tself.$fileListHeader.find('[data-sort=' + self.filepicker.sortField + '] .sort-indicator').addClass('icon-triangle-s')\n\t\t}\n\t\tself.filepicker.filesClient.getFolderContents(dir).then(function(status, files) {\n\t\t\tself.filelist = files\n\t\t\tif (filter && filter.length > 0 && filter.indexOf('*') === -1) {\n\t\t\t\tfiles = files.filter(function(file) {\n\t\t\t\t\treturn file.type === 'dir' || filter.indexOf(file.mimetype) !== -1\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tvar Comparators = {\n\t\t\t\tname: function(fileInfo1, fileInfo2) {\n\t\t\t\t\tif (fileInfo1.type === 'dir' && fileInfo2.type !== 'dir') {\n\t\t\t\t\t\treturn -1\n\t\t\t\t\t}\n\t\t\t\t\tif (fileInfo1.type !== 'dir' && fileInfo2.type === 'dir') {\n\t\t\t\t\t\treturn 1\n\t\t\t\t\t}\n\t\t\t\t\treturn OC.Util.naturalSortCompare(fileInfo1.name, fileInfo2.name)\n\t\t\t\t},\n\t\t\t\tsize: function(fileInfo1, fileInfo2) {\n\t\t\t\t\treturn fileInfo1.size - fileInfo2.size\n\t\t\t\t},\n\t\t\t\tmtime: function(fileInfo1, fileInfo2) {\n\t\t\t\t\treturn fileInfo1.mtime - fileInfo2.mtime\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar comparator = Comparators[self.filepicker.sortField] || Comparators.name\n\t\t\tfiles = files.sort(function(file1, file2) {\n\t\t\t\tvar isFavorite = function(fileInfo) {\n\t\t\t\t\treturn fileInfo.tags && fileInfo.tags.indexOf(OC.TAG_FAVORITE) >= 0\n\t\t\t\t}\n\n\t\t\t\tif (isFavorite(file1) && !isFavorite(file2)) {\n\t\t\t\t\treturn -1\n\t\t\t\t} else if (!isFavorite(file1) && isFavorite(file2)) {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\n\t\t\t\treturn self.filepicker.sortOrder === 'asc' ? comparator(file1, file2) : -comparator(file1, file2)\n\t\t\t})\n\n\t\t\tself._fillSlug()\n\n\t\t\tif (files.length === 0) {\n\t\t\t\tself.$filePicker.find('.emptycontent').show()\n\t\t\t\tself.$fileListHeader.hide()\n\t\t\t} else {\n\t\t\t\tself.$filePicker.find('.emptycontent').hide()\n\t\t\t\tself.$fileListHeader.show()\n\t\t\t}\n\n\t\t\t$.each(files, function(idx, entry) {\n\t\t\t\tentry.icon = OC.MimeType.getIconUrl(entry.mimetype)\n\t\t\t\tvar simpleSize, sizeColor\n\t\t\t\tif (typeof (entry.size) !== 'undefined' && entry.size >= 0) {\n\t\t\t\t\tsimpleSize = OC.Util.humanFileSize(parseInt(entry.size, 10), true)\n\t\t\t\t\tsizeColor = Math.round(160 - Math.pow((entry.size / (1024 * 1024)), 2))\n\t\t\t\t} else {\n\t\t\t\t\tsimpleSize = t('files', 'Pending')\n\t\t\t\t\tsizeColor = 80\n\t\t\t\t}\n\n\t\t\t\t// split the filename in half if the size is bigger than 20 char\n\t\t\t\t// for ellipsis\n\t\t\t\tif (entry.name.length >= 10) {\n\t\t\t\t\t// leave maximum 10 letters\n\t\t\t\t\tvar split = Math.min(Math.floor(entry.name.length / 2), 10)\n\t\t\t\t\tvar filename1 = entry.name.substr(0, entry.name.length - split)\n\t\t\t\t\tvar filename2 = entry.name.substr(entry.name.length - split)\n\t\t\t\t} else {\n\t\t\t\t\tvar filename1 = entry.name\n\t\t\t\t\tvar filename2 = ''\n\t\t\t\t}\n\n\t\t\t\tvar $row = self.$listTmpl.octemplate({\n\t\t\t\t\ttype: entry.type,\n\t\t\t\t\tdir: dir,\n\t\t\t\t\tfilename: entry.name,\n\t\t\t\t\tfilename1: filename1,\n\t\t\t\t\tfilename2: filename2,\n\t\t\t\t\tdate: OC.Util.relativeModifiedDate(entry.mtime),\n\t\t\t\t\tsize: simpleSize,\n\t\t\t\t\tsizeColor: sizeColor,\n\t\t\t\t\ticon: entry.icon\n\t\t\t\t})\n\t\t\t\tif (entry.type === 'file') {\n\t\t\t\t\tvar urlSpec = {\n\t\t\t\t\t\tfile: dir + '/' + entry.name,\n\t\t\t\t\t\tx: 100,\n\t\t\t\t\t\ty: 100\n\t\t\t\t\t}\n\t\t\t\t\tvar img = new Image()\n\t\t\t\t\tvar previewUrl = OC.generateUrl('/core/preview.png?') + $.param(urlSpec)\n\t\t\t\t\timg.onload = function() {\n\t\t\t\t\t\tif (img.width > 5) {\n\t\t\t\t\t\t\t$row.find('td.filename').attr('style', 'background-image:url(' + previewUrl + ')')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\timg.src = previewUrl\n\t\t\t\t}\n\t\t\t\tself.$filelist.append($row)\n\t\t\t})\n\n\t\t\tself.$filelistContainer.removeClass('icon-loading')\n\t\t})\n\t},\n\t/**\n\t * fills the tree list with directories\n\t */\n\t_fillSlug: function() {\n\t\tvar addButton = this.$dirTree.find('.actions.creatable').detach()\n\t\tthis.$dirTree.empty()\n\t\tvar self = this\n\n\t\tself.$dirTree.append(addButton)\n\n\t\tvar dir\n\t\tvar path = this.$filePicker.data('path')\n\t\tvar $template = $('<div data-dir=\"{dir}\"><a>{name}</a></div>').addClass('crumb')\n\t\tif (path) {\n\t\t\tvar paths = path.split('/')\n\t\t\t$.each(paths, function(index, dir) {\n\t\t\t\tdir = paths.pop()\n\t\t\t\tif (dir === '') {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\tself.$dirTree.prepend($template.octemplate({\n\t\t\t\t\tdir: paths.join('/') + '/' + dir,\n\t\t\t\t\tname: dir\n\t\t\t\t}))\n\t\t\t})\n\t\t}\n\n\t\t$template.octemplate({\n\t\t\tdir: '',\n\t\t\tname: '' // Ugly but works ;)\n\t\t}, { escapeFunction: null }).prependTo(this.$dirTree)\n\t\t\n\t},\n\t/**\n\t * handle selection made in the tree list\n\t */\n\t_handleTreeListSelect: function(event, type) {\n\t\tvar self = event.data\n\t\tvar dir = $(event.target).closest('.crumb').data('dir')\n\t\tself._fillFilePicker(dir)\n\t\tvar getOcDialog = (event.target).closest('.oc-dialog')\n\t\tvar buttonEnableDisable = $('.primary', getOcDialog)\n\t\tthis._changeButtonsText(type, dir.split(/[/]+/).pop())\n\t\tif (this.$filePicker.data('mimetype').indexOf('httpd/unix-directory') !== -1 || this.$filePicker.data('allowDirectoryChooser')) {\n\t\t\tbuttonEnableDisable.prop('disabled', false)\n\t\t} else {\n\t\t\tbuttonEnableDisable.prop('disabled', true)\n\t\t}\n\t},\n\t/**\n\t * handle clicks made in the filepicker\n\t */\n\t_handlePickerClick: function(event, $element, type) {\n\t\tvar getOcDialog = this.$filePicker.closest('.oc-dialog')\n\t\tvar buttonEnableDisable = getOcDialog.find('.primary')\n\t\tif ($element.data('type') === 'file') {\n\t\t\tif (this.$filePicker.data('multiselect') !== true || !event.ctrlKey) {\n\t\t\t\tthis.$filelist.find('.filepicker_element_selected').removeClass('filepicker_element_selected')\n\t\t\t}\n\t\t\t$element.toggleClass('filepicker_element_selected')\n\t\t\tbuttonEnableDisable.prop('disabled', false)\n\t\t} else if ($element.data('type') === 'dir') {\n\t\t\tthis._fillFilePicker(this.$filePicker.data('path') + '/' + $element.data('entryname'))\n\t\t\tthis._changeButtonsText(type, $element.data('entryname'))\n\t\t\tif (this.$filePicker.data('mimetype').indexOf('httpd/unix-directory') !== -1 || this.$filePicker.data('allowDirectoryChooser')) {\n\t\t\t\tbuttonEnableDisable.prop('disabled', false)\n\t\t\t} else {\n\t\t\t\tbuttonEnableDisable.prop('disabled', true)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Handle\n\t * @param type of action\n\t * @param dir on which to change buttons text\n\t * @private\n\t */\n\t_changeButtonsText: function(type, dir) {\n\t\tvar copyText = dir === '' ? t('core', 'Copy') : t('core', 'Copy to {folder}', { folder: dir })\n\t\tvar moveText = dir === '' ? t('core', 'Move') : t('core', 'Move to {folder}', { folder: dir })\n\t\tvar buttons = $('.oc-dialog-buttonrow button')\n\t\tswitch (type) {\n\t\t\tcase this.FILEPICKER_TYPE_CHOOSE:\n\t\t\t\tbreak\n\t\t\tcase this.FILEPICKER_TYPE_CUSTOM:\n\t\t\t\tbreak\n\t\t\tcase this.FILEPICKER_TYPE_COPY:\n\t\t\t\tbuttons.text(copyText)\n\t\t\t\tbreak\n\t\t\tcase this.FILEPICKER_TYPE_MOVE:\n\t\t\t\tbuttons.text(moveText)\n\t\t\t\tbreak\n\t\t\tcase this.FILEPICKER_TYPE_COPY_MOVE:\n\t\t\t\tbuttons.eq(0).text(copyText)\n\t\t\t\tbuttons.eq(1).text(moveText)\n\t\t\t\tbreak\n\t\t}\n\t}\n}\n\nexport default Dialogs\n","/* eslint-disable */\n/**\n * ownCloud\n *\n * @author Robin Appelman\n * @copyright 2012 Robin Appelman icewind1991@gmail.com\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE\n * License as published by the Free Software Foundation; either\n * version 3 of the License, or any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU AFFERO GENERAL PUBLIC LICENSE for more details.\n *\n * You should have received a copy of the GNU Affero General Public\n * License along with this library. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Wrapper for server side events\n * (http://en.wikipedia.org/wiki/Server-sent_events)\n * includes a fallback for older browsers and IE\n *\n * use server side events with caution, too many open requests can hang the\n * server\n */\n\n/* global EventSource */\n\nimport $ from 'jquery'\n\nimport { getToken } from './requesttoken'\n\n/**\n * Create a new event source\n * @param {string} src\n * @param {object} [data] to be send as GET\n *\n * @constructs OCEventSource\n */\nconst OCEventSource = function(src, data) {\n\tvar dataStr = ''\n\tvar name\n\tvar joinChar\n\tthis.typelessListeners = []\n\tthis.closed = false\n\tthis.listeners = {}\n\tif (data) {\n\t\tfor (name in data) {\n\t\t\tdataStr += name + '=' + encodeURIComponent(data[name]) + '&'\n\t\t}\n\t}\n\tdataStr += 'requesttoken=' + encodeURIComponent(getToken())\n\tif (!this.useFallBack && typeof EventSource !== 'undefined') {\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tthis.source = new EventSource(src + joinChar + dataStr)\n\t\tthis.source.onmessage = function(e) {\n\t\t\tfor (var i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](JSON.parse(e.data))\n\t\t\t}\n\t\t}.bind(this)\n\t} else {\n\t\tvar iframeId = 'oc_eventsource_iframe_' + OCEventSource.iframeCount\n\t\tOCEventSource.fallBackSources[OCEventSource.iframeCount] = this\n\t\tthis.iframe = $('<iframe/>')\n\t\tthis.iframe.attr('id', iframeId)\n\t\tthis.iframe.hide()\n\n\t\tjoinChar = '&'\n\t\tif (src.indexOf('?') === -1) {\n\t\t\tjoinChar = '?'\n\t\t}\n\t\tthis.iframe.attr('src', src + joinChar + 'fallback=true&fallback_id=' + OCEventSource.iframeCount + '&' + dataStr)\n\t\t$('body').append(this.iframe)\n\t\tthis.useFallBack = true\n\t\tOCEventSource.iframeCount++\n\t}\n\t// add close listener\n\tthis.listen('__internal__', function(data) {\n\t\tif (data === 'close') {\n\t\t\tthis.close()\n\t\t}\n\t}.bind(this))\n}\nOCEventSource.fallBackSources = []\nOCEventSource.iframeCount = 0// number of fallback iframes\nOCEventSource.fallBackCallBack = function(id, type, data) {\n\tOCEventSource.fallBackSources[id].fallBackCallBack(type, data)\n}\nOCEventSource.prototype = {\n\ttypelessListeners: [],\n\tiframe: null,\n\tlisteners: {}, // only for fallback\n\tuseFallBack: false,\n\t/**\n\t * Fallback callback for browsers that don't have the\n\t * native EventSource object.\n\t *\n\t * Calls the registered listeners.\n\t *\n\t * @private\n\t * @param {String} type event type\n\t * @param {Object} data received data\n\t */\n\tfallBackCallBack: function(type, data) {\n\t\tvar i\n\t\t// ignore messages that might appear after closing\n\t\tif (this.closed) {\n\t\t\treturn\n\t\t}\n\t\tif (type) {\n\t\t\tif (typeof this.listeners.done !== 'undefined') {\n\t\t\t\tfor (i = 0; i < this.listeners[type].length; i++) {\n\t\t\t\t\tthis.listeners[type][i](data)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (i = 0; i < this.typelessListeners.length; i++) {\n\t\t\t\tthis.typelessListeners[i](data)\n\t\t\t}\n\t\t}\n\t},\n\tlastLength: 0, // for fallback\n\t/**\n\t * Listen to a given type of events.\n\t *\n\t * @param {String} type event type\n\t * @param {Function} callback event callback\n\t */\n\tlisten: function(type, callback) {\n\t\tif (callback && callback.call) {\n\n\t\t\tif (type) {\n\t\t\t\tif (this.useFallBack) {\n\t\t\t\t\tif (!this.listeners[type]) {\n\t\t\t\t\t\tthis.listeners[type] = []\n\t\t\t\t\t}\n\t\t\t\t\tthis.listeners[type].push(callback)\n\t\t\t\t} else {\n\t\t\t\t\tthis.source.addEventListener(type, function(e) {\n\t\t\t\t\t\tif (typeof e.data !== 'undefined') {\n\t\t\t\t\t\t\tcallback(JSON.parse(e.data))\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcallback('')\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.typelessListeners.push(callback)\n\t\t\t}\n\t\t}\n\t},\n\t/**\n\t * Closes this event source.\n\t */\n\tclose: function() {\n\t\tthis.closed = true\n\t\tif (typeof this.source !== 'undefined') {\n\t\t\tthis.source.close()\n\t\t}\n\t}\n}\n\nexport default OCEventSource\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { getCapabilities as realGetCapabilities } from '@nextcloud/capabilities'\n\n/**\n * Returns the capabilities\n *\n * @returns {Array} capabilities\n *\n * @since 14.0\n */\nexport const getCapabilities = () => {\n\tconsole.warn('OC.getCapabilities is deprecated and will be removed in Nextcloud 21. See @nextcloud/capabilities')\n\treturn realGetCapabilities()\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\n\nimport { menuSpeed } from './constants'\n\nexport let currentMenu = null\nexport let currentMenuToggle = null\n\n/**\n * For menu toggling\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n * @param {function|undefined} toggle callback invoked everytime the menu is opened\n * @param {boolean} headerMenu is this a top right header menu?\n * @returns {undefined}\n */\nexport const registerMenu = function($toggle, $menuEl, toggle, headerMenu) {\n\t$menuEl.addClass('menu')\n\tconst isClickableElement = $toggle.prop('tagName') === 'A' || $toggle.prop('tagName') === 'BUTTON'\n\n\t// On link and button, the enter key trigger a click event\n\t// Only use the click to avoid two fired events\n\t$toggle.on(isClickableElement ? 'click.menu' : 'click.menu keyup.menu', function(event) {\n\t\t// prevent the link event (append anchor to URL)\n\t\tevent.preventDefault()\n\n\t\t// allow enter key as a trigger\n\t\tif (event.key && event.key !== 'Enter') {\n\t\t\treturn\n\t\t}\n\n\t\tif ($menuEl.is(currentMenu)) {\n\t\t\thideMenus()\n\t\t\treturn\n\t\t} else if (currentMenu) {\n\t\t\t// another menu was open?\n\t\t\t// close it\n\t\t\thideMenus()\n\t\t}\n\n\t\tif (headerMenu === true) {\n\t\t\t$menuEl.parent().addClass('openedMenu')\n\t\t}\n\n\t\t// Set menu to expanded\n\t\t$toggle.attr('aria-expanded', true)\n\n\t\t$menuEl.slideToggle(menuSpeed, toggle)\n\t\tcurrentMenu = $menuEl\n\t\tcurrentMenuToggle = $toggle\n\t})\n}\n\n/**\n * Unregister a previously registered menu\n *\n * @param {jQuery} $toggle the toggle element\n * @param {jQuery} $menuEl the menu container element\n */\nexport const unregisterMenu = ($toggle, $menuEl) => {\n\t// close menu if opened\n\tif ($menuEl.is(currentMenu)) {\n\t\thideMenus()\n\t}\n\t$toggle.off('click.menu').removeClass('menutoggle')\n\t$menuEl.removeClass('menu')\n}\n\n/**\n * Hides any open menus\n *\n * @param {Function} complete callback when the hiding animation is done\n */\nexport const hideMenus = function(complete) {\n\tif (currentMenu) {\n\t\tconst lastMenu = currentMenu\n\t\tcurrentMenu.trigger(new $.Event('beforeHide'))\n\t\tcurrentMenu.slideUp(menuSpeed, function() {\n\t\t\tlastMenu.trigger(new $.Event('afterHide'))\n\t\t\tif (complete) {\n\t\t\t\tcomplete.apply(this, arguments)\n\t\t\t}\n\t\t})\n\t}\n\n\t// Set menu to closed\n\t$('.menutoggle').attr('aria-expanded', false)\n\n\t$('.openedMenu').removeClass('openedMenu')\n\tcurrentMenu = null\n\tcurrentMenuToggle = null\n}\n\n/**\n * Shows a given element as menu\n *\n * @param {Object} [$toggle=null] menu toggle\n * @param {Object} $menuEl menu element\n * @param {Function} complete callback when the showing animation is done\n */\nexport const showMenu = ($toggle, $menuEl, complete) => {\n\tif ($menuEl.is(currentMenu)) {\n\t\treturn\n\t}\n\thideMenus()\n\tcurrentMenu = $menuEl\n\tcurrentMenuToggle = $toggle\n\t$menuEl.trigger(new $.Event('beforeShow'))\n\t$menuEl.show()\n\t$menuEl.trigger(new $.Event('afterShow'))\n\t// no animation\n\tif (_.isFunction(complete)) {\n\t\tcomplete()\n\t}\n}\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nconst isAdmin = !!window._oc_isadmin\n\n/**\n * Returns whether the current user is an administrator\n *\n * @returns {bool} true if the user is an admin, false otherwise\n * @since 9.0.0\n */\nexport const isUserAdmin = () => isAdmin\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport $ from 'jquery'\n\n/**\n * A little class to manage a status field for a \"saving\" process.\n * It can be used to display a starting message (e.g. \"Saving...\") and then\n * replace it with a green success message or a red error message.\n *\n * @namespace OC.msg\n */\nexport default {\n\t/**\n\t * Displayes a \"Saving...\" message in the given message placeholder\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t */\n\tstartSaving: function(selector) {\n\t\tthis.startAction(selector, t('core', 'Saving …'))\n\t},\n\n\t/**\n\t * Displayes a custom message in the given message placeholder\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t * @param {string} message Plain text message to display (no HTML allowed)\n\t */\n\tstartAction: function(selector, message) {\n\t\t$(selector).text(message)\n\t\t\t.removeClass('success')\n\t\t\t.removeClass('error')\n\t\t\t.stop(true, true)\n\t\t\t.show()\n\t},\n\n\t/**\n\t * Displayes an success/error message in the given selector\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t * @param {Object} response Response of the server\n\t * @param {Object} response.data Data of the servers response\n\t * @param {string} response.data.message Plain text message to display (no HTML allowed)\n\t * @param {string} response.status is being used to decide whether the message\n\t * is displayed as an error/success\n\t */\n\tfinishedSaving: function(selector, response) {\n\t\tthis.finishedAction(selector, response)\n\t},\n\n\t/**\n\t * Displayes an success/error message in the given selector\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t * @param {Object} response Response of the server\n\t * @param {Object} response.data Data of the servers response\n\t * @param {string} response.data.message Plain text message to display (no HTML allowed)\n\t * @param {string} response.status is being used to decide whether the message\n\t * is displayed as an error/success\n\t */\n\tfinishedAction: function(selector, response) {\n\t\tif (response.status === 'success') {\n\t\t\tthis.finishedSuccess(selector, response.data.message)\n\t\t} else {\n\t\t\tthis.finishedError(selector, response.data.message)\n\t\t}\n\t},\n\n\t/**\n\t * Displayes an success message in the given selector\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t * @param {string} message Plain text success message to display (no HTML allowed)\n\t */\n\tfinishedSuccess: function(selector, message) {\n\t\t$(selector).text(message)\n\t\t\t.addClass('success')\n\t\t\t.removeClass('error')\n\t\t\t.stop(true, true)\n\t\t\t.delay(3000)\n\t\t\t.fadeOut(900)\n\t\t\t.show()\n\t},\n\n\t/**\n\t * Displayes an error message in the given selector\n\t *\n\t * @param {Object} selector Placeholder to display the message in\n\t * @param {string} message Plain text error message to display (no HTML allowed)\n\t */\n\tfinishedError: function(selector, message) {\n\t\t$(selector).text(message)\n\t\t\t.addClass('error')\n\t\t\t.removeClass('success')\n\t\t\t.show()\n\t},\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport OC from './index'\n\n/**\n * Do a search query and display the results\n * @param {string} query the search query\n */\nconst search = function(query) {\n\tOC.Search.search(query, null, 0, 30)\n}\n\n/**\n * @namespace OC.search\n */\nsearch.customResults = {}\n/**\n * @deprecated use get/setFormatter() instead\n */\nsearch.resultTypes = {}\n\nexport default search\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nexport const theme = window._theme || {}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport $ from 'jquery'\nimport moment from 'moment'\n\nimport History from './util-history'\nimport OC from './index'\nimport humanFileSize from '../Util/human-file-size'\n\nfunction chunkify(t) {\n\t// Adapted from http://my.opera.com/GreyWyvern/blog/show.dml/1671288\n\tconst tz = []\n\tlet x = 0\n\tlet y = -1\n\tlet n = 0\n\tlet c\n\n\twhile (x < t.length) {\n\t\tc = t.charAt(x)\n\t\t// only include the dot in strings\n\t\tconst m = ((!n && c === '.') || (c >= '0' && c <= '9'))\n\t\tif (m !== n) {\n\t\t\t// next chunk\n\t\t\ty++\n\t\t\ttz[y] = ''\n\t\t\tn = m\n\t\t}\n\t\ttz[y] += c\n\t\tx++\n\t}\n\treturn tz\n}\n\n/**\n * Utility functions\n * @namespace OC.Util\n */\nexport default {\n\n\tHistory,\n\n\thumanFileSize,\n\n\t/**\n\t * Returns a file size in bytes from a humanly readable string\n\t * Makes 2kB to 2048.\n\t * Inspired by computerFileSize in helper.php\n\t * @param {string} string file size in human readable format\n\t * @returns {number} or null if string could not be parsed\n\t *\n\t *\n\t */\n\tcomputerFileSize: function(string) {\n\t\tif (typeof string !== 'string') {\n\t\t\treturn null\n\t\t}\n\n\t\tconst s = string.toLowerCase().trim()\n\t\tlet bytes = null\n\n\t\tconst bytesArray = {\n\t\t\t'b': 1,\n\t\t\t'k': 1024,\n\t\t\t'kb': 1024,\n\t\t\t'mb': 1024 * 1024,\n\t\t\t'm': 1024 * 1024,\n\t\t\t'gb': 1024 * 1024 * 1024,\n\t\t\t'g': 1024 * 1024 * 1024,\n\t\t\t'tb': 1024 * 1024 * 1024 * 1024,\n\t\t\t't': 1024 * 1024 * 1024 * 1024,\n\t\t\t'pb': 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t\t'p': 1024 * 1024 * 1024 * 1024 * 1024,\n\t\t}\n\n\t\tconst matches = s.match(/^[\\s+]?([0-9]*)(\\.([0-9]+))?( +)?([kmgtp]?b?)$/i)\n\t\tif (matches !== null) {\n\t\t\tbytes = parseFloat(s)\n\t\t\tif (!isFinite(bytes)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t\tif (matches[5]) {\n\t\t\tbytes = bytes * bytesArray[matches[5]]\n\t\t}\n\n\t\tbytes = Math.round(bytes)\n\t\treturn bytes\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @param {string} format date format, see momentjs docs\n\t * @returns {string} timestamp formatted as requested\n\t */\n\tformatDate: function(timestamp, format) {\n\t\tconsole.warn('OC.Util.formatDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\tformat = format || 'LLL'\n\t\treturn moment(timestamp).format(format)\n\t},\n\n\t/**\n\t * @param {string|number} timestamp timestamp\n\t * @returns {string} human readable difference from now\n\t */\n\trelativeModifiedDate: function(timestamp) {\n\t\tconsole.warn('OC.Util.relativeModifiedDate is deprecated and will be removed in Nextcloud 21. See @nextcloud/moment')\n\t\tconst diff = moment().diff(moment(timestamp))\n\t\tif (diff >= 0 && diff < 45000) {\n\t\t\treturn t('core', 'seconds ago')\n\t\t}\n\t\treturn moment(timestamp).fromNow()\n\t},\n\n\t/**\n\t * Returns whether this is IE\n\t *\n\t * @returns {bool} true if this is IE, false otherwise\n\t */\n\tisIE: function() {\n\t\treturn $('html').hasClass('ie')\n\t},\n\n\t/**\n\t * Returns the width of a generic browser scrollbar\n\t *\n\t * @returns {int} width of scrollbar\n\t */\n\tgetScrollBarWidth: function() {\n\t\tif (this._scrollBarWidth) {\n\t\t\treturn this._scrollBarWidth\n\t\t}\n\n\t\tconst inner = document.createElement('p')\n\t\tinner.style.width = '100%'\n\t\tinner.style.height = '200px'\n\n\t\tconst outer = document.createElement('div')\n\t\touter.style.position = 'absolute'\n\t\touter.style.top = '0px'\n\t\touter.style.left = '0px'\n\t\touter.style.visibility = 'hidden'\n\t\touter.style.width = '200px'\n\t\touter.style.height = '150px'\n\t\touter.style.overflow = 'hidden'\n\t\touter.appendChild(inner)\n\n\t\tdocument.body.appendChild(outer)\n\t\tconst w1 = inner.offsetWidth\n\t\touter.style.overflow = 'scroll'\n\t\tlet w2 = inner.offsetWidth\n\t\tif (w1 === w2) {\n\t\t\tw2 = outer.clientWidth\n\t\t}\n\n\t\tdocument.body.removeChild(outer)\n\n\t\tthis._scrollBarWidth = (w1 - w2)\n\n\t\treturn this._scrollBarWidth\n\t},\n\n\t/**\n\t * Remove the time component from a given date\n\t *\n\t * @param {Date} date date\n\t * @returns {Date} date with stripped time\n\t */\n\tstripTime: function(date) {\n\t\t// FIXME: likely to break when crossing DST\n\t\t// would be better to use a library like momentJS\n\t\treturn new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\t},\n\n\t/**\n\t * Compare two strings to provide a natural sort\n\t * @param {string} a first string to compare\n\t * @param {string} b second string to compare\n\t * @returns {number} -1 if b comes before a, 1 if a comes before b\n\t * or 0 if the strings are identical\n\t */\n\tnaturalSortCompare: function(a, b) {\n\t\tlet x\n\t\tconst aa = chunkify(a)\n\t\tconst bb = chunkify(b)\n\n\t\tfor (x = 0; aa[x] && bb[x]; x++) {\n\t\t\tif (aa[x] !== bb[x]) {\n\t\t\t\tconst aNum = Number(aa[x]); const bNum = Number(bb[x])\n\t\t\t\t// note: == is correct here\n\t\t\t\t/* eslint-disable-next-line */\n\t\t\t\tif (aNum == aa[x] && bNum == bb[x]) {\n\t\t\t\t\treturn aNum - bNum\n\t\t\t\t} else {\n\t\t\t\t\t// Note: This locale setting isn't supported by all browsers but for the ones\n\t\t\t\t\t// that do there will be more consistency between client-server sorting\n\t\t\t\t\treturn aa[x].localeCompare(bb[x], OC.getLanguage())\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn aa.length - bb.length\n\t},\n\n\t/**\n\t * Calls the callback in a given interval until it returns true\n\t * @param {function} callback function to call on success\n\t * @param {integer} interval in milliseconds\n\t */\n\twaitFor: function(callback, interval) {\n\t\tconst internalCallback = function() {\n\t\t\tif (callback() !== true) {\n\t\t\t\tsetTimeout(internalCallback, interval)\n\t\t\t}\n\t\t}\n\n\t\tinternalCallback()\n\t},\n\n\t/**\n\t * Checks if a cookie with the given name is present and is set to the provided value.\n\t * @param {string} name name of the cookie\n\t * @param {string} value value of the cookie\n\t * @returns {boolean} true if the cookie with the given name has the given value\n\t */\n\tisCookieSetToValue: function(name, value) {\n\t\tconst cookies = document.cookie.split(';')\n\t\tfor (let i = 0; i < cookies.length; i++) {\n\t\t\tconst cookie = cookies[i].split('=')\n\t\t\tif (cookie[0].trim() === name && cookie[1].trim() === value) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\treturn false\n\t},\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport OC from './index'\n\n/**\n * Utility class for the history API,\n * includes fallback to using the URL hash when\n * the browser doesn't support the history API.\n *\n * @namespace OC.Util.History\n */\nexport default {\n\n\t_handlers: [],\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {Object|string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t * @param {boolean} [replace=false] whether to replace instead of pushing\n\t */\n\t_pushState: function(params, url, replace) {\n\t\tlet strParams\n\t\tif (typeof (params) === 'string') {\n\t\t\tstrParams = params\n\t\t} else {\n\t\t\tstrParams = OC.buildQueryString(params)\n\t\t}\n\n\t\tif (window.history.pushState) {\n\t\t\turl = url || location.pathname + '?' + strParams\n\t\t\t// Workaround for bug with SVG and window.history.pushState on Firefox < 51\n\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=652991\n\t\t\tconst isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1\n\t\t\tif (isFirefox && parseInt(navigator.userAgent.split('/').pop()) < 51) {\n\t\t\t\tconst patterns = document.querySelectorAll('[fill^=\"url(#\"], [stroke^=\"url(#\"], [filter^=\"url(#invert\"]')\n\t\t\t\tfor (let i = 0, ii = patterns.length, pattern; i < ii; i++) {\n\t\t\t\t\tpattern = patterns[i]\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.fill = pattern.style.fill\n\t\t\t\t\t// eslint-disable-next-line no-self-assign\n\t\t\t\t\tpattern.style.stroke = pattern.style.stroke\n\t\t\t\t\tpattern.removeAttribute('filter')\n\t\t\t\t\tpattern.setAttribute('filter', 'url(#invert)')\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (replace) {\n\t\t\t\twindow.history.replaceState(params, '', url)\n\t\t\t} else {\n\t\t\t\twindow.history.pushState(params, '', url)\n\t\t\t}\n\t\t} else {\n\t\t\t// use URL hash for IE8\n\t\t\twindow.location.hash = '?' + strParams\n\t\t\t// inhibit next onhashchange that just added itself\n\t\t\t// to the event queue\n\t\t\tthis._cancelPop = true\n\t\t}\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {Object|string} params to append to the URL, can be either a string or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used, using the params as query string\n\t */\n\tpushState: function(params, url) {\n\t\tthis._pushState(params, url, false)\n\t},\n\n\t/**\n\t * Push the current URL parameters to the history stack\n\t * and change the visible URL.\n\t * Note: this includes a workaround for IE8/IE9 that uses\n\t * the hash part instead of the search part.\n\t *\n\t * @param {Object|string} params to append to the URL, can be either a string\n\t * or a map\n\t * @param {string} [url] URL to be used, otherwise the current URL will be used,\n\t * using the params as query string\n\t */\n\treplaceState: function(params, url) {\n\t\tthis._pushState(params, url, true)\n\t},\n\n\t/**\n\t * Add a popstate handler\n\t *\n\t * @param {Function} handler handler\n\t */\n\taddOnPopStateHandler: function(handler) {\n\t\tthis._handlers.push(handler)\n\t},\n\n\t/**\n\t * Parse a query string from the hash part of the URL.\n\t * (workaround for IE8 / IE9)\n\t * @returns {string}\n\t */\n\t_parseHashQuery: function() {\n\t\tconst hash = window.location.hash\n\t\tconst pos = hash.indexOf('?')\n\t\tif (pos >= 0) {\n\t\t\treturn hash.substr(pos + 1)\n\t\t}\n\t\tif (hash.length) {\n\t\t\t// remove hash sign\n\t\t\treturn hash.substr(1)\n\t\t}\n\t\treturn ''\n\t},\n\n\t_decodeQuery: function(query) {\n\t\treturn query.replace(/\\+/g, ' ')\n\t},\n\n\t/**\n\t * Parse the query/search part of the URL.\n\t * Also try and parse it from the URL hash (for IE8)\n\t *\n\t * @returns {Object} map of parameters\n\t */\n\tparseUrlQuery: function() {\n\t\tconst query = this._parseHashQuery()\n\t\tlet params\n\t\t// try and parse from URL hash first\n\t\tif (query) {\n\t\t\tparams = OC.parseQueryString(this._decodeQuery(query))\n\t\t}\n\t\t// else read from query attributes\n\t\tparams = _.extend(params || {}, OC.parseQueryString(this._decodeQuery(location.search)))\n\t\treturn params || {}\n\t},\n\n\t_onPopState: function(e) {\n\t\tif (this._cancelPop) {\n\t\t\tthis._cancelPop = false\n\t\t\treturn\n\t\t}\n\t\tlet params\n\t\tif (!this._handlers.length) {\n\t\t\treturn\n\t\t}\n\t\tparams = (e && e.state)\n\t\tif (_.isString(params)) {\n\t\t\tparams = OC.parseQueryString(params)\n\t\t} else if (!params) {\n\t\t\tparams = this.parseUrlQuery() || {}\n\t\t}\n\t\tfor (let i = 0; i < this._handlers.length; i++) {\n\t\t\tthis._handlers[i](params)\n\t\t}\n\t},\n}\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Returns a human readable file size\n * @param {number} size Size in bytes\n * @param {boolean} skipSmallSizes return '< 1 kB' for small files\n * @returns {string}\n */\nexport default function humanFileSize(size, skipSmallSizes) {\n\tconst humanList = ['B', 'KB', 'MB', 'GB', 'TB']\n\t// Calculate Log with base 1024: size = 1024 ** order\n\tlet order = size > 0 ? Math.floor(Math.log(size) / Math.log(1024)) : 0\n\t// Stay in range of the byte sizes that are defined\n\torder = Math.min(humanList.length - 1, order)\n\tconst readableFormat = humanList[order]\n\tlet relativeSize = (size / Math.pow(1024, order)).toFixed(1)\n\tif (skipSmallSizes === true && order === 0) {\n\t\tif (relativeSize !== '0.0') {\n\t\t\treturn '< 1 KB'\n\t\t} else {\n\t\t\treturn '0 KB'\n\t\t}\n\t}\n\tif (order < 2) {\n\t\trelativeSize = parseFloat(relativeSize).toFixed(0)\n\t} else if (relativeSize.substr(relativeSize.length - 2, 2) === '.0') {\n\t\trelativeSize = relativeSize.substr(0, relativeSize.length - 2)\n\t} else {\n\t\trelativeSize = parseFloat(relativeSize).toLocaleString(OC.getCanonicalLocale())\n\t}\n\treturn relativeSize + ' ' + readableFormat\n}\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nconst base = window._oc_debug\n\nexport const debug = base\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nlet webroot = window._oc_webroot\n\nif (typeof webroot === 'undefined') {\n\twebroot = location.pathname\n\tconst pos = webroot.indexOf('/index.php/')\n\tif (pos !== -1) {\n\t\twebroot = webroot.substr(0, pos)\n\t} else {\n\t\twebroot = webroot.substr(0, webroot.lastIndexOf('/'))\n\t}\n}\n\nexport default webroot\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Get a variable by name\n * @param {string} context context\n * @returns {Function} getter\n * @deprecated 19.0.0 use https://lodash.com/docs#get\n */\nexport const get = context => name => {\n\tconst namespaces = name.split('.')\n\tconst tail = namespaces.pop()\n\n\tfor (let i = 0; i < namespaces.length; i++) {\n\t\tcontext = context[namespaces[i]]\n\t\tif (!context) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn context[tail]\n}\n\n/**\n * Set a variable by name\n * @param {string} context context\n * @returns {Function} setter\n * @deprecated 19.0.0 use https://lodash.com/docs#set\n */\nexport const set = context => (name, value) => {\n\tconst namespaces = name.split('.')\n\tconst tail = namespaces.pop()\n\n\tfor (let i = 0; i < namespaces.length; i++) {\n\t\tif (!context[namespaces[i]]) {\n\t\t\tcontext[namespaces[i]] = {}\n\t\t}\n\t\tcontext = context[namespaces[i]]\n\t}\n\tcontext[tail] = value\n\treturn value\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { subscribe } from '@nextcloud/event-bus'\n\nimport { addScript, addStyle } from './legacy-loader'\nimport {\n\tajaxConnectionLostHandler,\n\tprocessAjaxError,\n\tregisterXHRForErrorProcessing,\n} from './xhr-error'\nimport Apps from './apps'\nimport { AppConfig, appConfig } from './appconfig'\nimport { appSettings } from './appsettings'\nimport appswebroots from './appswebroots'\nimport Backbone from './backbone'\nimport {\n\tbasename,\n\tdirname,\n\tencodePath,\n\tisSamePath,\n\tjoinPaths,\n} from '@nextcloud/paths'\nimport {\n\tbuild as buildQueryString,\n\tparse as parseQueryString,\n} from './query-string'\nimport Config from './config'\nimport {\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n} from './constants'\nimport ContactsMenu from './contactsmenu'\nimport { currentUser, getCurrentUser } from './currentuser'\nimport Dialogs from './dialogs'\nimport EventSource from './eventsource'\nimport { get, set } from './get_set'\nimport { getCapabilities } from './capabilities'\nimport {\n\tgetHost,\n\tgetHostName,\n\tgetPort,\n\tgetProtocol,\n} from './host'\nimport {\n\tgetToken as getRequestToken,\n} from './requesttoken'\nimport {\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n} from './menu'\nimport { isUserAdmin } from './admin'\nimport L10N, {\n\tgetCanonicalLocale,\n\tgetLanguage,\n\tgetLocale,\n} from './l10n'\n\nimport {\n\tgenerateUrl,\n\tgenerateFilePath,\n\tgenerateOcsUrl,\n\tgenerateRemoteUrl,\n\tgetRootUrl,\n\timagePath,\n\tlinkTo,\n} from '@nextcloud/router'\n\nimport {\n\tlinkToRemoteBase,\n} from './routing'\nimport msg from './msg'\nimport Notification from './notification'\nimport PasswordConfirmation from './password-confirmation'\nimport Plugins from './plugins'\nimport search from './search'\nimport { theme } from './theme'\nimport Util from './util'\nimport { debug } from './debug'\nimport { redirect, reload } from './navigation'\nimport webroot from './webroot'\n\n/** @namespace OC */\nexport default {\n\t/*\n\t * Constants\n\t */\n\tcoreApps,\n\tmenuSpeed,\n\tPERMISSION_ALL,\n\tPERMISSION_CREATE,\n\tPERMISSION_DELETE,\n\tPERMISSION_NONE,\n\tPERMISSION_READ,\n\tPERMISSION_SHARE,\n\tPERMISSION_UPDATE,\n\tTAG_FAVORITE,\n\n\t/*\n\t * Deprecated helpers to be removed\n\t */\n\t/**\n\t * Check if a user file is allowed to be handled.\n\t * @param {string} file to check\n\t * @returns {Boolean}\n\t * @deprecated 17.0.0\n\t */\n\tfileIsBlacklisted: file => !!(file.match(Config.blacklist_files_regex)),\n\n\taddScript,\n\taddStyle,\n\tApps,\n\tAppConfig,\n\tappConfig,\n\tappSettings,\n\tappswebroots,\n\tBackbone,\n\tContactsMenu,\n\tconfig: Config,\n\t/**\n\t * Currently logged in user or null if none\n\t *\n\t * @type String\n\t * @deprecated use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tcurrentUser,\n\tdialogs: Dialogs,\n\tEventSource,\n\t/**\n\t * Returns the currently logged in user or null if there is no logged in\n\t * user (public page mode)\n\t *\n\t * @since 9.0.0\n\t * @deprecated 19.0.0 use `getCurrentUser` from https://www.npmjs.com/package/@nextcloud/auth\n\t */\n\tgetCurrentUser,\n\tisUserAdmin,\n\tL10N,\n\n\t/**\n\t * Ajax error handlers\n\t * @todo remove from here and keep internally -> requires new tests\n\t */\n\t_ajaxConnectionLostHandler: ajaxConnectionLostHandler,\n\t_processAjaxError: processAjaxError,\n\tregisterXHRForErrorProcessing,\n\n\t/**\n\t * Capabilities\n\t *\n\t * @type {Array}\n\t * @deprecated 17.0.0 use OC.getCapabilities() instead\n\t */\n\t_capabilities: getCapabilities(),\n\tgetCapabilities,\n\n\t/*\n\t * Legacy menu helpers\n\t */\n\thideMenus,\n\tregisterMenu,\n\tshowMenu,\n\tunregisterMenu,\n\n\t/*\n\t * Path helpers\n\t */\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tbasename,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tencodePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tdirname,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tisSamePath,\n\t/**\n\t * @deprecated 18.0.0 use https://www.npmjs.com/package/@nextcloud/paths\n\t */\n\tjoinPaths,\n\n\t/**\n\t * Host (url) helpers\n\t */\n\tgetHost,\n\tgetHostName,\n\tgetPort,\n\tgetProtocol,\n\n\t/**\n\t * L10n\n\t */\n\tgetCanonicalLocale,\n\tgetLocale,\n\tgetLanguage,\n\t/**\n\t * Loads translations for the given app asynchronously.\n\t *\n\t * @param {String} app app name\n\t * @param {Function} callback callback to call after loading\n\t * @return {Promise}\n\t * @deprecated 17.0.0 use OC.L10N.load instead\n\t */\n\taddTranslations: L10N.load,\n\n\t/**\n\t * Query string helpers\n\t */\n\tbuildQueryString,\n\tparseQueryString,\n\n\tmsg,\n\tNotification,\n\tPasswordConfirmation,\n\tPlugins,\n\tsearch,\n\ttheme,\n\tUtil,\n\tdebug,\n\t/**\n\t * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tfilePath: generateFilePath,\n\t/**\n\t * @deprecated 19.0.0 use `generateUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgenerateUrl,\n\t/**\n\t * @deprecated 19.0.0 use https://lodash.com/docs#get\n\t */\n\tget: get(window),\n\t/**\n\t * @deprecated 19.0.0 use https://lodash.com/docs#set\n\t */\n\tset: set(window),\n\t/**\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tgetRootPath: getRootUrl,\n\t/**\n\t * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\timagePath,\n\tredirect,\n\treload,\n\trequestToken: getRequestToken(),\n\t/**\n\t * @deprecated 19.0.0 use `linkTo` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkTo,\n\t/**\n\t * @deprecated 19.0.0 use `generateOcsUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToOCS: generateOcsUrl,\n\t/**\n\t * @deprecated 19.0.0 use `generateRemoteUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t */\n\tlinkToRemote: generateRemoteUrl,\n\tlinkToRemoteBase,\n\t/**\n\t * Relative path to Nextcloud root.\n\t * For example: \"/nextcloud\"\n\t *\n\t * @type string\n\t *\n\t * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n\t * @see OC#getRootPath\n\t */\n\twebroot,\n}\n\n// Keep the request token prop in sync\nsubscribe('csrf-token-update', e => {\n\tOC.requestToken = e.token\n\n\t// Logging might help debug (Sentry) issues\n\tconsole.info('OC.requestToken changed', e.token)\n})\n","/* eslint-disable */\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\nimport $ from 'jquery'\nimport { filePath } from './routing'\n\n/**\n * Opens a popup with the setting for an app.\n * @param {string} appid The ID of the app e.g. 'calendar', 'contacts' or 'files'.\n * @param {boolean|string} loadJS If true 'js/settings.js' is loaded. If it's a string\n * it will attempt to load a script by that name in the 'js' directory.\n * @param {boolean} [cache] If true the javascript file won't be forced refreshed. Defaults to true.\n * @param {string} [scriptName] The name of the PHP file to load. Defaults to 'settings.php' in\n * the root of the app directory hierarchy.\n *\n * @deprecated 17.0.0 this method is unused and will be removed with Nextcloud 18\n */\nexport const appSettings = args => {\n\tconsole.warn('OC.appSettings is deprecated and will be removed with Nextcloud 18')\n\n\tif (typeof args === 'undefined' || typeof args.appid === 'undefined') {\n\t\tthrow {\n\t\t\tname: 'MissingParameter',\n\t\t\tmessage: 'The parameter appid is missing'\n\t\t}\n\t}\n\tvar props = { scriptName: 'settings.php', cache: true }\n\t$.extend(props, args)\n\tvar settings = $('#appsettings')\n\tif (settings.length === 0) {\n\t\tthrow {\n\t\t\tname: 'MissingDOMElement',\n\t\t\tmessage: 'There has be be an element with id \"appsettings\" for the popup to show.'\n\t\t}\n\t}\n\tvar popup = $('#appsettings_popup')\n\tif (popup.length === 0) {\n\t\t$('body').prepend('<div class=\"popup hidden\" id=\"appsettings_popup\"></div>')\n\t\tpopup = $('#appsettings_popup')\n\t\tpopup.addClass(settings.hasClass('topright') ? 'topright' : 'bottomleft')\n\t}\n\tif (popup.is(':visible')) {\n\t\tpopup.hide().remove()\n\t} else {\n\t\tconst arrowclass = settings.hasClass('topright') ? 'up' : 'left'\n\t\t$.get(filePath(props.appid, '', props.scriptName), function(data) {\n\t\t\tpopup.html(data).ready(function() {\n\t\t\t\tpopup.prepend('<span class=\"arrow ' + arrowclass + '\"></span><h2>' + t('core', 'Settings') + '</h2><a class=\"close\"></a>').show()\n\t\t\t\tpopup.find('.close').bind('click', function() {\n\t\t\t\t\tpopup.remove()\n\t\t\t\t})\n\t\t\t\tif (typeof props.loadJS !== 'undefined') {\n\t\t\t\t\tvar scriptname\n\t\t\t\t\tif (props.loadJS === true) {\n\t\t\t\t\t\tscriptname = 'settings.js'\n\t\t\t\t\t} else if (typeof props.loadJS === 'string') {\n\t\t\t\t\t\tscriptname = props.loadJS\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow {\n\t\t\t\t\t\t\tname: 'InvalidParameter',\n\t\t\t\t\t\t\tmessage: 'The \"loadJS\" parameter must be either boolean or a string.'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (props.cache) {\n\t\t\t\t\t\t$.ajaxSetup({ cache: true })\n\t\t\t\t\t}\n\t\t\t\t\t$.getScript(filePath(props.appid, 'js', scriptname))\n\t\t\t\t\t\t.fail(function(jqxhr, settings, e) {\n\t\t\t\t\t\t\tthrow e\n\t\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}).show()\n\t\t}, 'html')\n\t}\n}\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Protocol that is used to access this Nextcloud instance\n * @returns {string} Used protocol\n * @deprecated 17.0.0 use window.location.protocol directly\n */\nexport const getProtocol = () => window.location.protocol.split(':')[0]\n\n/**\n * Returns the host used to access this Nextcloud instance\n * Host is sometimes the same as the hostname but now always.\n *\n * Examples:\n * http://example.com => example.com\n * https://example.com => example.com\n * http://example.com:8080 => example.com:8080\n *\n * @returns {string} host\n *\n * @since 8.2\n * @deprecated 17.0.0 use window.location.host directly\n */\nexport const getHost = () => window.location.host\n\n/**\n * Returns the hostname used to access this Nextcloud instance\n * The hostname is always stripped of the port\n *\n * @returns {string} hostname\n * @since 9.0\n * @deprecated 17.0.0 use window.location.hostname directly\n */\nexport const getHostName = () => window.location.hostname\n\n/**\n * Returns the port number used to access this Nextcloud instance\n *\n * @returns {int} port number\n *\n * @since 8.2\n * @deprecated 17.0.0 use window.location.port directly\n */\nexport const getPort = () => window.location.port\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * @namespace OC.Plugins\n */\nexport default {\n\n\t/**\n\t * @type Array.<OC.Plugin>\n\t */\n\t_plugins: {},\n\n\t/**\n\t * Register plugin\n\t *\n\t * @param {String} targetName app name / class name to hook into\n\t * @param {OC.Plugin} plugin plugin\n\t */\n\tregister: function(targetName, plugin) {\n\t\tlet plugins = this._plugins[targetName]\n\t\tif (!plugins) {\n\t\t\tplugins = this._plugins[targetName] = []\n\t\t}\n\t\tplugins.push(plugin)\n\t},\n\n\t/**\n\t * Returns all plugin registered to the given target\n\t * name / app name / class name.\n\t *\n\t * @param {String} targetName app name / class name to hook into\n\t * @returns {Array.<OC.Plugin>} array of plugins\n\t */\n\tgetPlugins: function(targetName) {\n\t\treturn this._plugins[targetName] || []\n\t},\n\n\t/**\n\t * Call attach() on all plugins registered to the given target name.\n\t *\n\t * @param {String} targetName app name / class name\n\t * @param {Object} targetObject to be extended\n\t * @param {Object} [options] options\n\t */\n\tattach: function(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].attach) {\n\t\t\t\tplugins[i].attach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Call detach() on all plugins registered to the given target name.\n\t *\n\t * @param {String} targetName app name / class name\n\t * @param {Object} targetObject to be extended\n\t * @param {Object} [options] options\n\t */\n\tdetach: function(targetName, targetObject, options) {\n\t\tconst plugins = this.getPlugins(targetName)\n\t\tfor (let i = 0; i < plugins.length; i++) {\n\t\t\tif (plugins[i].detach) {\n\t\t\t\tplugins[i].detach(targetObject, options)\n\t\t\t}\n\t\t}\n\t},\n\n}\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Redirect to the target URL, can also be used for downloads.\n * @param {string} targetURL URL to redirect to\n * @deprecated 17.0.0 use window.location directly\n */\nexport const redirect = targetURL => { window.location = targetURL }\n\n/**\n * Reloads the current page\n * @deprecated 17.0.0 use window.location.reload directly\n */\nexport const reload = () => { window.location.reload() }\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software = you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation either version 3 of the\n * License or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not see <http://www.gnu.org/licenses/>.\n */\n\nexport const coreApps = ['', 'admin', 'log', 'core/search', 'core', '3rdparty']\nexport const menuSpeed = 50\nexport const PERMISSION_NONE = 0\nexport const PERMISSION_CREATE = 4\nexport const PERMISSION_READ = 1\nexport const PERMISSION_UPDATE = 2\nexport const PERMISSION_DELETE = 8\nexport const PERMISSION_SHARE = 16\nexport const PERMISSION_ALL = 31\nexport const TAG_FAVORITE = '_$!<Favorite>!$_'\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","// Underscore.js 1.10.2\n// https://underscorejs.org\n// (c) 2009-2020 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n// Baseline setup\n// --------------\n\n// Establish the root object, `window` (`self`) in the browser, `global`\n// on the server, or `this` in some virtual machines. We use `self`\n// instead of `window` for `WebWorker` support.\nvar root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n Function('return this')() ||\n {};\n\n// Save bytes in the minified (but not gzipped) version:\nvar ArrayProto = Array.prototype, ObjProto = Object.prototype;\nvar SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n// Create quick reference variables for speed access to core prototypes.\nvar push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n// All **ECMAScript 5** native function implementations that we hope to use\n// are declared here.\nvar nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n// Create references to these builtin functions because we override them.\nvar _isNaN = root.isNaN,\n _isFinite = root.isFinite;\n\n// Naked function reference for surrogate-prototype-swapping.\nvar Ctor = function(){};\n\n// The Underscore object. All exported functions below are added to it in the\n// modules/index-all.js using the mixin function.\nexport default function _(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n}\n\n// Current version.\nexport var VERSION = _.VERSION = '1.10.2';\n\n// Internal function that returns an efficient (for current engines) version\n// of the passed-in callback, to be repeatedly applied in other Underscore\n// functions.\nfunction optimizeCb(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n}\n\n// An internal function to generate callbacks that can be applied to each\n// element in a collection, returning the desired result — either `identity`,\n// an arbitrary callback, a property matcher, or a property accessor.\nfunction baseIteratee(value, context, argCount) {\n if (value == null) return identity;\n if (isFunction(value)) return optimizeCb(value, context, argCount);\n if (isObject(value) && !isArray(value)) return matcher(value);\n return property(value);\n}\n\n// External wrapper for our callback generator. Users may customize\n// `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n// This abstraction hides the internal-only argCount argument.\n_.iteratee = iteratee;\nexport function iteratee(value, context) {\n return baseIteratee(value, context, Infinity);\n}\n\n// The function we actually call internally. It invokes _.iteratee if\n// overridden, otherwise baseIteratee.\nfunction cb(value, context, argCount) {\n if (_.iteratee !== iteratee) return _.iteratee(value, context);\n return baseIteratee(value, context, argCount);\n}\n\n// Some functions take a variable number of arguments, or a few expected\n// arguments at the beginning and then a variable number of values to operate\n// on. This helper accumulates all remaining arguments past the function’s\n// argument length (or an explicit `startIndex`), into an array that becomes\n// the last argument. Similar to ES6’s \"rest parameter\".\nexport function restArguments(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n}\n\n// An internal function for creating a new object that inherits from another.\nfunction baseCreate(prototype) {\n if (!isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n}\n\nfunction shallowProperty(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n}\n\nfunction _has(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n}\n\nfunction deepGet(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n}\n\n// Helper for collection methods to determine whether a collection\n// should be iterated as an array or as an object.\n// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\nvar MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\nvar getLength = shallowProperty('length');\nfunction isArrayLike(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n}\n\n// Collection Functions\n// --------------------\n\n// The cornerstone, an `each` implementation, aka `forEach`.\n// Handles raw objects in addition to array-likes. Treats all\n// sparse array-likes as if they were dense.\nexport function each(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var _keys = keys(obj);\n for (i = 0, length = _keys.length; i < length; i++) {\n iteratee(obj[_keys[i]], _keys[i], obj);\n }\n }\n return obj;\n}\nexport { each as forEach };\n\n// Return the results of applying the iteratee to each element.\nexport function map(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\nexport { map as collect };\n\n// Create a reducing function iterating left or right.\nfunction createReduce(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[_keys ? _keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = _keys ? _keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n}\n\n// **Reduce** builds up a single result from a list of values, aka `inject`,\n// or `foldl`.\nexport var reduce = createReduce(1);\nexport { reduce as foldl, reduce as inject };\n\n// The right-associative version of reduce, also known as `foldr`.\nexport var reduceRight = createReduce(-1);\nexport { reduceRight as foldr };\n\n// Return the first value which passes a truth test.\nexport function find(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? findIndex : findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n}\nexport { find as detect };\n\n// Return all the elements that pass a truth test.\nexport function filter(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n}\nexport { filter as select };\n\n// Return all the elements for which a truth test fails.\nexport function reject(obj, predicate, context) {\n return filter(obj, negate(cb(predicate)), context);\n}\n\n// Determine whether all of the elements match a truth test.\nexport function every(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n}\nexport { every as all };\n\n// Determine if at least one element in the object matches a truth test.\nexport function some(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = !isArrayLike(obj) && keys(obj),\n length = (_keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = _keys ? _keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n}\nexport { some as any };\n\n// Determine if the array or object contains a given item (using `===`).\nexport function contains(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return indexOf(obj, item, fromIndex) >= 0;\n}\nexport { contains as includes, contains as include };\n\n// Invoke a method (with arguments) on every item in a collection.\nexport var invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (isFunction(path)) {\n func = path;\n } else if (isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n});\n\n// Convenience version of a common use case of `map`: fetching a property.\nexport function pluck(obj, key) {\n return map(obj, property(key));\n}\n\n// Convenience version of a common use case of `filter`: selecting only objects\n// containing specific `key:value` pairs.\nexport function where(obj, attrs) {\n return filter(obj, matcher(attrs));\n}\n\n// Convenience version of a common use case of `find`: getting the first object\n// containing specific `key:value` pairs.\nexport function findWhere(obj, attrs) {\n return find(obj, matcher(attrs));\n}\n\n// Return the maximum element (or element-based computation).\nexport function max(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Return the minimum element (or element-based computation).\nexport function min(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n}\n\n// Shuffle a collection.\nexport function shuffle(obj) {\n return sample(obj, Infinity);\n}\n\n// Sample **n** random values from a collection using the modern version of the\n// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n// If **n** is not specified, returns a single random element.\n// The internal `guard` argument allows it to work with `map`.\nexport function sample(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = values(obj);\n return obj[random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? clone(obj) : values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n}\n\n// Sort the object's values by a criterion produced by an iteratee.\nexport function sortBy(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return pluck(map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n}\n\n// An internal function used for aggregate \"group by\" operations.\nfunction group(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n}\n\n// Groups the object's values by a criterion. Pass either a string attribute\n// to group by, or a function that returns the criterion.\nexport var groupBy = group(function(result, value, key) {\n if (_has(result, key)) result[key].push(value); else result[key] = [value];\n});\n\n// Indexes the object's values by a criterion, similar to `groupBy`, but for\n// when you know that your index values will be unique.\nexport var indexBy = group(function(result, value, key) {\n result[key] = value;\n});\n\n// Counts instances of an object that group by a certain criterion. Pass\n// either a string attribute to count by, or a function that returns the\n// criterion.\nexport var countBy = group(function(result, value, key) {\n if (_has(result, key)) result[key]++; else result[key] = 1;\n});\n\nvar reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n// Safely create a real, live array from anything iterable.\nexport function toArray(obj) {\n if (!obj) return [];\n if (isArray(obj)) return slice.call(obj);\n if (isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return map(obj, identity);\n return values(obj);\n}\n\n// Return the number of elements in an object.\nexport function size(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : keys(obj).length;\n}\n\n// Split a collection into two arrays: one whose elements all satisfy the given\n// predicate, and one whose elements all do not satisfy the predicate.\nexport var partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n}, true);\n\n// Array Functions\n// ---------------\n\n// Get the first element of an array. Passing **n** will return the first N\n// values in the array. The **guard** check allows it to work with `map`.\nexport function first(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return initial(array, array.length - n);\n}\nexport { first as head, first as take };\n\n// Returns everything but the last entry of the array. Especially useful on\n// the arguments object. Passing **n** will return all the values in\n// the array, excluding the last N.\nexport function initial(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n}\n\n// Get the last element of an array. Passing **n** will return the last N\n// values in the array.\nexport function last(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return rest(array, Math.max(0, array.length - n));\n}\n\n// Returns everything but the first entry of the array. Especially useful on\n// the arguments object. Passing an **n** will return the rest N values in the\n// array.\nexport function rest(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n}\nexport { rest as tail, rest as drop };\n\n// Trim out all falsy values from an array.\nexport function compact(array) {\n return filter(array, Boolean);\n}\n\n// Internal implementation of a recursive `flatten` function.\nfunction _flatten(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (isArray(value) || isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n _flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n}\n\n// Flatten out an array, either recursively (by default), or just one level.\nexport function flatten(array, shallow) {\n return _flatten(array, shallow, false);\n}\n\n// Return a version of the array that does not contain the specified value(s).\nexport var without = restArguments(function(array, otherArrays) {\n return difference(array, otherArrays);\n});\n\n// Produce a duplicate-free version of the array. If the array has already\n// been sorted, you have the option of using a faster algorithm.\n// The faster algorithm will not work with an iteratee if the iteratee\n// is not a one-to-one function, so providing an iteratee will disable\n// the faster algorithm.\nexport function uniq(array, isSorted, iteratee, context) {\n if (!isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n}\nexport { uniq as unique };\n\n// Produce an array that contains the union: each distinct element from all of\n// the passed-in arrays.\nexport var union = restArguments(function(arrays) {\n return uniq(_flatten(arrays, true, true));\n});\n\n// Produce an array that contains every item shared between all the\n// passed-in arrays.\nexport function intersection(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n}\n\n// Take the difference between one array and a number of other arrays.\n// Only the elements present in just the first array will remain.\nexport var difference = restArguments(function(array, rest) {\n rest = _flatten(rest, true, true);\n return filter(array, function(value){\n return !contains(rest, value);\n });\n});\n\n// Complement of zip. Unzip accepts an array of arrays and groups\n// each array's elements on shared indices.\nexport function unzip(array) {\n var length = array && max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = pluck(array, index);\n }\n return result;\n}\n\n// Zip together multiple lists into a single array -- elements that share\n// an index go together.\nexport var zip = restArguments(unzip);\n\n// Converts lists into objects. Pass either a single array of `[key, value]`\n// pairs, or two parallel arrays of the same length -- one of keys, and one of\n// the corresponding values. Passing by pairs is the reverse of pairs.\nexport function object(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n}\n\n// Generator function to create the findIndex and findLastIndex functions.\nfunction createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n}\n\n// Returns the first index on an array-like that passes a predicate test.\nexport var findIndex = createPredicateIndexFinder(1);\nexport var findLastIndex = createPredicateIndexFinder(-1);\n\n// Use a comparator function to figure out the smallest index at which\n// an object should be inserted so as to maintain order. Uses binary search.\nexport function sortedIndex(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n}\n\n// Generator function to create the indexOf and lastIndexOf functions.\nfunction createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n}\n\n// Return the position of the first occurrence of an item in an array,\n// or -1 if the item is not included in the array.\n// If the array is large and already in sort order, pass `true`\n// for **isSorted** to use binary search.\nexport var indexOf = createIndexFinder(1, findIndex, sortedIndex);\nexport var lastIndexOf = createIndexFinder(-1, findLastIndex);\n\n// Generate an integer Array containing an arithmetic progression. A port of\n// the native Python `range()` function. See\n// [the Python documentation](https://docs.python.org/library/functions.html#range).\nexport function range(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n}\n\n// Chunk a single array into multiple arrays, each containing `count` or fewer\n// items.\nexport function chunk(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n}\n\n// Function (ahem) Functions\n// ------------------\n\n// Determines whether to execute a function as a constructor\n// or a normal function with the provided arguments.\nfunction executeBound(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (isObject(result)) return result;\n return self;\n}\n\n// Create a function bound to a given object (assigning `this`, and arguments,\n// optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n// available.\nexport var bind = restArguments(function(func, context, args) {\n if (!isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n});\n\n// Partially apply a function by creating a version that has had some of its\n// arguments pre-filled, without changing its dynamic `this` context. _ acts\n// as a placeholder by default, allowing any combination of arguments to be\n// pre-filled. Set `partial.placeholder` for a custom placeholder argument.\nexport var partial = restArguments(function(func, boundArgs) {\n var placeholder = partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n});\n\npartial.placeholder = _;\n\n// Bind a number of an object's methods to that object. Remaining arguments\n// are the method names to be bound. Useful for ensuring that all callbacks\n// defined on an object belong to it.\nexport var bindAll = restArguments(function(obj, _keys) {\n _keys = _flatten(_keys, false, false);\n var index = _keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = _keys[index];\n obj[key] = bind(obj[key], obj);\n }\n});\n\n// Memoize an expensive function by storing its results.\nexport function memoize(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n}\n\n// Delays a function for the given number of milliseconds, and then calls\n// it with the arguments supplied.\nexport var delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n});\n\n// Defers a function, scheduling it to run after the current call stack has\n// cleared.\nexport var defer = partial(delay, _, 1);\n\n// Returns a function, that, when invoked, will only be triggered at most once\n// during a given window of time. Normally, the throttled function will run\n// as much as it can, without ever going more than once per `wait` duration;\n// but if you'd like to disable the execution on the leading edge, pass\n// `{leading: false}`. To disable execution on the trailing edge, ditto.\nexport function throttle(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var _now = now();\n if (!previous && options.leading === false) previous = _now;\n var remaining = wait - (_now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = _now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n}\n\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n}\n\n// Returns the first function passed as an argument to the second,\n// allowing you to adjust arguments, run code before and after, and\n// conditionally execute the original function.\nexport function wrap(func, wrapper) {\n return partial(wrapper, func);\n}\n\n// Returns a negated version of the passed-in predicate.\nexport function negate(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n}\n\n// Returns a function that is the composition of a list of functions, each\n// consuming the return value of the function that follows.\nexport function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n}\n\n// Returns a function that will only be executed on and after the Nth call.\nexport function after(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\n// Returns a function that will only be executed up to (but not including) the Nth call.\nexport function before(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n}\n\n// Returns a function that will be executed at most one time, no matter how\n// often you call it. Useful for lazy initialization.\nexport var once = partial(before, 2);\n\n// Object Functions\n// ----------------\n\n// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\nvar hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\nfunction collectNonEnumProps(obj, _keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_has(obj, prop) && !contains(_keys, prop)) _keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !contains(_keys, prop)) {\n _keys.push(prop);\n }\n }\n}\n\n// Retrieve the names of an object's own properties.\n// Delegates to **ECMAScript 5**'s native `Object.keys`.\nexport function keys(obj) {\n if (!isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var _keys = [];\n for (var key in obj) if (_has(obj, key)) _keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, _keys);\n return _keys;\n}\n\n// Retrieve all the property names of an object.\nexport function allKeys(obj) {\n if (!isObject(obj)) return [];\n var _keys = [];\n for (var key in obj) _keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, _keys);\n return _keys;\n}\n\n// Retrieve the values of an object's properties.\nexport function values(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[_keys[i]];\n }\n return values;\n}\n\n// Returns the results of applying the iteratee to each element of the object.\n// In contrast to map it returns an object.\nexport function mapObject(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var _keys = keys(obj),\n length = _keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = _keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n}\n\n// Convert an object into a list of `[key, value]` pairs.\n// The opposite of object.\nexport function pairs(obj) {\n var _keys = keys(obj);\n var length = _keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [_keys[i], obj[_keys[i]]];\n }\n return pairs;\n}\n\n// Invert the keys and values of an object. The values must be serializable.\nexport function invert(obj) {\n var result = {};\n var _keys = keys(obj);\n for (var i = 0, length = _keys.length; i < length; i++) {\n result[obj[_keys[i]]] = _keys[i];\n }\n return result;\n}\n\n// Return a sorted list of the function names available on the object.\nexport function functions(obj) {\n var names = [];\n for (var key in obj) {\n if (isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n}\nexport { functions as methods };\n\n// An internal function for creating assigner functions.\nfunction createAssigner(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n _keys = keysFunc(source),\n l = _keys.length;\n for (var i = 0; i < l; i++) {\n var key = _keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n}\n\n// Extend a given object with all the properties in passed-in object(s).\nexport var extend = createAssigner(allKeys);\n\n// Assigns a given object with all the own properties in the passed-in object(s).\n// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\nexport var extendOwn = createAssigner(keys);\nexport { extendOwn as assign };\n\n// Returns the first key on an object that passes a predicate test.\nexport function findKey(obj, predicate, context) {\n predicate = cb(predicate, context);\n var _keys = keys(obj), key;\n for (var i = 0, length = _keys.length; i < length; i++) {\n key = _keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n}\n\n// Internal pick helper function to determine if `obj` has key `key`.\nfunction keyInObj(value, key, obj) {\n return key in obj;\n}\n\n// Return a copy of the object only containing the whitelisted properties.\nexport var pick = restArguments(function(obj, _keys) {\n var result = {}, iteratee = _keys[0];\n if (obj == null) return result;\n if (isFunction(iteratee)) {\n if (_keys.length > 1) iteratee = optimizeCb(iteratee, _keys[1]);\n _keys = allKeys(obj);\n } else {\n iteratee = keyInObj;\n _keys = _flatten(_keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = _keys.length; i < length; i++) {\n var key = _keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n});\n\n// Return a copy of the object without the blacklisted properties.\nexport var omit = restArguments(function(obj, _keys) {\n var iteratee = _keys[0], context;\n if (isFunction(iteratee)) {\n iteratee = negate(iteratee);\n if (_keys.length > 1) context = _keys[1];\n } else {\n _keys = map(_flatten(_keys, false, false), String);\n iteratee = function(value, key) {\n return !contains(_keys, key);\n };\n }\n return pick(obj, iteratee, context);\n});\n\n// Fill in a given object with default properties.\nexport var defaults = createAssigner(allKeys, true);\n\n// Creates an object that inherits from the given prototype object.\n// If additional properties are provided then they will be added to the\n// created object.\nexport function create(prototype, props) {\n var result = baseCreate(prototype);\n if (props) extendOwn(result, props);\n return result;\n}\n\n// Create a (shallow-cloned) duplicate of an object.\nexport function clone(obj) {\n if (!isObject(obj)) return obj;\n return isArray(obj) ? obj.slice() : extend({}, obj);\n}\n\n// Invokes interceptor with the obj, and then returns obj.\n// The primary purpose of this method is to \"tap into\" a method chain, in\n// order to perform operations on intermediate results within the chain.\nexport function tap(obj, interceptor) {\n interceptor(obj);\n return obj;\n}\n\n// Returns whether an object has a given set of `key:value` pairs.\nexport function isMatch(object, attrs) {\n var _keys = keys(attrs), length = _keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = _keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n}\n\n\n// Internal recursive comparison function for `isEqual`.\nfunction eq(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n}\n\n// Internal recursive comparison function for `isEqual`.\nfunction deepEq(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor &&\n isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var _keys = keys(a), key;\n length = _keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = _keys[length];\n if (!(_has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n}\n\n// Perform a deep comparison to check if two objects are equal.\nexport function isEqual(a, b) {\n return eq(a, b);\n}\n\n// Is a given array, string, or object empty?\n// An \"empty\" object has no enumerable own-properties.\nexport function isEmpty(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (isArray(obj) || isString(obj) || isArguments(obj))) return obj.length === 0;\n return keys(obj).length === 0;\n}\n\n// Is a given value a DOM element?\nexport function isElement(obj) {\n return !!(obj && obj.nodeType === 1);\n}\n\n// Internal function for creating a toString-based type tester.\nfunction tagTester(name) {\n return function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n}\n\n// Is a given value an array?\n// Delegates to ECMA5's native Array.isArray\nexport var isArray = nativeIsArray || tagTester('Array');\n\n// Is a given variable an object?\nexport function isObject(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n}\n\n// Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\nexport var isArguments = tagTester('Arguments');\nexport var isFunction = tagTester('Function');\nexport var isString = tagTester('String');\nexport var isNumber = tagTester('Number');\nexport var isDate = tagTester('Date');\nexport var isRegExp = tagTester('RegExp');\nexport var isError = tagTester('Error');\nexport var isSymbol = tagTester('Symbol');\nexport var isMap = tagTester('Map');\nexport var isWeakMap = tagTester('WeakMap');\nexport var isSet = tagTester('Set');\nexport var isWeakSet = tagTester('WeakSet');\n\n// Define a fallback version of the method in browsers (ahem, IE < 9), where\n// there isn't any inspectable \"Arguments\" type.\n(function() {\n if (!isArguments(arguments)) {\n isArguments = function(obj) {\n return _has(obj, 'callee');\n };\n }\n}());\n\n// Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n// IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\nvar nodelist = root.document && root.document.childNodes;\nif (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n}\n\n// Is a given object a finite number?\nexport function isFinite(obj) {\n return !isSymbol(obj) && _isFinite(obj) && !_isNaN(parseFloat(obj));\n}\n\n// Is the given value `NaN`?\nexport function isNaN(obj) {\n return isNumber(obj) && _isNaN(obj);\n}\n\n// Is a given value a boolean?\nexport function isBoolean(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n}\n\n// Is a given value equal to null?\nexport function isNull(obj) {\n return obj === null;\n}\n\n// Is a given variable undefined?\nexport function isUndefined(obj) {\n return obj === void 0;\n}\n\n// Shortcut function for checking if an object has a given property directly\n// on itself (in other words, not on a prototype).\nexport function has(obj, path) {\n if (!isArray(path)) {\n return _has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n}\n\n// Utility Functions\n// -----------------\n\n// Keep the identity function around for default iteratees.\nexport function identity(value) {\n return value;\n}\n\n// Predicate-generating functions. Often useful outside of Underscore.\nexport function constant(value) {\n return function() {\n return value;\n };\n}\n\nexport function noop(){}\n\n// Creates a function that, when passed an object, will traverse that object’s\n// properties down the given `path`, specified as an array of keys or indexes.\nexport function property(path) {\n if (!isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n}\n\n// Generates a function for a given object that returns a given property.\nexport function propertyOf(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !isArray(path) ? obj[path] : deepGet(obj, path);\n };\n}\n\n// Returns a predicate for checking whether an object has a given set of\n// `key:value` pairs.\nexport function matcher(attrs) {\n attrs = extendOwn({}, attrs);\n return function(obj) {\n return isMatch(obj, attrs);\n };\n}\nexport { matcher as matches };\n\n// Run a function **n** times.\nexport function times(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n}\n\n// Return a random integer between min and max (inclusive).\nexport function random(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n}\n\n// A (possibly faster) way to get the current timestamp as an integer.\nexport var now = Date.now || function() {\n return new Date().getTime();\n};\n\n// List of HTML entities for escaping.\nvar escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n};\nvar unescapeMap = invert(escapeMap);\n\n// Functions for escaping and unescaping strings to/from HTML interpolation.\nfunction createEscaper(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n}\nexport var escape = createEscaper(escapeMap);\nexport var unescape = createEscaper(unescapeMap);\n\n// Traverses the children of `obj` along `path`. If a child is a function, it\n// is invoked with its parent as context. Returns the value of the final\n// child, or `fallback` if any child is undefined.\nexport function result(obj, path, fallback) {\n if (!isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n}\n\n// Generate a unique integer id (unique within the entire client session).\n// Useful for temporary DOM ids.\nvar idCounter = 0;\nexport function uniqueId(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n}\n\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nexport var templateSettings = _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n};\n\n// When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/;\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\nvar escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\nvar escapeChar = function(match) {\n return '\\\\' + escapes[match];\n};\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n// NB: `oldSettings` only exists for backwards compatibility.\nexport function template(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n}\n\n// Add a \"chain\" function. Start chaining a wrapped Underscore object.\nexport function chain(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n}\n\n// OOP\n// ---------------\n// If Underscore is called as a function, it returns a wrapped object that\n// can be used OO-style. This wrapper holds altered versions of all the\n// underscore functions. Wrapped objects may be chained.\n\n// Helper function to continue chaining intermediate results.\nfunction chainResult(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n}\n\n// Add your own custom functions to the Underscore object.\nexport function mixin(obj) {\n each(functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n}\n\n// Add all mutator Array functions to the wrapper.\neach(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n});\n\n// Add all accessor Array functions to the wrapper.\neach(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n});\n\n// Extracts the result from a wrapped and chained object.\n_.prototype.value = function() {\n return this._wrapped;\n};\n\n// Provide unwrapping proxy for some methods used in engine operations\n// such as arithmetic and JSON stringification.\n_.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n_.prototype.toString = function() {\n return String(this._wrapped);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.index-of\");\n\nrequire(\"core-js/modules/es.object.assign\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.regexp.to-string\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRootUrl = exports.generateFilePath = exports.imagePath = exports.generateUrl = exports.generateOcsUrl = exports.generateRemoteUrl = exports.linkTo = void 0;\n\n/// <reference types=\"@nextcloud/typings\" />\n\n/**\n * Get an absolute url to a file in an app\n *\n * @param {string} app the id of the app the file belongs to\n * @param {string} file the file path relative to the app folder\n * @return {string} Absolute URL to a file\n */\nvar linkTo = function linkTo(app, file) {\n return generateFilePath(app, '', file);\n};\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\n\n\nexports.linkTo = linkTo;\n\nvar linkToRemoteBase = function linkToRemoteBase(service) {\n return getRootUrl() + '/remote.php/' + service;\n};\n/**\n * @brief Creates an absolute url for remote use\n * @param {string} service id\n * @return {string} the url\n */\n\n\nvar generateRemoteUrl = function generateRemoteUrl(service) {\n return window.location.protocol + '//' + window.location.host + linkToRemoteBase(service);\n};\n/**\n * Get the base path for the given OCS API service\n *\n * @param {string} service name\n * @param {int} version OCS API version\n * @return {string} OCS API base path\n */\n\n\nexports.generateRemoteUrl = generateRemoteUrl;\n\nvar generateOcsUrl = function generateOcsUrl(service, version) {\n version = version !== 2 ? 1 : 2;\n return window.location.protocol + '//' + window.location.host + getRootUrl() + '/ocs/v' + version + '.php/' + service + '/';\n};\n\nexports.generateOcsUrl = generateOcsUrl;\n\n/**\n * Generate the absolute url for the given relative url, which can contain parameters\n *\n * Parameters will be URL encoded automatically\n *\n * @return {string} Absolute URL for the given relative URL\n */\nvar generateUrl = function generateUrl(url, params, options) {\n var allOptions = Object.assign({\n escape: true,\n noRewrite: false\n }, options || {});\n\n var _build = function _build(text, vars) {\n vars = vars || {};\n return text.replace(/{([^{}]*)}/g, function (a, b) {\n var r = vars[b];\n\n if (allOptions.escape) {\n return typeof r === 'string' || typeof r === 'number' ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === 'string' || typeof r === 'number' ? r.toString() : a;\n }\n });\n };\n\n if (url.charAt(0) !== '/') {\n url = '/' + url;\n }\n\n if (OC.config.modRewriteWorking === true && !allOptions.noRewrite) {\n return getRootUrl() + _build(url, params || {});\n }\n\n return getRootUrl() + '/index.php' + _build(url, params || {});\n};\n/**\n * Get the absolute path to an image file\n * if no extension is given for the image, it will automatically decide\n * between .png and .svg based on what the browser supports\n *\n * @param {string} app the app id to which the image belongs\n * @param {string} file the name of the image file\n * @return {string}\n */\n\n\nexports.generateUrl = generateUrl;\n\nvar imagePath = function imagePath(app, file) {\n if (file.indexOf('.') === -1) {\n //if no extension is given, use svg\n return generateFilePath(app, 'img', file + '.svg');\n }\n\n return generateFilePath(app, 'img', file);\n};\n/**\n * Get the absolute url for a file in an app\n *\n * @param {string} app the id of the app\n * @param {string} type the type of the file to link to (e.g. css,img,ajax.template)\n * @param {string} file the filename\n * @return {string} Absolute URL for a file in an app\n */\n\n\nexports.imagePath = imagePath;\n\nvar generateFilePath = function generateFilePath(app, type, file) {\n var isCore = OC.coreApps.indexOf(app) !== -1;\n var link = getRootUrl();\n\n if (file.substring(file.length - 3) === 'php' && !isCore) {\n link += '/index.php/apps/' + app;\n\n if (file !== 'index.php') {\n link += '/';\n\n if (type) {\n link += encodeURI(type + '/');\n }\n\n link += file;\n }\n } else if (file.substring(file.length - 3) !== 'php' && !isCore) {\n link = OC.appswebroots[app];\n\n if (type) {\n link += '/' + type + '/';\n }\n\n if (link.substring(link.length - 1) !== '/') {\n link += '/';\n }\n\n link += file;\n } else {\n if ((app === 'settings' || app === 'core' || app === 'search') && type === 'ajax') {\n link += '/index.php/';\n } else {\n link += '/';\n }\n\n if (!isCore) {\n link += 'apps/';\n }\n\n if (app !== '') {\n app += '/';\n link += app;\n }\n\n if (type) {\n link += type + '/';\n }\n\n link += file;\n }\n\n return link;\n};\n/**\n * Return the web root path where this Nextcloud instance\n * is accessible, with a leading slash.\n * For example \"/nextcloud\".\n *\n * @return {string} web root path\n */\n\n\nexports.generateFilePath = generateFilePath;\n\nvar getRootUrl = function getRootUrl() {\n return OC.webroot;\n};\n\nexports.getRootUrl = getRootUrl;\n//# sourceMappingURL=index.js.map","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6)\n};\n","'use strict';\n\nexports.__esModule = true;\nexports.extend = extend;\nexports.indexOf = indexOf;\nexports.escapeExpression = escapeExpression;\nexports.isEmpty = isEmpty;\nexports.createFrame = createFrame;\nexports.blockParams = blockParams;\nexports.appendContextPath = appendContextPath;\nvar escape = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`',\n '=': '='\n};\n\nvar badChars = /[&<>\"'`=]/g,\n possible = /[&<>\"'`=]/;\n\nfunction escapeChar(chr) {\n return escape[chr];\n}\n\nfunction extend(obj /* , ...source */) {\n for (var i = 1; i < arguments.length; i++) {\n for (var key in arguments[i]) {\n if (Object.prototype.hasOwnProperty.call(arguments[i], key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n}\n\nvar toString = Object.prototype.toString;\n\nexports.toString = toString;\n// Sourced from lodash\n// https://github.com/bestiejs/lodash/blob/master/LICENSE.txt\n/* eslint-disable func-style */\nvar isFunction = function isFunction(value) {\n return typeof value === 'function';\n};\n// fallback for older versions of Chrome and Safari\n/* istanbul ignore next */\nif (isFunction(/x/)) {\n exports.isFunction = isFunction = function (value) {\n return typeof value === 'function' && toString.call(value) === '[object Function]';\n };\n}\nexports.isFunction = isFunction;\n\n/* eslint-enable func-style */\n\n/* istanbul ignore next */\nvar isArray = Array.isArray || function (value) {\n return value && typeof value === 'object' ? toString.call(value) === '[object Array]' : false;\n};\n\nexports.isArray = isArray;\n// Older IE versions do not directly support indexOf so we must implement our own, sadly.\n\nfunction indexOf(array, value) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n}\n\nfunction escapeExpression(string) {\n if (typeof string !== 'string') {\n // don't escape SafeStrings, since they're already safe\n if (string && string.toHTML) {\n return string.toHTML();\n } else if (string == null) {\n return '';\n } else if (!string) {\n return string + '';\n }\n\n // Force a string conversion as this will be done by the append regardless and\n // the regex test will do this transparently behind the scenes, causing issues if\n // an object's to string has escaped characters in it.\n string = '' + string;\n }\n\n if (!possible.test(string)) {\n return string;\n }\n return string.replace(badChars, escapeChar);\n}\n\nfunction isEmpty(value) {\n if (!value && value !== 0) {\n return true;\n } else if (isArray(value) && value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction createFrame(object) {\n var frame = extend({}, object);\n frame._parent = object;\n return frame;\n}\n\nfunction blockParams(params, ids) {\n params.path = ids;\n return params;\n}\n\nfunction appendContextPath(contextPath, id) {\n return (contextPath ? contextPath + '.' : '') + id;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3V0aWxzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFNLE1BQU0sR0FBRztBQUNiLEtBQUcsRUFBRSxPQUFPO0FBQ1osS0FBRyxFQUFFLE1BQU07QUFDWCxLQUFHLEVBQUUsTUFBTTtBQUNYLEtBQUcsRUFBRSxRQUFRO0FBQ2IsS0FBRyxFQUFFLFFBQVE7QUFDYixLQUFHLEVBQUUsUUFBUTtBQUNiLEtBQUcsRUFBRSxRQUFRO0NBQ2QsQ0FBQzs7QUFFRixJQUFNLFFBQVEsR0FBRyxZQUFZO0lBQzNCLFFBQVEsR0FBRyxXQUFXLENBQUM7O0FBRXpCLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtBQUN2QixTQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztDQUNwQjs7QUFFTSxTQUFTLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQjtBQUM1QyxPQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN6QyxTQUFLLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM1QixVQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUU7QUFDM0QsV0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztPQUM5QjtLQUNGO0dBQ0Y7O0FBRUQsU0FBTyxHQUFHLENBQUM7Q0FDWjs7QUFFTSxJQUFJLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs7Ozs7O0FBS2hELElBQUksVUFBVSxHQUFHLG9CQUFTLEtBQUssRUFBRTtBQUMvQixTQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztDQUNwQyxDQUFDOzs7QUFHRixJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtBQUNuQixVQU9PLFVBQVUsR0FQakIsVUFBVSxHQUFHLFVBQVMsS0FBSyxFQUFFO0FBQzNCLFdBQ0UsT0FBTyxLQUFLLEtBQUssVUFBVSxJQUMzQixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLG1CQUFtQixDQUM1QztHQUNILENBQUM7Q0FDSDtRQUNRLFVBQVUsR0FBVixVQUFVOzs7OztBQUlaLElBQU0sT0FBTyxHQUNsQixLQUFLLENBQUMsT0FBTyxJQUNiLFVBQVMsS0FBSyxFQUFFO0FBQ2QsU0FBTyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGdCQUFnQixHQUN6QyxLQUFLLENBQUM7Q0FDWCxDQUFDOzs7OztBQUdHLFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDcEMsT0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUNoRCxRQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLEVBQUU7QUFDdEIsYUFBTyxDQUFDLENBQUM7S0FDVjtHQUNGO0FBQ0QsU0FBTyxDQUFDLENBQUMsQ0FBQztDQUNYOztBQUVNLFNBQVMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0FBQ3ZDLE1BQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFOztBQUU5QixRQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO0FBQzNCLGFBQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBQ3hCLE1BQU0sSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO0FBQ3pCLGFBQU8sRUFBRSxDQUFDO0tBQ1gsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFO0FBQ2xCLGFBQU8sTUFBTSxHQUFHLEVBQUUsQ0FBQztLQUNwQjs7Ozs7QUFLRCxVQUFNLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztHQUN0Qjs7QUFFRCxNQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtBQUMxQixXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsU0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztDQUM3Qzs7QUFFTSxTQUFTLE9BQU8sQ0FBQyxLQUFLLEVBQUU7QUFDN0IsTUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDO0dBQ2IsTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQztHQUNiLE1BQU07QUFDTCxXQUFPLEtBQUssQ0FBQztHQUNkO0NBQ0Y7O0FBRU0sU0FBUyxXQUFXLENBQUMsTUFBTSxFQUFFO0FBQ2xDLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0IsT0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7QUFDdkIsU0FBTyxLQUFLLENBQUM7Q0FDZDs7QUFFTSxTQUFTLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO0FBQ3ZDLFFBQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2xCLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRU0sU0FBUyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFO0FBQ2pELFNBQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUEsR0FBSSxFQUFFLENBQUM7Q0FDcEQiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBlc2NhcGUgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICAnXCInOiAnJnF1b3Q7JyxcbiAgXCInXCI6ICcmI3gyNzsnLFxuICAnYCc6ICcmI3g2MDsnLFxuICAnPSc6ICcmI3gzRDsnXG59O1xuXG5jb25zdCBiYWRDaGFycyA9IC9bJjw+XCInYD1dL2csXG4gIHBvc3NpYmxlID0gL1smPD5cIidgPV0vO1xuXG5mdW5jdGlvbiBlc2NhcGVDaGFyKGNocikge1xuICByZXR1cm4gZXNjYXBlW2Nocl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRlbmQob2JqIC8qICwgLi4uc291cmNlICovKSB7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChsZXQga2V5IGluIGFyZ3VtZW50c1tpXSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhcmd1bWVudHNbaV0sIGtleSkpIHtcbiAgICAgICAgb2JqW2tleV0gPSBhcmd1bWVudHNbaV1ba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb2JqO1xufVxuXG5leHBvcnQgbGV0IHRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuLy8gU291cmNlZCBmcm9tIGxvZGFzaFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Jlc3RpZWpzL2xvZGFzaC9ibG9iL21hc3Rlci9MSUNFTlNFLnR4dFxuLyogZXNsaW50LWRpc2FibGUgZnVuYy1zdHlsZSAqL1xubGV0IGlzRnVuY3Rpb24gPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nO1xufTtcbi8vIGZhbGxiYWNrIGZvciBvbGRlciB2ZXJzaW9ucyBvZiBDaHJvbWUgYW5kIFNhZmFyaVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmlmIChpc0Z1bmN0aW9uKC94LykpIHtcbiAgaXNGdW5jdGlvbiA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgdG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXSdcbiAgICApO1xuICB9O1xufVxuZXhwb3J0IHsgaXNGdW5jdGlvbiB9O1xuLyogZXNsaW50LWVuYWJsZSBmdW5jLXN0eWxlICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgaXNBcnJheSA9XG4gIEFycmF5LmlzQXJyYXkgfHxcbiAgZnVuY3Rpb24odmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0J1xuICAgICAgPyB0b1N0cmluZy5jYWxsKHZhbHVlKSA9PT0gJ1tvYmplY3QgQXJyYXldJ1xuICAgICAgOiBmYWxzZTtcbiAgfTtcblxuLy8gT2xkZXIgSUUgdmVyc2lvbnMgZG8gbm90IGRpcmVjdGx5IHN1cHBvcnQgaW5kZXhPZiBzbyB3ZSBtdXN0IGltcGxlbWVudCBvdXIgb3duLCBzYWRseS5cbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCB2YWx1ZSkge1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoYXJyYXlbaV0gPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm4gaTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXNjYXBlRXhwcmVzc2lvbihzdHJpbmcpIHtcbiAgaWYgKHR5cGVvZiBzdHJpbmcgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gZG9uJ3QgZXNjYXBlIFNhZmVTdHJpbmdzLCBzaW5jZSB0aGV5J3JlIGFscmVhZHkgc2FmZVxuICAgIGlmIChzdHJpbmcgJiYgc3RyaW5nLnRvSFRNTCkge1xuICAgICAgcmV0dXJuIHN0cmluZy50b0hUTUwoKTtcbiAgICB9IGVsc2UgaWYgKHN0cmluZyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIGlmICghc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nICsgJyc7XG4gICAgfVxuXG4gICAgLy8gRm9yY2UgYSBzdHJpbmcgY29udmVyc2lvbiBhcyB0aGlzIHdpbGwgYmUgZG9uZSBieSB0aGUgYXBwZW5kIHJlZ2FyZGxlc3MgYW5kXG4gICAgLy8gdGhlIHJlZ2V4IHRlc3Qgd2lsbCBkbyB0aGlzIHRyYW5zcGFyZW50bHkgYmVoaW5kIHRoZSBzY2VuZXMsIGNhdXNpbmcgaXNzdWVzIGlmXG4gICAgLy8gYW4gb2JqZWN0J3MgdG8gc3RyaW5nIGhhcyBlc2NhcGVkIGNoYXJhY3RlcnMgaW4gaXQuXG4gICAgc3RyaW5nID0gJycgKyBzdHJpbmc7XG4gIH1cblxuICBpZiAoIXBvc3NpYmxlLnRlc3Qoc3RyaW5nKSkge1xuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKGJhZENoYXJzLCBlc2NhcGVDaGFyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWUpIHtcbiAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2UgaWYgKGlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRnJhbWUob2JqZWN0KSB7XG4gIGxldCBmcmFtZSA9IGV4dGVuZCh7fSwgb2JqZWN0KTtcbiAgZnJhbWUuX3BhcmVudCA9IG9iamVjdDtcbiAgcmV0dXJuIGZyYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tQYXJhbXMocGFyYW1zLCBpZHMpIHtcbiAgcGFyYW1zLnBhdGggPSBpZHM7XG4gIHJldHVybiBwYXJhbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRDb250ZXh0UGF0aChjb250ZXh0UGF0aCwgaWQpIHtcbiAgcmV0dXJuIChjb250ZXh0UGF0aCA/IGNvbnRleHRQYXRoICsgJy4nIDogJycpICsgaWQ7XG59XG4iXX0=\n","module.exports = false;\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = {};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","// Backbone.js 1.4.0\n\n// (c) 2010-2019 Jeremy Ashkenas and DocumentCloud\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global;\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch (e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, root.jQuery || root.Zepto || root.ender || root.$);\n }\n\n})(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.4.0';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // A private global variable to share between listeners and listenees.\n var _listening;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space-separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n this._events = eventsApi(onApi, this._events || {}, name, callback, {\n context: context,\n ctx: this,\n listening: _listening\n });\n\n if (_listening) {\n var listeners = this._listeners || (this._listeners = {});\n listeners[_listening.id] = _listening;\n // Allow the listening to use a counter, instead of tracking\n // callbacks for library interop\n _listening.interop = false;\n }\n\n return this;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = _listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n this._listenId || (this._listenId = _.uniqueId('l'));\n listening = _listening = listeningTo[id] = new Listening(this, obj);\n }\n\n // Bind callbacks on obj.\n var error = tryCatchOn(obj, name, callback, this);\n _listening = void 0;\n\n if (error) throw error;\n // If the target obj is not Backbone.Events, track events manually.\n if (listening.interop) listening.on(name, callback);\n\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({callback: callback, context: context, ctx: context || ctx, listening: listening});\n }\n return events;\n };\n\n // An try-catch guarded #on function, to prevent poisoning the global\n // `_listening` variable.\n var tryCatchOn = function(obj, name, callback, context) {\n try {\n obj.on(name, callback, context);\n } catch (e) {\n return e;\n }\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n if (listening.interop) listening.off(name, callback);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var context = options.context, listeners = options.listeners;\n var i = 0, names;\n\n // Delete all event listeners and \"drop\" events.\n if (!name && !context && !callback) {\n for (names = _.keys(listeners); i < names.length; i++) {\n listeners[names[i]].cleanup();\n }\n return;\n }\n\n names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Find any remaining events.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n var listening = handler.listening;\n if (listening) listening.off(name, callback);\n }\n }\n\n // Replace events if there are any remaining. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n\n return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.off.bind(this));\n if (typeof name === 'string' && context == null) callback = void 0;\n return this.on(events, callback, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, this.stopListening.bind(this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, callback, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // A listening class that tracks and cleans up memory bindings\n // when all callbacks have been offed.\n var Listening = function(listener, obj) {\n this.id = listener._listenId;\n this.listener = listener;\n this.obj = obj;\n this.interop = true;\n this.count = 0;\n this._events = void 0;\n };\n\n Listening.prototype.on = Events.on;\n\n // Offs a callback (or several).\n // Uses an optimized counter if the listenee uses Backbone.Events.\n // Otherwise, falls back to manual tracking to support events\n // library interop.\n Listening.prototype.off = function(name, callback) {\n var cleanup;\n if (this.interop) {\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: void 0,\n listeners: void 0\n });\n cleanup = !this._events;\n } else {\n this.count--;\n cleanup = this.count === 0;\n }\n if (cleanup) this.cleanup();\n };\n\n // Cleans up memory bindings between the listener and the listenee.\n Listening.prototype.cleanup = function() {\n delete this.listener._listeningTo[this.obj._listenId];\n if (!this.interop) delete this.obj._listeners[this.id];\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n var defaults = _.result(this, 'defaults');\n attrs = _.defaults(_.extend({}, defaults, attrs), defaults);\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Model.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n if (this.idAttribute in attrs) this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n var hasChanged;\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n hasChanged = true;\n }\n return hasChanged ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else if (!this._validate(attrs, options)) {\n return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : options.patch ? 'patch' : 'update';\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.extend({}, options, {validate: true}));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n var i;\n for (i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Collection.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n var removed = this._removeModels(models, options);\n if (!options.silent && removed.length) {\n options.changes = {added: [], merged: [], removed: removed};\n this.trigger('update', this, options);\n }\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.extend({}, setOptions, options);\n if (options.parse && !this._isModel(models)) {\n models = this.parse(models, options) || [];\n }\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at > this.length) at = this.length;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toMerge = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && at == null && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model, i;\n for (i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n toMerge.push(existing);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length !== set.length || _.some(this.models, function(m, index) {\n return m !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort/update events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length || toMerge.length) {\n options.changes = {\n added: toAdd,\n removed: toRemove,\n merged: toMerge\n };\n this.trigger('update', this, options);\n }\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id, cid, model object with id or cid\n // properties, or an attributes object that is transformed through modelId.\n get: function(obj) {\n if (obj == null) return void 0;\n return this._byId[obj] ||\n this._byId[this.modelId(this._isModel(obj) ? obj.attributes : obj)] ||\n obj.cid && this._byId[obj.cid];\n },\n\n // Returns `true` if the model is in the collection.\n has: function(obj) {\n return this.get(obj) != null;\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = comparator.bind(this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return this.map(attr + '');\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(m, resp, callbackOpts) {\n if (wait) collection.add(m, callbackOpts);\n if (success) success.call(callbackOpts.context, m, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function(attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Get an iterator of all models in this collection.\n values: function() {\n return new CollectionIterator(this, ITERATOR_VALUES);\n },\n\n // Get an iterator of all model IDs in this collection.\n keys: function() {\n return new CollectionIterator(this, ITERATOR_KEYS);\n },\n\n // Get an iterator of all [ID, model] tuples in this collection.\n entries: function() {\n return new CollectionIterator(this, ITERATOR_KEYSVALUES);\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n // Remove references before triggering 'remove' event to prevent an\n // infinite loop. #3693\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function(model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if (model) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Defining an @@iterator method implements JavaScript's Iterable protocol.\n // In modern ES2015 browsers, this value is found at Symbol.iterator.\n /* global Symbol */\n var $$iterator = typeof Symbol === 'function' && Symbol.iterator;\n if ($$iterator) {\n Collection.prototype[$$iterator] = Collection.prototype.values;\n }\n\n // CollectionIterator\n // ------------------\n\n // A CollectionIterator implements JavaScript's Iterator protocol, allowing the\n // use of `for of` loops in modern browsers and interoperation between\n // Backbone.Collection and other JavaScript functions and third-party libraries\n // which can operate on Iterables.\n var CollectionIterator = function(collection, kind) {\n this._collection = collection;\n this._kind = kind;\n this._index = 0;\n };\n\n // This \"enum\" defines the three possible kinds of values which can be emitted\n // by a CollectionIterator that correspond to the values(), keys() and entries()\n // methods on Collection, respectively.\n var ITERATOR_VALUES = 1;\n var ITERATOR_KEYS = 2;\n var ITERATOR_KEYSVALUES = 3;\n\n // All Iterators should themselves be Iterable.\n if ($$iterator) {\n CollectionIterator.prototype[$$iterator] = function() {\n return this;\n };\n }\n\n CollectionIterator.prototype.next = function() {\n if (this._collection) {\n\n // Only continue iterating if the iterated collection is long enough.\n if (this._index < this._collection.length) {\n var model = this._collection.at(this._index);\n this._index++;\n\n // Construct a value depending on what kind of values should be iterated.\n var value;\n if (this._kind === ITERATOR_VALUES) {\n value = model;\n } else {\n var id = this._collection.modelId(model.attributes);\n if (this._kind === ITERATOR_KEYS) {\n value = id;\n } else { // ITERATOR_KEYSVALUES\n value = [id, model];\n }\n }\n return {value: value, done: false};\n }\n\n // Once exhausted, remove the reference to the collection so future\n // calls to the next method always return done.\n this._collection = void 0;\n }\n\n return {value: void 0, done: true};\n };\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n this.preinitialize.apply(this, arguments);\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the View\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], method.bind(this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(base, length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return base[method](this[attribute]);\n };\n case 2: return function(value) {\n return base[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return base[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return base[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return base[method].apply(base, args);\n };\n }\n };\n\n var addUnderscoreMethods = function(Class, base, methods, attribute) {\n _.each(methods, function(length, method) {\n if (base[method]) Class.prototype[method] = addMethod(base, length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = {forEach: 3, each: 3, map: 3, collect: 3, reduce: 0,\n foldl: 0, inject: 0, reduceRight: 0, foldr: 0, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3, findIndex: 3, findLastIndex: 3};\n\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = {keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n\n _.each([\n [Collection, collectionMethods, 'models'],\n [Model, modelMethods, 'attributes']\n ], function(config) {\n var Base = config[0],\n methods = config[1],\n attribute = config[2];\n\n Base.mixin = function(obj) {\n var mappings = _.reduce(_.functions(obj), function(memo, name) {\n memo[name] = 0;\n return memo;\n }, {});\n addUnderscoreMethods(Base, obj, mappings, attribute);\n };\n\n addUnderscoreMethods(Base, _, methods, attribute);\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n create: 'POST',\n update: 'PUT',\n patch: 'PATCH',\n delete: 'DELETE',\n read: 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n this.preinitialize.apply(this, arguments);\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // preinitialize is an empty function by default. You can override it with a function\n // or object. preinitialize will run before any instantiation logic is run in the Router.\n preinitialize: function(){},\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = this.checkUrl.bind(this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var rootPath = path.slice(0, this.root.length - 1) + '/';\n return rootPath === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var rootPath = this.root.slice(0, -1) || '/';\n this.location.replace(rootPath + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function(eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function(eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var rootPath = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n rootPath = rootPath.slice(0, -1) || '/';\n }\n var url = rootPath + fragment;\n\n // Strip the fragment of the query and hash for matching.\n fragment = fragment.replace(pathStripper, '');\n\n // Decode for matching.\n var decodedFragment = this.decodeFragment(fragment);\n\n if (this.fragment === decodedFragment) return;\n this.fragment = decodedFragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && fragment !== this.getHash(this.iframe.contentWindow)) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent`'s constructor function and add the prototype properties.\n child.prototype = _.create(parent.prototype, protoProps);\n child.prototype.constructor = child;\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n});\n","module.exports = {};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.subscribe = subscribe;\nexports.unsubscribe = unsubscribe;\nexports.emit = emit;\n\nvar _ProxyBus = require(\"./ProxyBus\");\n\nvar _SimpleBus = require(\"./SimpleBus\");\n\nfunction getBus() {\n if (typeof window.OC !== 'undefined' && window.OC._eventBus && typeof window._nc_event_bus === 'undefined') {\n console.warn('found old event bus instance at OC._eventBus. Update your version!');\n window._nc_event_bus = window.OC._eventBus;\n } // Either use an existing event bus instance or create one\n\n\n if (typeof window._nc_event_bus !== 'undefined') {\n return new _ProxyBus.ProxyBus(window._nc_event_bus);\n } else {\n return window._nc_event_bus = new _SimpleBus.SimpleBus();\n }\n}\n\nvar bus = getBus();\n/**\n * Register an event listener\n *\n * @param name name of the event\n * @param handler callback invoked for every matching event emitted on the bus\n */\n\nfunction subscribe(name, handler) {\n bus.subscribe(name, handler);\n}\n/**\n * Unregister a previously registered event listener\n *\n * Note: doesn't work with anonymous functions (closures). Use method of an object or store listener function in variable.\n *\n * @param name name of the event\n * @param handler callback passed to `subscribed`\n */\n\n\nfunction unsubscribe(name, handler) {\n bus.unsubscribe(name, handler);\n}\n/**\n * Emit an event\n *\n * @param name name of the event\n * @param event event payload\n */\n\n\nfunction emit(name, event) {\n bus.emit(name, event);\n}\n//# sourceMappingURL=index.js.map","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n// This var is global because it's shared across webpack bundles\nwindow._oc_l10n_registry_translations = window._oc_l10n_registry_translations || {}\nwindow._oc_l10n_registry_plural_functions = window._oc_l10n_registry_plural_functions || {}\n\n/**\n * @param {String} appId the app id\n * @param {Object} translations the translations list\n * @param {Function} pluralFunction the translations list\n */\nconst register = (appId, translations, pluralFunction) => {\n\twindow._oc_l10n_registry_translations[appId] = translations\n\twindow._oc_l10n_registry_plural_functions[appId] = pluralFunction\n}\n\n/**\n * @param {String} appId the app id\n * @param {Object} translations the translations list\n * @param {Function} pluralFunction the translations list\n */\nconst extend = (appId, translations, pluralFunction) => {\n\twindow._oc_l10n_registry_translations[appId] = Object.assign(\n\t\twindow._oc_l10n_registry_translations[appId],\n\t\ttranslations\n\t)\n\twindow._oc_l10n_registry_plural_functions[appId] = pluralFunction\n}\n\n/**\n * @param {String} appId the app id\n * @param {Object} translations the translations list\n * @param {Function} pluralFunction the translations list\n */\nexport const registerAppTranslations = (appId, translations, pluralFunction) => {\n\tif (!hasAppTranslations(appId)) {\n\t\tregister(appId, translations, pluralFunction)\n\t} else {\n\t\textend(appId, translations, pluralFunction)\n\t}\n}\n\n/**\n * @param {String} appId the app id\n */\nexport const unregisterAppTranslations = appId => {\n\tdelete window._oc_l10n_registry_translations[appId]\n\tdelete window._oc_l10n_registry_plural_functions[appId]\n}\n\n/**\n * @param {String} appId the app id\n * @returns {Boolean}\n */\nexport const hasAppTranslations = appId => {\n\treturn window._oc_l10n_registry_translations[appId] !== undefined\n\t\t&& window._oc_l10n_registry_plural_functions[appId] !== undefined\n}\n\n/**\n * @param {String} appId the app id\n * @returns {Object}\n */\nexport const getAppTranslations = appId => {\n\treturn {\n\t\ttranslations: window._oc_l10n_registry_translations[appId] || {},\n\t\tpluralFunction: window._oc_l10n_registry_plural_functions[appId],\n\t}\n}\n","/**\n * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\nimport DOMPurify from 'dompurify'\nimport Handlebars from 'handlebars'\nimport identity from 'lodash/fp/identity'\nimport escapeHTML from 'escape-html'\n\nimport OC from './index'\nimport {\n\tgetAppTranslations,\n\thasAppTranslations,\n\tregisterAppTranslations,\n\tunregisterAppTranslations,\n} from './l10n-registry'\n\n/**\n * L10N namespace with localization functions.\n *\n * @namespace OC.L10n\n */\nconst L10n = {\n\n\t/**\n\t * Load an app's translation bundle if not loaded already.\n\t *\n\t * @param {String} appName name of the app\n\t * @param {Function} callback callback to be called when\n\t * the translations are loaded\n\t * @returns {Promise} promise\n\t */\n\tload: function(appName, callback) {\n\t\t// already available ?\n\t\tif (hasAppTranslations(appName) || OC.getLocale() === 'en') {\n\t\t\tconst deferred = $.Deferred()\n\t\t\tconst promise = deferred.promise()\n\t\t\tpromise.then(callback)\n\t\t\tdeferred.resolve()\n\t\t\treturn promise\n\t\t}\n\n\t\tconst self = this\n\t\tconst url = OC.filePath(appName, 'l10n', OC.getLocale() + '.json')\n\n\t\t// load JSON translation bundle per AJAX\n\t\treturn $.get(url)\n\t\t\t.then(\n\t\t\t\tfunction(result) {\n\t\t\t\t\tif (result.translations) {\n\t\t\t\t\t\tself.register(appName, result.translations, result.pluralForm)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t.then(callback)\n\t},\n\n\t/**\n\t * Register an app's translation bundle.\n\t *\n\t * @param {String} appName name of the app\n\t * @param {Object<String,String>} bundle bundle\n\t */\n\tregister: function(appName, bundle) {\n\t\tregisterAppTranslations(appName, bundle, this._getPlural)\n\t},\n\n\t/**\n\t * @private do not use this\n\t */\n\t_unregister: unregisterAppTranslations,\n\n\t/**\n\t * Translate a string\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} text the string to translate\n\t * @param {Object} [vars] map of placeholder key to value\n\t * @param {number} [count] number to replace %n with\n\t * @param {array} [options] options array\n\t * @param {bool} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @param {bool} [options.sanitize=true] enable/disable sanitization (by default enabled)\n\t * @returns {string}\n\t */\n\ttranslate: function(app, text, vars, count, options) {\n\t\tconst defaultOptions = {\n\t\t\tescape: true,\n\t\t\tsanitize: true,\n\t\t}\n\t\tconst allOptions = options || {}\n\t\t_.defaults(allOptions, defaultOptions)\n\n\t\tconst optSanitize = allOptions.sanitize ? DOMPurify.sanitize : identity\n\t\tconst optEscape = allOptions.escape ? escapeHTML : identity\n\n\t\t// TODO: cache this function to avoid inline recreation\n\t\t// of the same function over and over again in case\n\t\t// translate() is used in a loop\n\t\tconst _build = function(text, vars, count) {\n\t\t\treturn text.replace(/%n/g, count).replace(/{([^{}]*)}/g,\n\t\t\t\tfunction(a, b) {\n\t\t\t\t\tconst r = vars[b]\n\t\t\t\t\tif (typeof r === 'string' || typeof r === 'number') {\n\t\t\t\t\t\treturn optSanitize(optEscape(r))\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn optSanitize(a)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\tlet translation = text\n\t\tconst bundle = getAppTranslations(app)\n\t\tconst value = bundle.translations[text]\n\t\tif (typeof (value) !== 'undefined') {\n\t\t\ttranslation = value\n\t\t}\n\n\t\tif (typeof vars === 'object' || count !== undefined) {\n\t\t\treturn optSanitize(_build(translation, vars, count))\n\t\t} else {\n\t\t\treturn optSanitize(translation)\n\t\t}\n\t},\n\n\t/**\n\t * Translate a plural string\n\t * @param {string} app the id of the app for which to translate the string\n\t * @param {string} textSingular the string to translate for exactly one object\n\t * @param {string} textPlural the string to translate for n objects\n\t * @param {number} count number to determine whether to use singular or plural\n\t * @param {Object} [vars] map of placeholder key to value\n\t * @param {array} [options] options array\n\t * @param {bool} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n\t * @returns {string} Translated string\n\t */\n\ttranslatePlural: function(app, textSingular, textPlural, count, vars, options) {\n\t\tconst identifier = '_' + textSingular + '_::_' + textPlural + '_'\n\t\tconst bundle = getAppTranslations(app)\n\t\tconst value = bundle.translations[identifier]\n\t\tif (typeof (value) !== 'undefined') {\n\t\t\tconst translation = value\n\t\t\tif ($.isArray(translation)) {\n\t\t\t\tconst plural = bundle.pluralFunction(count)\n\t\t\t\treturn this.translate(app, translation[plural], vars, count, options)\n\t\t\t}\n\t\t}\n\n\t\tif (count === 1) {\n\t\t\treturn this.translate(app, textSingular, vars, count, options)\n\t\t} else {\n\t\t\treturn this.translate(app, textPlural, vars, count, options)\n\t\t}\n\t},\n\n\t/**\n\t * The plural function taken from symfony\n\t *\n\t * @param {number} number the number of elements\n\t * @returns {number}\n\t * @private\n\t */\n\t_getPlural: function(number) {\n\t\tlet language = OC.getLanguage()\n\t\tif (language === 'pt_BR') {\n\t\t\t// temporary set a locale for brazilian\n\t\t\tlanguage = 'xbr'\n\t\t}\n\n\t\tif (typeof language === 'undefined' || language === '') {\n\t\t\treturn (number === 1) ? 0 : 1\n\t\t}\n\n\t\tif (language.length > 3) {\n\t\t\tlanguage = language.substring(0, language.lastIndexOf('_'))\n\t\t}\n\n\t\t/*\n\t\t * The plural rules are derived from code of the Zend Framework (2010-09-25),\n\t\t * which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).\n\t\t * Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)\n\t\t */\n\t\tswitch (language) {\n\t\tcase 'az':\n\t\tcase 'bo':\n\t\tcase 'dz':\n\t\tcase 'id':\n\t\tcase 'ja':\n\t\tcase 'jv':\n\t\tcase 'ka':\n\t\tcase 'km':\n\t\tcase 'kn':\n\t\tcase 'ko':\n\t\tcase 'ms':\n\t\tcase 'th':\n\t\tcase 'tr':\n\t\tcase 'vi':\n\t\tcase 'zh':\n\t\t\treturn 0\n\n\t\tcase 'af':\n\t\tcase 'bn':\n\t\tcase 'bg':\n\t\tcase 'ca':\n\t\tcase 'da':\n\t\tcase 'de':\n\t\tcase 'el':\n\t\tcase 'en':\n\t\tcase 'eo':\n\t\tcase 'es':\n\t\tcase 'et':\n\t\tcase 'eu':\n\t\tcase 'fa':\n\t\tcase 'fi':\n\t\tcase 'fo':\n\t\tcase 'fur':\n\t\tcase 'fy':\n\t\tcase 'gl':\n\t\tcase 'gu':\n\t\tcase 'ha':\n\t\tcase 'he':\n\t\tcase 'hu':\n\t\tcase 'is':\n\t\tcase 'it':\n\t\tcase 'ku':\n\t\tcase 'lb':\n\t\tcase 'ml':\n\t\tcase 'mn':\n\t\tcase 'mr':\n\t\tcase 'nah':\n\t\tcase 'nb':\n\t\tcase 'ne':\n\t\tcase 'nl':\n\t\tcase 'nn':\n\t\tcase 'no':\n\t\tcase 'oc':\n\t\tcase 'om':\n\t\tcase 'or':\n\t\tcase 'pa':\n\t\tcase 'pap':\n\t\tcase 'ps':\n\t\tcase 'pt':\n\t\tcase 'so':\n\t\tcase 'sq':\n\t\tcase 'sv':\n\t\tcase 'sw':\n\t\tcase 'ta':\n\t\tcase 'te':\n\t\tcase 'tk':\n\t\tcase 'ur':\n\t\tcase 'zu':\n\t\t\treturn (number === 1) ? 0 : 1\n\n\t\tcase 'am':\n\t\tcase 'bh':\n\t\tcase 'fil':\n\t\tcase 'fr':\n\t\tcase 'gun':\n\t\tcase 'hi':\n\t\tcase 'hy':\n\t\tcase 'ln':\n\t\tcase 'mg':\n\t\tcase 'nso':\n\t\tcase 'xbr':\n\t\tcase 'ti':\n\t\tcase 'wa':\n\t\t\treturn ((number === 0) || (number === 1)) ? 0 : 1\n\n\t\tcase 'be':\n\t\tcase 'bs':\n\t\tcase 'hr':\n\t\tcase 'ru':\n\t\tcase 'sh':\n\t\tcase 'sr':\n\t\tcase 'uk':\n\t\t\treturn ((number % 10 === 1) && (number % 100 !== 11)) ? 0 : (((number % 10 >= 2) && (number % 10 <= 4) && ((number % 100 < 10) || (number % 100 >= 20))) ? 1 : 2)\n\n\t\tcase 'cs':\n\t\tcase 'sk':\n\t\t\treturn (number === 1) ? 0 : (((number >= 2) && (number <= 4)) ? 1 : 2)\n\n\t\tcase 'ga':\n\t\t\treturn (number === 1) ? 0 : ((number === 2) ? 1 : 2)\n\n\t\tcase 'lt':\n\t\t\treturn ((number % 10 === 1) && (number % 100 !== 11)) ? 0 : (((number % 10 >= 2) && ((number % 100 < 10) || (number % 100 >= 20))) ? 1 : 2)\n\n\t\tcase 'sl':\n\t\t\treturn (number % 100 === 1) ? 0 : ((number % 100 === 2) ? 1 : (((number % 100 === 3) || (number % 100 === 4)) ? 2 : 3))\n\n\t\tcase 'mk':\n\t\t\treturn (number % 10 === 1) ? 0 : 1\n\n\t\tcase 'mt':\n\t\t\treturn (number === 1) ? 0 : (((number === 0) || ((number % 100 > 1) && (number % 100 < 11))) ? 1 : (((number % 100 > 10) && (number % 100 < 20)) ? 2 : 3))\n\n\t\tcase 'lv':\n\t\t\treturn (number === 0) ? 0 : (((number % 10 === 1) && (number % 100 !== 11)) ? 1 : 2)\n\n\t\tcase 'pl':\n\t\t\treturn (number === 1) ? 0 : (((number % 10 >= 2) && (number % 10 <= 4) && ((number % 100 < 12) || (number % 100 > 14))) ? 1 : 2)\n\n\t\tcase 'cy':\n\t\t\treturn (number === 1) ? 0 : ((number === 2) ? 1 : (((number === 8) || (number === 11)) ? 2 : 3))\n\n\t\tcase 'ro':\n\t\t\treturn (number === 1) ? 0 : (((number === 0) || ((number % 100 > 0) && (number % 100 < 20))) ? 1 : 2)\n\n\t\tcase 'ar':\n\t\t\treturn (number === 0) ? 0 : ((number === 1) ? 1 : ((number === 2) ? 2 : (((number % 100 >= 3) && (number % 100 <= 10)) ? 3 : (((number % 100 >= 11) && (number % 100 <= 99)) ? 4 : 5))))\n\n\t\tdefault:\n\t\t\treturn 0\n\t\t}\n\t},\n}\n\nexport default L10n\n\n/**\n * Returns the user's locale as a BCP 47 compliant language tag\n *\n * @returns {String} locale string\n */\nexport const getCanonicalLocale = () => {\n\tconst locale = getLocale()\n\treturn typeof locale === 'string' ? locale.replace(/_/g, '-') : locale\n}\n\n/**\n * Returns the user's locale\n *\n * @returns {String} locale string\n */\nexport const getLocale = () => $('html').data('locale')\n\n/**\n * Returns the user's language\n *\n * @returns {String} language string\n */\nexport const getLanguage = () => $('html').prop('lang')\n\nHandlebars.registerHelper('t', function(app, text) {\n\treturn L10n.translate(app, text)\n})\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport { emit } from '@nextcloud/event-bus'\n\n/**\n * @private\n * @param {Document} global the document to read the initial value from\n * @param {Function} emit the function to invoke for every new token\n * @returns {Object}\n */\nexport const manageToken = (global, emit) => {\n\tlet token = global.getElementsByTagName('head')[0].getAttribute('data-requesttoken')\n\n\treturn {\n\t\tgetToken: () => token,\n\t\tsetToken: newToken => {\n\t\t\ttoken = newToken\n\n\t\t\temit('csrf-token-update', {\n\t\t\t\ttoken,\n\t\t\t})\n\t\t},\n\t}\n}\n\nconst manageFromDocument = manageToken(document, emit)\n\n/**\n * @returns {string}\n */\nexport const getToken = manageFromDocument.getToken\n\n/**\n * @param {String} newToken new token\n */\nexport const setToken = manageFromDocument.setToken\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","'use strict';\n\nexports.__esModule = true;\nvar errorProps = ['description', 'fileName', 'lineNumber', 'endLineNumber', 'message', 'name', 'number', 'stack'];\n\nfunction Exception(message, node) {\n var loc = node && node.loc,\n line = undefined,\n endLineNumber = undefined,\n column = undefined,\n endColumn = undefined;\n\n if (loc) {\n line = loc.start.line;\n endLineNumber = loc.end.line;\n column = loc.start.column;\n endColumn = loc.end.column;\n\n message += ' - ' + line + ':' + column;\n }\n\n var tmp = Error.prototype.constructor.call(this, message);\n\n // Unfortunately errors are not enumerable in Chrome (at least), so `for prop in tmp` doesn't work.\n for (var idx = 0; idx < errorProps.length; idx++) {\n this[errorProps[idx]] = tmp[errorProps[idx]];\n }\n\n /* istanbul ignore else */\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, Exception);\n }\n\n try {\n if (loc) {\n this.lineNumber = line;\n this.endLineNumber = endLineNumber;\n\n // Work around issue under safari where we can't directly set the column value\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(this, 'column', {\n value: column,\n enumerable: true\n });\n Object.defineProperty(this, 'endColumn', {\n value: endColumn,\n enumerable: true\n });\n } else {\n this.column = column;\n this.endColumn = endColumn;\n }\n }\n } catch (nop) {\n /* Ignore if the browser is very particular */\n }\n}\n\nException.prototype = new Error();\n\nexports['default'] = Exception;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2V4Y2VwdGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFNLFVBQVUsR0FBRyxDQUNqQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsT0FBTyxDQUNSLENBQUM7O0FBRUYsU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNoQyxNQUFJLEdBQUcsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUc7TUFDeEIsSUFBSSxZQUFBO01BQ0osYUFBYSxZQUFBO01BQ2IsTUFBTSxZQUFBO01BQ04sU0FBUyxZQUFBLENBQUM7O0FBRVosTUFBSSxHQUFHLEVBQUU7QUFDUCxRQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7QUFDdEIsaUJBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztBQUM3QixVQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDMUIsYUFBUyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDOztBQUUzQixXQUFPLElBQUksS0FBSyxHQUFHLElBQUksR0FBRyxHQUFHLEdBQUcsTUFBTSxDQUFDO0dBQ3hDOztBQUVELE1BQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7OztBQUcxRCxPQUFLLElBQUksR0FBRyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtBQUNoRCxRQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0dBQzlDOzs7QUFHRCxNQUFJLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtBQUMzQixTQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQzFDOztBQUVELE1BQUk7QUFDRixRQUFJLEdBQUcsRUFBRTtBQUNQLFVBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLFVBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDOzs7O0FBSW5DLFVBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtBQUN6QixjQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsZUFBSyxFQUFFLE1BQU07QUFDYixvQkFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO0FBQ0gsY0FBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3ZDLGVBQUssRUFBRSxTQUFTO0FBQ2hCLG9CQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7T0FDSixNQUFNO0FBQ0wsWUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7QUFDckIsWUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7T0FDNUI7S0FDRjtHQUNGLENBQUMsT0FBTyxHQUFHLEVBQUU7O0dBRWI7Q0FDRjs7QUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7O3FCQUVuQixTQUFTIiwiZmlsZSI6ImV4Y2VwdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGVycm9yUHJvcHMgPSBbXG4gICdkZXNjcmlwdGlvbicsXG4gICdmaWxlTmFtZScsXG4gICdsaW5lTnVtYmVyJyxcbiAgJ2VuZExpbmVOdW1iZXInLFxuICAnbWVzc2FnZScsXG4gICduYW1lJyxcbiAgJ251bWJlcicsXG4gICdzdGFjaydcbl07XG5cbmZ1bmN0aW9uIEV4Y2VwdGlvbihtZXNzYWdlLCBub2RlKSB7XG4gIGxldCBsb2MgPSBub2RlICYmIG5vZGUubG9jLFxuICAgIGxpbmUsXG4gICAgZW5kTGluZU51bWJlcixcbiAgICBjb2x1bW4sXG4gICAgZW5kQ29sdW1uO1xuXG4gIGlmIChsb2MpIHtcbiAgICBsaW5lID0gbG9jLnN0YXJ0LmxpbmU7XG4gICAgZW5kTGluZU51bWJlciA9IGxvYy5lbmQubGluZTtcbiAgICBjb2x1bW4gPSBsb2Muc3RhcnQuY29sdW1uO1xuICAgIGVuZENvbHVtbiA9IGxvYy5lbmQuY29sdW1uO1xuXG4gICAgbWVzc2FnZSArPSAnIC0gJyArIGxpbmUgKyAnOicgKyBjb2x1bW47XG4gIH1cblxuICBsZXQgdG1wID0gRXJyb3IucHJvdG90eXBlLmNvbnN0cnVjdG9yLmNhbGwodGhpcywgbWVzc2FnZSk7XG5cbiAgLy8gVW5mb3J0dW5hdGVseSBlcnJvcnMgYXJlIG5vdCBlbnVtZXJhYmxlIGluIENocm9tZSAoYXQgbGVhc3QpLCBzbyBgZm9yIHByb3AgaW4gdG1wYCBkb2Vzbid0IHdvcmsuXG4gIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9yUHJvcHMubGVuZ3RoOyBpZHgrKykge1xuICAgIHRoaXNbZXJyb3JQcm9wc1tpZHhdXSA9IHRtcFtlcnJvclByb3BzW2lkeF1dO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKSB7XG4gICAgRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcywgRXhjZXB0aW9uKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgaWYgKGxvYykge1xuICAgICAgdGhpcy5saW5lTnVtYmVyID0gbGluZTtcbiAgICAgIHRoaXMuZW5kTGluZU51bWJlciA9IGVuZExpbmVOdW1iZXI7XG5cbiAgICAgIC8vIFdvcmsgYXJvdW5kIGlzc3VlIHVuZGVyIHNhZmFyaSB3aGVyZSB3ZSBjYW4ndCBkaXJlY3RseSBzZXQgdGhlIGNvbHVtbiB2YWx1ZVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdjb2x1bW4nLCB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbixcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ2VuZENvbHVtbicsIHtcbiAgICAgICAgICB2YWx1ZTogZW5kQ29sdW1uLFxuICAgICAgICAgIGVudW1lcmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgdGhpcy5lbmRDb2x1bW4gPSBlbmRDb2x1bW47XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChub3ApIHtcbiAgICAvKiBJZ25vcmUgaWYgdGhlIGJyb3dzZXIgaXMgdmVyeSBwYXJ0aWN1bGFyICovXG4gIH1cbn1cblxuRXhjZXB0aW9uLnByb3RvdHlwZSA9IG5ldyBFcnJvcigpO1xuXG5leHBvcnQgZGVmYXVsdCBFeGNlcHRpb247XG4iXX0=\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"FilePicker\", {\n enumerable: true,\n get: function get() {\n return _filepicker.FilePicker;\n }\n});\nObject.defineProperty(exports, \"FilePickerBuilder\", {\n enumerable: true,\n get: function get() {\n return _filepicker.FilePickerBuilder;\n }\n});\nObject.defineProperty(exports, \"getFilePickerBuilder\", {\n enumerable: true,\n get: function get() {\n return _filepicker.getFilePickerBuilder;\n }\n});\nObject.defineProperty(exports, \"showMessage\", {\n enumerable: true,\n get: function get() {\n return _toast.showMessage;\n }\n});\nObject.defineProperty(exports, \"showSuccess\", {\n enumerable: true,\n get: function get() {\n return _toast.showSuccess;\n }\n});\nObject.defineProperty(exports, \"showWarning\", {\n enumerable: true,\n get: function get() {\n return _toast.showWarning;\n }\n});\nObject.defineProperty(exports, \"showInfo\", {\n enumerable: true,\n get: function get() {\n return _toast.showInfo;\n }\n});\nObject.defineProperty(exports, \"showError\", {\n enumerable: true,\n get: function get() {\n return _toast.showError;\n }\n});\n\nvar _filepicker = require(\"./filepicker\");\n\nvar _toast = require(\"./toast\");\n//# sourceMappingURL=index.js.map","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\n\nimport OC from './index'\nimport { coreApps } from './constants'\n\n/**\n * Get an absolute url to a file in an app\n * @param {string} app the id of the app the file belongs to\n * @param {string} file the file path relative to the app folder\n * @returns {string} Absolute URL to a file\n */\nexport const linkTo = (app, file) => filePath(app, '', file)\n\n/**\n * Creates a relative url for remote use\n * @param {string} service id\n * @returns {string} the url\n */\nexport const linkToRemoteBase = service => getRootPath() + '/remote.php/' + service\n\n/**\n * @brief Creates an absolute url for remote use\n * @param {string} service id\n * @returns {string} the url\n */\nexport const linkToRemote = service => window.location.protocol + '//' + window.location.host + linkToRemoteBase(service)\n\n/**\n * Gets the base path for the given OCS API service.\n * @param {string} service name\n * @param {int} version OCS API version\n * @returns {string} OCS API base path\n */\nexport const linkToOCS = (service, version) => {\n\tversion = (version !== 2) ? 1 : 2\n\treturn window.location.protocol + '//' + window.location.host + getRootPath() + '/ocs/v' + version + '.php/' + service + '/'\n}\n\n/**\n * Generates the absolute url for the given relative url, which can contain parameters.\n * Parameters will be URL encoded automatically.\n * @param {string} url the url\n * @param {Object} [params] params\n * @param {Object} [options] destructuring object\n * @param {bool} [options.escape=true] enable/disable auto escape of placeholders (by default enabled)\n * @returns {string} Absolute URL for the given relative URL\n */\nexport const generateUrl = (url, params, options) => {\n\tconst defaultOptions = {\n\t\tescape: true,\n\t}\n\tconst allOptions = options || {}\n\t_.defaults(allOptions, defaultOptions)\n\n\tconst _build = function(text, vars) {\n\t\tvars = vars || []\n\t\treturn text.replace(/{([^{}]*)}/g,\n\t\t\tfunction(a, b) {\n\t\t\t\tconst r = (vars[b])\n\t\t\t\tif (allOptions.escape) {\n\t\t\t\t\treturn (typeof r === 'string' || typeof r === 'number') ? encodeURIComponent(r) : encodeURIComponent(a)\n\t\t\t\t} else {\n\t\t\t\t\treturn (typeof r === 'string' || typeof r === 'number') ? r : a\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t}\n\tif (url.charAt(0) !== '/') {\n\t\turl = '/' + url\n\n\t}\n\n\tif (OC.config.modRewriteWorking === true) {\n\t\treturn getRootPath() + _build(url, params)\n\t}\n\n\treturn getRootPath() + '/index.php' + _build(url, params)\n}\n\n/**\n * get the absolute path to an image file\n * if no extension is given for the image, it will automatically decide\n * between .png and .svg based on what the browser supports\n *\n * @param {string} app the app id to which the image belongs\n * @param {string} file the name of the image file\n * @returns {string}\n * @deprecated 19.0.0 use `imagePath` from https://www.npmjs.com/package/@nextcloud/router\n */\nexport const imagePath = (app, file) => {\n\tif (file.indexOf('.') === -1) {\n\t\t// if no extension is given, use svg\n\t\treturn filePath(app, 'img', file + '.svg')\n\t}\n\n\treturn filePath(app, 'img', file)\n}\n\n/**\n * Get the absolute url for a file in an app\n * @param {string} app the id of the app\n * @param {string} type the type of the file to link to (e.g. css,img,ajax.template)\n * @param {string} file the filename\n * @returns {string} Absolute URL for a file in an app\n * @deprecated 19.0.0 use `generateFilePath` from https://www.npmjs.com/package/@nextcloud/router\n */\nexport const filePath = (app, type, file) => {\n\tconst isCore = coreApps.indexOf(app) !== -1\n\tlet link = getRootPath()\n\tif (file.substring(file.length - 3) === 'php' && !isCore) {\n\t\tlink += '/index.php/apps/' + app\n\t\tif (file !== 'index.php') {\n\t\t\tlink += '/'\n\t\t\tif (type) {\n\t\t\t\tlink += encodeURI(type + '/')\n\t\t\t}\n\t\t\tlink += file\n\t\t}\n\t} else if (file.substring(file.length - 3) !== 'php' && !isCore) {\n\t\tlink = OC.appswebroots[app]\n\t\tif (type) {\n\t\t\tlink += '/' + type + '/'\n\t\t}\n\t\tif (link.substring(link.length - 1) !== '/') {\n\t\t\tlink += '/'\n\t\t}\n\t\tlink += file\n\t} else {\n\t\tif ((app === 'core' || app === 'search') && type === 'ajax') {\n\t\t\tlink += '/index.php/'\n\t\t} else {\n\t\t\tlink += '/'\n\t\t}\n\t\tif (!isCore) {\n\t\t\tlink += 'apps/'\n\t\t}\n\t\tif (app !== '') {\n\t\t\tapp += '/'\n\t\t\tlink += app\n\t\t}\n\t\tif (type) {\n\t\t\tlink += type + '/'\n\t\t}\n\t\tlink += file\n\t}\n\treturn link\n}\n\n/**\n * Returns the web root path where this Nextcloud instance\n * is accessible, with a leading slash.\n * For example \"/nextcloud\".\n *\n * @returns {string} web root path\n *\n * @deprecated 19.0.0 use `getRootUrl` from https://www.npmjs.com/package/@nextcloud/router\n * @since 8.2\n */\nexport const getRootPath = () => OC.webroot\n","/**\n * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport $ from 'jquery'\n\nimport OC from '../OC/index'\n\n/**\n * @param {string} method 'post' or 'delete'\n * @param {string} endpoint endpoint\n * @param {Object} [options] destructuring object\n * @param {Object} [options.data] option data\n * @param {function} [options.success] success callback\n * @param {function} [options.error] error callback\n * @internal\n */\nfunction call(method, endpoint, options) {\n\tif ((method === 'post' || method === 'delete') && OC.PasswordConfirmation.requiresPasswordConfirmation()) {\n\t\tOC.PasswordConfirmation.requirePasswordConfirmation(_.bind(call, this, method, endpoint, options))\n\t\treturn\n\t}\n\n\toptions = options || {}\n\t$.ajax({\n\t\ttype: method.toUpperCase(),\n\t\turl: OC.linkToOCS('apps/provisioning_api/api/v1', 2) + 'config/apps' + endpoint,\n\t\tdata: options.data || {},\n\t\tsuccess: options.success,\n\t\terror: options.error,\n\t})\n}\n\n/**\n * @param {Object} [options] destructuring object\n * @param {function} [options.success] success callback\n * @since 11.0.0\n */\nexport function getApps(options) {\n\tcall('get', '', options)\n}\n\n/**\n * @param {string} app app id\n * @param {Object} [options] destructuring object\n * @param {function} [options.success] success callback\n * @param {function} [options.error] error callback\n * @since 11.0.0\n */\nexport function getKeys(app, options) {\n\tcall('get', '/' + app, options)\n}\n\n/**\n * @param {string} app app id\n * @param {string} key key\n * @param {string|function} defaultValue default value\n * @param {Object} [options] destructuring object\n * @param {function} [options.success] success callback\n * @param {function} [options.error] error callback\n * @since 11.0.0\n */\nexport function getValue(app, key, defaultValue, options) {\n\toptions = options || {}\n\toptions.data = {\n\t\tdefaultValue: defaultValue,\n\t}\n\n\tcall('get', '/' + app + '/' + key, options)\n}\n\n/**\n * @param {string} app app id\n * @param {string} key key\n * @param {string} value value\n * @param {Object} [options] destructuring object\n * @param {function} [options.success] success callback\n * @param {function} [options.error] error callback\n * @since 11.0.0\n */\nexport function setValue(app, key, value, options) {\n\toptions = options || {}\n\toptions.data = {\n\t\tvalue: value,\n\t}\n\n\tcall('post', '/' + app + '/' + key, options)\n}\n\n/**\n * @param {string} app app id\n * @param {string} key key\n * @param {Object} [options] destructuring object\n * @param {function} [options.success] success callback\n * @param {function} [options.error] error callback\n * @since 11.0.0\n */\nexport function deleteKey(app, key, options) {\n\tcall('delete', '/' + app + '/' + key, options)\n}\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.join\");\n\nrequire(\"core-js/modules/es.array.map\");\n\nrequire(\"core-js/modules/es.array.reduce\");\n\nrequire(\"core-js/modules/es.regexp.exec\");\n\nrequire(\"core-js/modules/es.string.replace\");\n\nrequire(\"core-js/modules/es.string.split\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.encodePath = encodePath;\nexports.basename = basename;\nexports.dirname = dirname;\nexports.joinPaths = joinPaths;\nexports.isSamePath = isSamePath;\n\n/**\n * URI-Encodes a file path but keep the path slashes.\n */\nfunction encodePath(path) {\n if (!path) {\n return path;\n }\n\n return path.split('/').map(encodeURIComponent).join('/');\n}\n/**\n * Returns the base name of the given path.\n * For example for \"/abc/somefile.txt\" it will return \"somefile.txt\"\n */\n\n\nfunction basename(path) {\n return path.replace(/\\\\/g, '/').replace(/.*\\//, '');\n}\n/**\n * Returns the dir name of the given path.\n * For example for \"/abc/somefile.txt\" it will return \"/abc\"\n */\n\n\nfunction dirname(path) {\n return path.replace(/\\\\/g, '/').replace(/\\/[^\\/]*$/, '');\n}\n/**\n * Join path sections\n */\n\n\nfunction joinPaths() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (arguments.length < 1) {\n return '';\n } // discard empty arguments\n\n\n var nonEmptyArgs = args.filter(function (arg) {\n return arg.length > 0;\n });\n\n if (nonEmptyArgs.length < 1) {\n return '';\n }\n\n var lastArg = nonEmptyArgs[nonEmptyArgs.length - 1];\n var leadingSlash = nonEmptyArgs[0].charAt(0) === '/';\n var trailingSlash = lastArg.charAt(lastArg.length - 1) === '/';\n var sections = nonEmptyArgs.reduce(function (acc, section) {\n return acc.concat(section.split('/'));\n }, []);\n var first = !leadingSlash;\n var path = sections.reduce(function (acc, section) {\n if (section === '') {\n return acc;\n }\n\n if (first) {\n first = false;\n return acc + section;\n }\n\n return acc + '/' + section;\n }, '');\n\n if (trailingSlash) {\n // add it back\n return path + '/';\n }\n\n return path;\n}\n/**\n * Returns whether the given paths are the same, without\n * leading, trailing or doubled slashes and also removing\n * the dot sections.\n */\n\n\nfunction isSamePath(path1, path2) {\n var pathSections1 = (path1 || '').split('/').filter(function (p) {\n return p !== '.';\n });\n var pathSections2 = (path2 || '').split('/').filter(function (p) {\n return p !== '.';\n });\n path1 = joinPaths.apply(undefined, pathSections1);\n path2 = joinPaths.apply(undefined, pathSections2);\n return path1 === path2;\n}\n//# sourceMappingURL=index.js.map","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Namespace for apps\n * @namespace OCA\n */\nexport default {}\n","var path = require('../internals/path');\nvar has = require('../internals/has');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","// Create a simple path alias to allow browserify to resolve\n// the runtime on a supported path.\nmodule.exports = require('./dist/cjs/handlebars.runtime')['default'];\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n concat: function concat(arg) { // eslint-disable-line no-unused-vars\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n// Edge 14- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","exports.f = Object.getOwnPropertySymbols;\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\nmodule.exports = (!STRICT_METHOD || !USES_TO_LENGTH) ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseCreate = require('./_baseCreate'),\n isObject = require('./isObject');\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nmodule.exports = createCtor;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loadState = loadState;\n\n/**\n * @param app app ID, e.g. \"mail\"\n * @param key name of the property\n * @throws if the key can't be found\n */\nfunction loadState(app, key) {\n var elem = document.querySelector(\"#initial-state-\".concat(app, \"-\").concat(key));\n\n if (elem === null) {\n throw new Error(\"Could not find initial state \".concat(key, \" of \").concat(app));\n }\n\n try {\n return JSON.parse(atob(elem.value));\n } catch (e) {\n throw new Error(\"Could not parse initial state \".concat(key, \" of \").concat(app));\n }\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\n\nrequire(\"core-js/modules/es.object.assign\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _axios = _interopRequireDefault(require(\"axios\"));\n\nvar _auth = require(\"@nextcloud/auth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar client = _axios.default.create({\n headers: {\n requesttoken: (0, _auth.getRequestToken)()\n }\n});\n\nvar cancelableClient = Object.assign(client, {\n CancelToken: _axios.default.CancelToken,\n isCancel: _axios.default.isCancel\n});\n(0, _auth.onRequestTokenUpdate)(function (token) {\n return client.defaults.headers.requesttoken = token;\n});\nvar _default = cancelableClient;\nexports.default = _default;\n//# sourceMappingURL=index.js.map","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"getRequestToken\", {\n enumerable: true,\n get: function get() {\n return _requesttoken.getRequestToken;\n }\n});\nObject.defineProperty(exports, \"onRequestTokenUpdate\", {\n enumerable: true,\n get: function get() {\n return _requesttoken.onRequestTokenUpdate;\n }\n});\nObject.defineProperty(exports, \"getCurrentUser\", {\n enumerable: true,\n get: function get() {\n return _user.getCurrentUser;\n }\n});\n\nvar _requesttoken = require(\"./requesttoken\");\n\nvar _user = require(\"./user\");\n//# sourceMappingURL=index.js.map","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _handlebarsBase = require('./handlebars/base');\n\nvar base = _interopRequireWildcard(_handlebarsBase);\n\n// Each of these augment the Handlebars object. No need to setup here.\n// (This is done to easily share code between commonjs and browse envs)\n\nvar _handlebarsSafeString = require('./handlebars/safe-string');\n\nvar _handlebarsSafeString2 = _interopRequireDefault(_handlebarsSafeString);\n\nvar _handlebarsException = require('./handlebars/exception');\n\nvar _handlebarsException2 = _interopRequireDefault(_handlebarsException);\n\nvar _handlebarsUtils = require('./handlebars/utils');\n\nvar Utils = _interopRequireWildcard(_handlebarsUtils);\n\nvar _handlebarsRuntime = require('./handlebars/runtime');\n\nvar runtime = _interopRequireWildcard(_handlebarsRuntime);\n\nvar _handlebarsNoConflict = require('./handlebars/no-conflict');\n\nvar _handlebarsNoConflict2 = _interopRequireDefault(_handlebarsNoConflict);\n\n// For compatibility and usage outside of module systems, make the Handlebars object a namespace\nfunction create() {\n var hb = new base.HandlebarsEnvironment();\n\n Utils.extend(hb, base);\n hb.SafeString = _handlebarsSafeString2['default'];\n hb.Exception = _handlebarsException2['default'];\n hb.Utils = Utils;\n hb.escapeExpression = Utils.escapeExpression;\n\n hb.VM = runtime;\n hb.template = function (spec) {\n return runtime.template(spec, hb);\n };\n\n return hb;\n}\n\nvar inst = create();\ninst.create = create;\n\n_handlebarsNoConflict2['default'](inst);\n\ninst['default'] = inst;\n\nexports['default'] = inst;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9oYW5kbGViYXJzLnJ1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OEJBQXNCLG1CQUFtQjs7SUFBN0IsSUFBSTs7Ozs7b0NBSU8sMEJBQTBCOzs7O21DQUMzQix3QkFBd0I7Ozs7K0JBQ3ZCLG9CQUFvQjs7SUFBL0IsS0FBSzs7aUNBQ1Esc0JBQXNCOztJQUFuQyxPQUFPOztvQ0FFSSwwQkFBMEI7Ozs7O0FBR2pELFNBQVMsTUFBTSxHQUFHO0FBQ2hCLE1BQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7O0FBRTFDLE9BQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3ZCLElBQUUsQ0FBQyxVQUFVLG9DQUFhLENBQUM7QUFDM0IsSUFBRSxDQUFDLFNBQVMsbUNBQVksQ0FBQztBQUN6QixJQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNqQixJQUFFLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDOztBQUU3QyxJQUFFLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUNoQixJQUFFLENBQUMsUUFBUSxHQUFHLFVBQVMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7R0FDbkMsQ0FBQzs7QUFFRixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELElBQUksSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDOztBQUVyQixrQ0FBVyxJQUFJLENBQUMsQ0FBQzs7QUFFakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQzs7cUJBRVIsSUFBSSIsImZpbGUiOiJoYW5kbGViYXJzLnJ1bnRpbWUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiYXNlIGZyb20gJy4vaGFuZGxlYmFycy9iYXNlJztcblxuLy8gRWFjaCBvZiB0aGVzZSBhdWdtZW50IHRoZSBIYW5kbGViYXJzIG9iamVjdC4gTm8gbmVlZCB0byBzZXR1cCBoZXJlLlxuLy8gKFRoaXMgaXMgZG9uZSB0byBlYXNpbHkgc2hhcmUgY29kZSBiZXR3ZWVuIGNvbW1vbmpzIGFuZCBicm93c2UgZW52cylcbmltcG9ydCBTYWZlU3RyaW5nIGZyb20gJy4vaGFuZGxlYmFycy9zYWZlLXN0cmluZyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vaGFuZGxlYmFycy9leGNlcHRpb24nO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi9oYW5kbGViYXJzL3V0aWxzJztcbmltcG9ydCAqIGFzIHJ1bnRpbWUgZnJvbSAnLi9oYW5kbGViYXJzL3J1bnRpbWUnO1xuXG5pbXBvcnQgbm9Db25mbGljdCBmcm9tICcuL2hhbmRsZWJhcnMvbm8tY29uZmxpY3QnO1xuXG4vLyBGb3IgY29tcGF0aWJpbGl0eSBhbmQgdXNhZ2Ugb3V0c2lkZSBvZiBtb2R1bGUgc3lzdGVtcywgbWFrZSB0aGUgSGFuZGxlYmFycyBvYmplY3QgYSBuYW1lc3BhY2VcbmZ1bmN0aW9uIGNyZWF0ZSgpIHtcbiAgbGV0IGhiID0gbmV3IGJhc2UuSGFuZGxlYmFyc0Vudmlyb25tZW50KCk7XG5cbiAgVXRpbHMuZXh0ZW5kKGhiLCBiYXNlKTtcbiAgaGIuU2FmZVN0cmluZyA9IFNhZmVTdHJpbmc7XG4gIGhiLkV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjtcbiAgaGIuVXRpbHMgPSBVdGlscztcbiAgaGIuZXNjYXBlRXhwcmVzc2lvbiA9IFV0aWxzLmVzY2FwZUV4cHJlc3Npb247XG5cbiAgaGIuVk0gPSBydW50aW1lO1xuICBoYi50ZW1wbGF0ZSA9IGZ1bmN0aW9uKHNwZWMpIHtcbiAgICByZXR1cm4gcnVudGltZS50ZW1wbGF0ZShzcGVjLCBoYik7XG4gIH07XG5cbiAgcmV0dXJuIGhiO1xufVxuXG5sZXQgaW5zdCA9IGNyZWF0ZSgpO1xuaW5zdC5jcmVhdGUgPSBjcmVhdGU7XG5cbm5vQ29uZmxpY3QoaW5zdCk7XG5cbmluc3RbJ2RlZmF1bHQnXSA9IGluc3Q7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3Q7XG4iXX0=\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","var baseSetData = require('./_baseSetData'),\n createBind = require('./_createBind'),\n createCurry = require('./_createCurry'),\n createHybrid = require('./_createHybrid'),\n createPartial = require('./_createPartial'),\n getData = require('./_getData'),\n mergeData = require('./_mergeData'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString'),\n toInteger = require('./toInteger');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nmodule.exports = createWrap;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nmodule.exports = LazyWrapper;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nmodule.exports = baseLodash;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nmodule.exports = replaceHolders;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\n/**\n * Parses a URL query string into a JS map\n * @param {string} queryString query string in the format param1=1234¶m2=abcde¶m3=xyz\n * @returns {Object.<string, string>} map containing key/values matching the URL parameters\n */\nexport const parse = queryString => {\n\tlet pos\n\tlet components\n\tconst result = {}\n\tlet key\n\tif (!queryString) {\n\t\treturn null\n\t}\n\tpos = queryString.indexOf('?')\n\tif (pos >= 0) {\n\t\tqueryString = queryString.substr(pos + 1)\n\t}\n\tconst parts = queryString.replace(/\\+/g, '%20').split('&')\n\tfor (let i = 0; i < parts.length; i++) {\n\t\t// split on first equal sign\n\t\tconst part = parts[i]\n\t\tpos = part.indexOf('=')\n\t\tif (pos >= 0) {\n\t\t\tcomponents = [\n\t\t\t\tpart.substr(0, pos),\n\t\t\t\tpart.substr(pos + 1),\n\t\t\t]\n\t\t} else {\n\t\t\t// key only\n\t\t\tcomponents = [part]\n\t\t}\n\t\tif (!components.length) {\n\t\t\tcontinue\n\t\t}\n\t\tkey = decodeURIComponent(components[0])\n\t\tif (!key) {\n\t\t\tcontinue\n\t\t}\n\t\t// if equal sign was there, return string\n\t\tif (components.length > 1) {\n\t\t\tresult[key] = decodeURIComponent(components[1])\n\t\t} else {\n\t\t\t// no equal sign => null value\n\t\t\tresult[key] = null\n\t\t}\n\t}\n\treturn result\n}\n\n/**\n * Builds a URL query from a JS map.\n * @param {Object.<string, string>} params map containing key/values matching the URL parameters\n * @returns {string} String containing a URL query (without question) mark\n */\nexport const build = params => {\n\tif (!params) {\n\t\treturn ''\n\t}\n\treturn $.map(params, function(value, key) {\n\t\tlet s = encodeURIComponent(key)\n\t\tif (value !== null && typeof (value) !== 'undefined') {\n\t\t\ts += '=' + encodeURIComponent(value)\n\t\t}\n\t\treturn s\n\t}).join('&')\n}\n","var convert = require('./convert'),\n func = convert('identity', require('../identity'), require('./_falseOptions'));\n\nfunc.placeholder = require('./placeholder');\nmodule.exports = func;\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.github.io/ecma262/#sec-map-objects\nmodule.exports = collection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], that, IS_MAP);\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","/**\n * ownCloud - core\n *\n * This file is licensed under the Affero General Public License version 3 or\n * later. See the COPYING file.\n *\n * @author Bernhard Posselt <dev@bernhard-posselt.com>\n * @copyright Bernhard Posselt 2014\n */\n\nimport $ from 'jquery'\n\nlet dynamicSlideToggleEnabled = false\n\nconst Apps = {\n\tenableDynamicSlideToggle: function() {\n\t\tdynamicSlideToggleEnabled = true\n\t},\n}\n\n/**\n * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings\n *\n * @param {Object} [$el] sidebar element to show, defaults to $('#app-sidebar')\n */\nApps.showAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.removeClass('disappear').show()\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Shows the #app-sidebar and removes .with-app-sidebar from subsequent\n * siblings\n *\n * @param {Object} [$el] sidebar element to hide, defaults to $('#app-sidebar')\n */\nApps.hideAppSidebar = function($el) {\n\tconst $appSidebar = $el || $('#app-sidebar')\n\t$appSidebar.hide().addClass('disappear')\n\t$('#app-content').trigger(new $.Event('appresized'))\n}\n\n/**\n * Provides a way to slide down a target area through a button and slide it\n * up if the user clicks somewhere else. Used for the news app settings and\n * add new field.\n *\n * Usage:\n * <button data-apps-slide-toggle=\".slide-area\">slide</button>\n * <div class=\".slide-area\" class=\"hidden\">I'm sliding up</div>\n */\nexport const registerAppsSlideToggle = () => {\n\tlet buttons = $('[data-apps-slide-toggle]')\n\n\tif (buttons.length === 0) {\n\t\t$('#app-navigation').addClass('without-app-settings')\n\t}\n\n\t$(document).click(function(event) {\n\n\t\tif (dynamicSlideToggleEnabled) {\n\t\t\tbuttons = $('[data-apps-slide-toggle]')\n\t\t}\n\n\t\tbuttons.each(function(index, button) {\n\n\t\t\tconst areaSelector = $(button).data('apps-slide-toggle')\n\t\t\tconst area = $(areaSelector)\n\n\t\t\tfunction hideArea() {\n\t\t\t\tarea.slideUp(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('hide'))\n\t\t\t\t})\n\t\t\t\tarea.removeClass('opened')\n\t\t\t\t$(button).removeClass('opened')\n\t\t\t}\n\n\t\t\tfunction showArea() {\n\t\t\t\tarea.slideDown(OC.menuSpeed * 4, function() {\n\t\t\t\t\tarea.trigger(new $.Event('show'))\n\t\t\t\t})\n\t\t\t\tarea.addClass('opened')\n\t\t\t\t$(button).addClass('opened')\n\t\t\t\tconst input = $(areaSelector + ' [autofocus]')\n\t\t\t\tif (input.length === 1) {\n\t\t\t\t\tinput.focus()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// do nothing if the area is animated\n\t\t\tif (!area.is(':animated')) {\n\n\t\t\t\t// button toggles the area\n\t\t\t\tif ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) {\n\t\t\t\t\tif (area.is(':visible')) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowArea()\n\t\t\t\t\t}\n\n\t\t\t\t\t// all other areas that have not been clicked but are open\n\t\t\t\t\t// should be slid up\n\t\t\t\t} else {\n\t\t\t\t\tconst closest = $(event.target).closest(areaSelector)\n\t\t\t\t\tif (area.is(':visible') && closest[0] !== area[0]) {\n\t\t\t\t\t\thideArea()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t})\n}\n\nexport default Apps\n","/*\n * vim: expandtab shiftwidth=4 softtabstop=4\n */\n\n/* global dav */\nif (typeof dav === 'undefined') { dav = {}; };\n\ndav._XML_CHAR_MAP = {\n '<': '<',\n '>': '>',\n '&': '&',\n '\"': '"',\n \"'\": '''\n};\n\ndav._escapeXml = function(s) {\n return s.replace(/[<>&\"']/g, function (ch) {\n return dav._XML_CHAR_MAP[ch];\n });\n};\n\ndav.Client = function(options) {\n var i;\n for(i in options) {\n this[i] = options[i];\n }\n\n};\n\ndav.Client.prototype = {\n\n baseUrl : null,\n\n userName : null,\n\n password : null,\n\n\n xmlNamespaces : {\n 'DAV:' : 'd'\n },\n\n /**\n * Generates a propFind request.\n *\n * @param {string} url Url to do the propfind request on\n * @param {Array} properties List of properties to retrieve.\n * @param {string} depth \"0\", \"1\" or \"infinity\"\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propFind : function(url, properties, depth, headers) {\n\n if(typeof depth === \"undefined\") {\n depth = '0';\n }\n\n // depth header must be a string, in case a number was passed in\n depth = '' + depth;\n\n headers = headers || {};\n\n headers['Depth'] = depth;\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '<?xml version=\"1.0\"?>\\n' +\n '<d:propfind ';\n var namespace;\n for (namespace in this.xmlNamespaces) {\n body += ' xmlns:' + this.xmlNamespaces[namespace] + '=\"' + namespace + '\"';\n }\n body += '>\\n' +\n ' <d:prop>\\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(properties[ii]);\n if (this.xmlNamespaces[property.namespace]) {\n body+=' <' + this.xmlNamespaces[property.namespace] + ':' + property.name + ' />\\n';\n } else {\n body+=' <x:' + property.name + ' xmlns:x=\"' + property.namespace + '\" />\\n';\n }\n\n }\n body+=' </d:prop>\\n';\n body+='</d:propfind>';\n\n return this.request('PROPFIND', url, headers, body).then(\n function(result) {\n\n if (depth === '0') {\n return {\n status: result.status,\n body: result.body[0],\n xhr: result.xhr\n };\n } else {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }\n\n }.bind(this)\n );\n\n },\n\n /**\n * Renders a \"d:set\" block for the given properties.\n *\n * @param {Object.<String,String>} properties\n * @return {String} XML \"<d:set>\" block\n */\n _renderPropSet: function(properties) {\n var body = ' <d:set>\\n' +\n ' <d:prop>\\n';\n\n for(var ii in properties) {\n if (!properties.hasOwnProperty(ii)) {\n continue;\n }\n\n var property = this.parseClarkNotation(ii);\n var propName;\n var propValue = properties[ii];\n if (this.xmlNamespaces[property.namespace]) {\n propName = this.xmlNamespaces[property.namespace] + ':' + property.name;\n } else {\n propName = 'x:' + property.name + ' xmlns:x=\"' + property.namespace + '\"';\n }\n\n // FIXME: hard-coded for now until we allow properties to\n // specify whether to be escaped or not\n if (propName !== 'd:resourcetype') {\n propValue = dav._escapeXml(propValue);\n }\n body += ' <' + propName + '>' + propValue + '</' + propName + '>\\n';\n }\n body +=' </d:prop>\\n';\n body +=' </d:set>\\n';\n return body;\n },\n\n /**\n * Generates a propPatch request.\n *\n * @param {string} url Url to do the proppatch request on\n * @param {Object.<String,String>} properties List of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n propPatch : function(url, properties, headers) {\n headers = headers || {};\n\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n var body =\n '<?xml version=\"1.0\"?>\\n' +\n '<d:propertyupdate ';\n var namespace;\n for (namespace in this.xmlNamespaces) {\n body += ' xmlns:' + this.xmlNamespaces[namespace] + '=\"' + namespace + '\"';\n }\n body += '>\\n' + this._renderPropSet(properties);\n body += '</d:propertyupdate>';\n\n return this.request('PROPPATCH', url, headers, body).then(\n function(result) {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }.bind(this)\n );\n\n },\n\n /**\n * Generates a MKCOL request.\n * If attributes are given, it will use an extended MKCOL request.\n *\n * @param {string} url Url to do the proppatch request on\n * @param {Object.<String,String>} [properties] list of properties to store.\n * @param {Object} [headers] headers\n * @return {Promise}\n */\n mkcol : function(url, properties, headers) {\n var body = '';\n headers = headers || {};\n headers['Content-Type'] = 'application/xml; charset=utf-8';\n\n if (properties) {\n body =\n '<?xml version=\"1.0\"?>\\n' +\n '<d:mkcol';\n var namespace;\n for (namespace in this.xmlNamespaces) {\n body += ' xmlns:' + this.xmlNamespaces[namespace] + '=\"' + namespace + '\"';\n }\n body += '>\\n' + this._renderPropSet(properties);\n body +='</d:mkcol>';\n }\n\n return this.request('MKCOL', url, headers, body).then(\n function(result) {\n return {\n status: result.status,\n body: result.body,\n xhr: result.xhr\n };\n }.bind(this)\n );\n\n },\n\n /**\n * Performs a HTTP request, and returns a Promise\n *\n * @param {string} method HTTP method\n * @param {string} url Relative or absolute url\n * @param {Object} headers HTTP headers as an object.\n * @param {string} body HTTP request body.\n * @param {string} responseType HTTP request response type.\n * @param {Object} options\n * @param {Function} options.onProgress progress callback\n * @return {Promise}\n */\n request : function(method, url, headers, body, responseType, options) {\n\n var self = this;\n var xhr = this.xhrProvider();\n headers = headers || {};\n responseType = responseType || \"\";\n \n if (this.userName) {\n headers['Authorization'] = 'Basic ' + btoa(this.userName + ':' + this.password);\n // xhr.open(method, this.resolveUrl(url), true, this.userName, this.password);\n }\n xhr.open(method, this.resolveUrl(url), true);\n var ii;\n for(ii in headers) {\n xhr.setRequestHeader(ii, headers[ii]);\n }\n xhr.responseType = responseType;\n\n if (options && typeof(options.onProgress) === 'function') {\n if (method === 'PUT' || method === 'POST') {\n xhr.upload.addEventListener('progress', function (e) {\n options.onProgress(e)\n }, false)\n }\n else {\n xhr.addEventListener('progress', function (e) {\n options.onProgress(e)\n }, false)\n }\n }\n\n // Work around for edge\n if (body === undefined) {\n xhr.send();\n } else {\n xhr.send(body);\n }\n\n return new Promise(function(fulfill, reject) {\n\n xhr.onreadystatechange = function() {\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n var resultBody = xhr.response;\n if (xhr.status === 207) {\n resultBody = self.parseMultiStatus(xhr.response);\n }\n\n fulfill({\n body: resultBody,\n status: xhr.status,\n xhr: xhr\n });\n\n };\n\n xhr.ontimeout = function() {\n\n reject(new Error('Timeout exceeded'));\n\n };\n\n });\n\n },\n\n /**\n * Returns an XMLHttpRequest object.\n *\n * This is in its own method, so it can be easily overridden.\n *\n * @return {XMLHttpRequest}\n */\n xhrProvider : function() {\n\n return new XMLHttpRequest();\n\n },\n\n /**\n * Parses a property node.\n *\n * Either returns a string if the node only contains text, or returns an\n * array of non-text subnodes.\n *\n * @param {Object} propNode node to parse\n * @return {string|Array} text content as string or array of subnodes, excluding text nodes\n */\n _parsePropNode: function(propNode) {\n var content = null;\n if (propNode.childNodes && propNode.childNodes.length > 0) {\n var subNodes = [];\n // filter out text nodes\n for (var j = 0; j < propNode.childNodes.length; j++) {\n var node = propNode.childNodes[j];\n if (node.nodeType === 1) {\n subNodes.push(node);\n }\n }\n if (subNodes.length) {\n content = subNodes;\n }\n }\n\n return content || propNode.textContent || propNode.text || '';\n },\n\n /**\n * Parses a multi-status response body.\n *\n * @param {string} xmlBody\n * @param {Array}\n */\n parseMultiStatus : function(xmlBody) {\n\n var parser = new DOMParser();\n var doc = parser.parseFromString(xmlBody, \"application/xml\");\n\n var resolver = function(foo) {\n var ii;\n for(ii in this.xmlNamespaces) {\n if (this.xmlNamespaces[ii] === foo) {\n return ii;\n }\n }\n }.bind(this);\n\n var responseIterator = doc.evaluate('/d:multistatus/d:response', doc, resolver, XPathResult.ANY_TYPE, null);\n\n var result = [];\n var responseNode = responseIterator.iterateNext();\n\n while(responseNode) {\n\n var response = {\n href : null,\n propStat : []\n };\n\n response.href = doc.evaluate('string(d:href)', responseNode, resolver, XPathResult.ANY_TYPE, null).stringValue;\n\n var propStatIterator = doc.evaluate('d:propstat', responseNode, resolver, XPathResult.ANY_TYPE, null);\n var propStatNode = propStatIterator.iterateNext();\n\n while(propStatNode) {\n var propStat = {\n status : doc.evaluate('string(d:status)', propStatNode, resolver, XPathResult.ANY_TYPE, null).stringValue,\n properties : {},\n };\n\n var propIterator = doc.evaluate('d:prop/*', propStatNode, resolver, XPathResult.ANY_TYPE, null);\n\n var propNode = propIterator.iterateNext();\n while(propNode) {\n var content = this._parsePropNode(propNode);\n propStat.properties['{' + propNode.namespaceURI + '}' + propNode.localName] = content;\n propNode = propIterator.iterateNext();\n\n }\n response.propStat.push(propStat);\n propStatNode = propStatIterator.iterateNext();\n\n\n }\n\n result.push(response);\n responseNode = responseIterator.iterateNext();\n\n }\n\n return result;\n\n },\n\n /**\n * Takes a relative url, and maps it to an absolute url, using the baseUrl\n *\n * @param {string} url\n * @return {string}\n */\n resolveUrl : function(url) {\n\n // Note: this is rudamentary.. not sure yet if it handles every case.\n if (/^https?:\\/\\//i.test(url)) {\n // absolute\n return url;\n }\n\n var baseParts = this.parseUrl(this.baseUrl);\n if (url.charAt('/')) {\n // Url starts with a slash\n return baseParts.root + url;\n }\n\n // Url does not start with a slash, we need grab the base url right up until the last slash.\n var newUrl = baseParts.root + '/';\n if (baseParts.path.lastIndexOf('/')!==-1) {\n newUrl = newUrl = baseParts.path.subString(0, baseParts.path.lastIndexOf('/')) + '/';\n }\n newUrl+=url;\n return url;\n\n },\n\n /**\n * Parses a url and returns its individual components.\n *\n * @param {String} url\n * @return {Object}\n */\n parseUrl : function(url) {\n\n var parts = url.match(/^(?:([A-Za-z]+):)?(\\/{0,3})([0-9.\\-A-Za-z]+)(?::(\\d+))?(?:\\/([^?#]*))?(?:\\?([^#]*))?(?:#(.*))?$/);\n var result = {\n url : parts[0],\n scheme : parts[1],\n host : parts[3],\n port : parts[4],\n path : parts[5],\n query : parts[6],\n fragment : parts[7],\n };\n result.root =\n result.scheme + '://' +\n result.host +\n (result.port ? ':' + result.port : '');\n\n return result;\n\n },\n\n parseClarkNotation : function(propertyName) {\n\n var result = propertyName.match(/^{([^}]+)}(.*)$/);\n if (!result) {\n return;\n }\n\n return {\n name : result[2],\n namespace : result[1]\n };\n\n }\n\n};\n\nif (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {\n module.exports.Client = dav.Client;\n}\n\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = dav;","/*! @license DOMPurify | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.0.8/LICENSE */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.DOMPurify = factory());\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n objectKeys = Object.keys;\n var freeze = Object.freeze,\n seal = Object.seal; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayIndexOf = unapply(Array.prototype.indexOf);\n var arrayJoin = unapply(Array.prototype.join);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var arraySlice = unapply(Array.prototype.slice);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n var regExpCreate = unconstruct(RegExp);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = {};\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'audio', 'canvas', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'video', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.0.11';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var removeTitle = false;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n getElementsByTagName = _document.getElementsByTagName,\n createDocumentFragment = _document.createDocumentFragment;\n var importNode = originalDocument.importNode;\n\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = implementation && typeof implementation.createHTMLDocument !== 'undefined' && document.documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for jQuery's $() factory? */\n var SAFE_FOR_JQUERY = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify. */\n var RETURN_DOM_IMPORT = false;\n\n /* Try to return a Trusted Type object instead of a string, retrun a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_JQUERY = cfg.SAFE_FOR_JQUERY || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.outerHTML = emptyHTML;\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /* Use the DOMParser API by default, fallback later if needs be */\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n\n /* Remove title to fix a mXSS bug in older MS Edge */\n if (removeTitle) {\n addToSet(FORBID_TAGS, ['title']);\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createHTMLDocument('');\n var _doc = doc,\n body = _doc.body;\n\n body.parentNode.removeChild(body.parentNode.firstElementChild);\n body.outerHTML = dirtyPayload;\n }\n\n if (dirty && leadingWhitespace) {\n doc.body.insertBefore(document.createTextNode(leadingWhitespace), doc.body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n };\n\n /* Here we test for a broken feature in Edge that might cause mXSS */\n if (DOMPurify.isSupported) {\n (function () {\n try {\n var doc = _initDocument('<x/><title></title><img>');\n if (regExpTest(/<\\/title/, doc.querySelector('title').innerHTML)) {\n removeTitle = true;\n }\n } catch (_) {}\n })();\n }\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, function () {\n return NodeFilter.FILTER_ACCEPT;\n }, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n // eslint-disable-next-line complexity\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = stringToLowerCase(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Take care of an mXSS pattern using p, br inside svg, math */\n if ((tagName === 'svg' || tagName === 'math') && currentNode.querySelectorAll('p, br').length !== 0) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for black-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName] && typeof currentNode.insertAdjacentHTML === 'function') {\n try {\n var htmlToInsert = currentNode.innerHTML;\n currentNode.insertAdjacentHTML('AfterEnd', trustedTypesPolicy ? trustedTypesPolicy.createHTML(htmlToInsert) : htmlToInsert);\n } catch (_) {}\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove in case a noscript/noembed XSS is suspected */\n if (tagName === 'noscript' && regExpTest(/<\\/noscript/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if (tagName === 'noembed' && regExpTest(/<\\/noembed/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Convert markup to cover jQuery behavior */\n if (SAFE_FOR_JQUERY && !currentNode.firstElementChild && (!currentNode.content || !currentNode.content.firstElementChild) && regExpTest(/</g, currentNode.textContent)) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n if (currentNode.innerHTML) {\n currentNode.innerHTML = stringReplace(currentNode.innerHTML, /</g, '<');\n } else {\n currentNode.innerHTML = stringReplace(currentNode.textContent, /</g, '<');\n }\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n // eslint-disable-next-line complexity\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var idAttr = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = stringToLowerCase(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n // Safari (iOS + Mac), last tested v8.0.5, crashes if you try to\n // remove a \"name\" attribute from an <img> tag that has an \"id\"\n // attribute at the time.\n if (lcName === 'name' && currentNode.nodeName === 'IMG' && attributes.id) {\n idAttr = attributes.id;\n attributes = arraySlice(attributes, []);\n _removeAttribute('id', currentNode);\n _removeAttribute(name, currentNode);\n if (arrayIndexOf(attributes, idAttr) > l) {\n currentNode.setAttribute('id', idAttr.value);\n }\n } else if (\n // This works around a bug in Safari, where input[type=file]\n // cannot be dynamically set after type has been removed\n currentNode.nodeName === 'INPUT' && lcName === 'type' && value === 'file' && hookEvent.keepAttr && (ALLOWED_ATTR[lcName] || !FORBID_ATTR[lcName])) {\n continue;\n } else {\n // This avoids a crash in Safari v9.0 with double-ids.\n // The trick is to first set the id to be empty and then to\n // remove the attribute\n if (name === 'id') {\n currentNode.setAttribute(name, '');\n }\n\n _removeAttribute(name, currentNode);\n }\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (SAFE_FOR_JQUERY && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Take care of an mXSS pattern using namespace switches */\n if (regExpTest(/svg|math/i, currentNode.namespaceURI) && regExpTest(regExpCreate('</(' + arrayJoin(objectKeys(FORBID_CONTENTS), '|') + ')', 'i'), value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = currentNode.nodeName.toLowerCase();\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n if (!dirty) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!-->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && RETURN_TRUSTED_TYPE &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = stringToLowerCase(tag);\n var lcName = stringToLowerCase(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n","/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport _ from 'underscore'\nimport $ from 'jquery'\nimport moment from 'moment'\n\nimport OC from './index'\n\n/**\n * @namespace OC.PasswordConfirmation\n */\nexport default {\n\tcallback: null,\n\n\tpageLoadTime: null,\n\n\tinit: function() {\n\t\t$('.password-confirm-required').on('click', _.bind(this.requirePasswordConfirmation, this))\n\t\tthis.pageLoadTime = moment.now()\n\t},\n\n\trequiresPasswordConfirmation: function() {\n\t\tconst serverTimeDiff = this.pageLoadTime - (window.nc_pageLoad * 1000)\n\t\tconst timeSinceLogin = moment.now() - (serverTimeDiff + (window.nc_lastLogin * 1000))\n\n\t\t// if timeSinceLogin > 30 minutes and user backend allows password confirmation\n\t\treturn (window.backendAllowsPasswordConfirmation && timeSinceLogin > 30 * 60 * 1000)\n\t},\n\n\t/**\n\t * @param {Function} callback success callback function\n\t * @param {Object} options options\n\t * @param {Function} rejectCallback error callback function\n\t */\n\trequirePasswordConfirmation: function(callback, options, rejectCallback) {\n\t\toptions = typeof options !== 'undefined' ? options : {}\n\t\tconst defaults = {\n\t\t\ttitle: t('core', 'Authentication required'),\n\t\t\ttext: t(\n\t\t\t\t'core',\n\t\t\t\t'This action requires you to confirm your password'\n\t\t\t),\n\t\t\tconfirm: t('core', 'Confirm'),\n\t\t\tlabel: t('core', 'Password'),\n\t\t\terror: '',\n\t\t}\n\n\t\tconst config = _.extend(defaults, options)\n\n\t\tconst self = this\n\n\t\tif (this.requiresPasswordConfirmation()) {\n\t\t\tOC.dialogs.prompt(\n\t\t\t\tconfig.text,\n\t\t\t\tconfig.title,\n\t\t\t\tfunction(result, password) {\n\t\t\t\t\tif (result && password !== '') {\n\t\t\t\t\t\tself._confirmPassword(password, config)\n\t\t\t\t\t} else if (_.isFunction(rejectCallback)) {\n\t\t\t\t\t\trejectCallback()\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttrue,\n\t\t\t\tconfig.label,\n\t\t\t\ttrue\n\t\t\t).then(function() {\n\t\t\t\tconst $dialog = $('.oc-dialog:visible')\n\t\t\t\t$dialog.find('.ui-icon').remove()\n\t\t\t\t$dialog.addClass('password-confirmation')\n\t\t\t\tif (config.error !== '') {\n\t\t\t\t\tconst $error = $('<p></p>').addClass('msg warning').text(config.error)\n\t\t\t\t\t$dialog.find('.oc-dialog-content').append($error)\n\t\t\t\t}\n\t\t\t\t$dialog.find('.oc-dialog-buttonrow').addClass('aside')\n\n\t\t\t\tconst $buttons = $dialog.find('button')\n\t\t\t\t$buttons.eq(0).hide()\n\t\t\t\t$buttons.eq(1).text(config.confirm)\n\t\t\t})\n\t\t}\n\n\t\tthis.callback = callback\n\t},\n\n\t_confirmPassword: function(password, config) {\n\t\tconst self = this\n\n\t\t$.ajax({\n\t\t\turl: OC.generateUrl('/login/confirm'),\n\t\t\tdata: {\n\t\t\t\tpassword: password,\n\t\t\t},\n\t\t\ttype: 'POST',\n\t\t\tsuccess: function(response) {\n\t\t\t\twindow.nc_lastLogin = response.lastLogin\n\n\t\t\t\tif (_.isFunction(self.callback)) {\n\t\t\t\t\tself.callback()\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function() {\n\t\t\t\tconfig.error = t('core', 'Failed to authenticate, try again')\n\t\t\t\tOC.PasswordConfirmation.requirePasswordConfirmation(self.callback, config)\n\t\t\t},\n\t\t})\n\t},\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ProxyBus = void 0;\n\nvar _semver = _interopRequireDefault(require(\"semver\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar packageJson = {\n name: \"@nextcloud/event-bus\",\n version: \"1.1.4\",\n description: \"\",\n main: \"dist/index.js\",\n types: \"dist/index.d.ts\",\n scripts: {\n build: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --source-maps && tsc --emitDeclarationOnly\",\n \"build:doc\": \"typedoc --excludeNotExported --mode file --out dist/doc lib/index.ts && touch dist/doc/.nojekyll\",\n \"check-types\": \"tsc\",\n dev: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --watch\",\n test: \"jest\",\n \"test:watch\": \"jest --watchAll\"\n },\n keywords: [\"nextcloud\"],\n homepage: \"https://github.com/nextcloud/nextcloud-event-bus#readme\",\n author: \"Christoph Wurst\",\n license: \"GPL-3.0-or-later\",\n repository: {\n type: \"git\",\n url: \"https://github.com/nextcloud/nextcloud-event-bus\"\n },\n dependencies: {\n \"@types/semver\": \"^6.2.1\",\n \"core-js\": \"^3.6.2\",\n semver: \"^6.3.0\"\n },\n devDependencies: {\n \"@babel/cli\": \"^7.6.0\",\n \"@babel/core\": \"^7.6.0\",\n \"@babel/plugin-proposal-class-properties\": \"^7.5.5\",\n \"@babel/preset-env\": \"^7.6.0\",\n \"@babel/preset-typescript\": \"^7.6.0\",\n \"@nextcloud/browserslist-config\": \"^1.0.0\",\n \"babel-jest\": \"^25.1.0\",\n \"babel-plugin-inline-json-import\": \"^0.3.2\",\n jest: \"^25.1.0\",\n typedoc: \"^0.17.2\",\n typescript: \"^3.6.3\"\n },\n browserslist: [\"extends @nextcloud/browserslist-config\"]\n};\n\nvar ProxyBus = /*#__PURE__*/function () {\n function ProxyBus(bus) {\n _classCallCheck(this, ProxyBus);\n\n _defineProperty(this, \"bus\", void 0);\n\n if (typeof bus.getVersion !== 'function' || !_semver.default.valid(bus.getVersion())) {\n console.warn('Proxying an event bus with an unknown or invalid version');\n } else if (_semver.default.major(bus.getVersion()) !== _semver.default.major(this.getVersion())) {\n console.warn('Proxying an event bus of version ' + bus.getVersion() + ' with ' + this.getVersion());\n }\n\n this.bus = bus;\n }\n\n _createClass(ProxyBus, [{\n key: \"getVersion\",\n value: function getVersion() {\n return packageJson.version;\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n }, {\n key: \"emit\",\n value: function emit(name, event) {\n this.bus.emit(name, event);\n }\n }]);\n\n return ProxyBus;\n}();\n\nexports.ProxyBus = ProxyBus;\n//# sourceMappingURL=ProxyBus.js.map","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-][a-zA-Z0-9-]*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? re[t.LOOSE] : re[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First, split based on boolean or ||\n this.raw = range\n this.set = range.split(/\\s*\\|\\|\\s*/).map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + range)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n range = range.trim()\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, re[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(re[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(re[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = re[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n re[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.concat\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.array.iterator\");\n\nrequire(\"core-js/modules/es.map\");\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.string.iterator\");\n\nrequire(\"core-js/modules/web.dom-collections.for-each\");\n\nrequire(\"core-js/modules/web.dom-collections.iterator\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SimpleBus = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar packageJson = {\n name: \"@nextcloud/event-bus\",\n version: \"1.1.4\",\n description: \"\",\n main: \"dist/index.js\",\n types: \"dist/index.d.ts\",\n scripts: {\n build: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --source-maps && tsc --emitDeclarationOnly\",\n \"build:doc\": \"typedoc --excludeNotExported --mode file --out dist/doc lib/index.ts && touch dist/doc/.nojekyll\",\n \"check-types\": \"tsc\",\n dev: \"babel ./lib --out-dir dist --extensions '.ts,.tsx' --watch\",\n test: \"jest\",\n \"test:watch\": \"jest --watchAll\"\n },\n keywords: [\"nextcloud\"],\n homepage: \"https://github.com/nextcloud/nextcloud-event-bus#readme\",\n author: \"Christoph Wurst\",\n license: \"GPL-3.0-or-later\",\n repository: {\n type: \"git\",\n url: \"https://github.com/nextcloud/nextcloud-event-bus\"\n },\n dependencies: {\n \"@types/semver\": \"^6.2.1\",\n \"core-js\": \"^3.6.2\",\n semver: \"^6.3.0\"\n },\n devDependencies: {\n \"@babel/cli\": \"^7.6.0\",\n \"@babel/core\": \"^7.6.0\",\n \"@babel/plugin-proposal-class-properties\": \"^7.5.5\",\n \"@babel/preset-env\": \"^7.6.0\",\n \"@babel/preset-typescript\": \"^7.6.0\",\n \"@nextcloud/browserslist-config\": \"^1.0.0\",\n \"babel-jest\": \"^25.1.0\",\n \"babel-plugin-inline-json-import\": \"^0.3.2\",\n jest: \"^25.1.0\",\n typedoc: \"^0.17.2\",\n typescript: \"^3.6.3\"\n },\n browserslist: [\"extends @nextcloud/browserslist-config\"]\n};\n\nvar SimpleBus = /*#__PURE__*/function () {\n function SimpleBus() {\n _classCallCheck(this, SimpleBus);\n\n _defineProperty(this, \"handlers\", new Map());\n }\n\n _createClass(SimpleBus, [{\n key: \"getVersion\",\n value: function getVersion() {\n return packageJson.version;\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(name, handler) {\n this.handlers.set(name, (this.handlers.get(name) || []).concat(handler));\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(name, handler) {\n this.handlers.set(name, (this.handlers.get(name) || []).filter(function (h) {\n return h != handler;\n }));\n }\n }, {\n key: \"emit\",\n value: function emit(name, event) {\n (this.handlers.get(name) || []).forEach(function (h) {\n try {\n h(event);\n } catch (e) {\n console.error('could not invoke event listener', e);\n }\n });\n }\n }]);\n\n return SimpleBus;\n}();\n\nexports.SimpleBus = SimpleBus;\n//# sourceMappingURL=SimpleBus.js.map","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n !fails(post) &&\n location.protocol !== 'file:'\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.github.io/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","'use strict';\n\nexports.__esModule = true;\nexports.HandlebarsEnvironment = HandlebarsEnvironment;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('./utils');\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _helpers = require('./helpers');\n\nvar _decorators = require('./decorators');\n\nvar _logger = require('./logger');\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nvar VERSION = '4.7.6';\nexports.VERSION = VERSION;\nvar COMPILER_REVISION = 8;\nexports.COMPILER_REVISION = COMPILER_REVISION;\nvar LAST_COMPATIBLE_COMPILER_REVISION = 7;\n\nexports.LAST_COMPATIBLE_COMPILER_REVISION = LAST_COMPATIBLE_COMPILER_REVISION;\nvar REVISION_CHANGES = {\n 1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it\n 2: '== 1.0.0-rc.3',\n 3: '== 1.0.0-rc.4',\n 4: '== 1.x.x',\n 5: '== 2.0.0-alpha.x',\n 6: '>= 2.0.0-beta.1',\n 7: '>= 4.0.0 <4.3.0',\n 8: '>= 4.3.0'\n};\n\nexports.REVISION_CHANGES = REVISION_CHANGES;\nvar objectType = '[object Object]';\n\nfunction HandlebarsEnvironment(helpers, partials, decorators) {\n this.helpers = helpers || {};\n this.partials = partials || {};\n this.decorators = decorators || {};\n\n _helpers.registerDefaultHelpers(this);\n _decorators.registerDefaultDecorators(this);\n}\n\nHandlebarsEnvironment.prototype = {\n constructor: HandlebarsEnvironment,\n\n logger: _logger2['default'],\n log: _logger2['default'].log,\n\n registerHelper: function registerHelper(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple helpers');\n }\n _utils.extend(this.helpers, name);\n } else {\n this.helpers[name] = fn;\n }\n },\n unregisterHelper: function unregisterHelper(name) {\n delete this.helpers[name];\n },\n\n registerPartial: function registerPartial(name, partial) {\n if (_utils.toString.call(name) === objectType) {\n _utils.extend(this.partials, name);\n } else {\n if (typeof partial === 'undefined') {\n throw new _exception2['default']('Attempting to register a partial called \"' + name + '\" as undefined');\n }\n this.partials[name] = partial;\n }\n },\n unregisterPartial: function unregisterPartial(name) {\n delete this.partials[name];\n },\n\n registerDecorator: function registerDecorator(name, fn) {\n if (_utils.toString.call(name) === objectType) {\n if (fn) {\n throw new _exception2['default']('Arg not supported with multiple decorators');\n }\n _utils.extend(this.decorators, name);\n } else {\n this.decorators[name] = fn;\n }\n },\n unregisterDecorator: function unregisterDecorator(name) {\n delete this.decorators[name];\n },\n /**\n * Reset the memory of illegal property accesses that have already been logged.\n * @deprecated should only be used in handlebars test-cases\n */\n resetLoggedPropertyAccesses: function resetLoggedPropertyAccesses() {\n _internalProtoAccess.resetLoggedProperties();\n }\n};\n\nvar log = _logger2['default'].log;\n\nexports.log = log;\nexports.createFrame = _utils.createFrame;\nexports.logger = _logger2['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2Jhc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7cUJBQThDLFNBQVM7O3lCQUNqQyxhQUFhOzs7O3VCQUNJLFdBQVc7OzBCQUNSLGNBQWM7O3NCQUNyQyxVQUFVOzs7O21DQUNTLHlCQUF5Qjs7QUFFeEQsSUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDOztBQUN4QixJQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQzs7QUFDNUIsSUFBTSxpQ0FBaUMsR0FBRyxDQUFDLENBQUM7OztBQUU1QyxJQUFNLGdCQUFnQixHQUFHO0FBQzlCLEdBQUMsRUFBRSxhQUFhO0FBQ2hCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxlQUFlO0FBQ2xCLEdBQUMsRUFBRSxVQUFVO0FBQ2IsR0FBQyxFQUFFLGtCQUFrQjtBQUNyQixHQUFDLEVBQUUsaUJBQWlCO0FBQ3BCLEdBQUMsRUFBRSxpQkFBaUI7QUFDcEIsR0FBQyxFQUFFLFVBQVU7Q0FDZCxDQUFDOzs7QUFFRixJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQzs7QUFFOUIsU0FBUyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRTtBQUNuRSxNQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7QUFDN0IsTUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksRUFBRSxDQUFDO0FBQy9CLE1BQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQzs7QUFFbkMsa0NBQXVCLElBQUksQ0FBQyxDQUFDO0FBQzdCLHdDQUEwQixJQUFJLENBQUMsQ0FBQztDQUNqQzs7QUFFRCxxQkFBcUIsQ0FBQyxTQUFTLEdBQUc7QUFDaEMsYUFBVyxFQUFFLHFCQUFxQjs7QUFFbEMsUUFBTSxxQkFBUTtBQUNkLEtBQUcsRUFBRSxvQkFBTyxHQUFHOztBQUVmLGdCQUFjLEVBQUUsd0JBQVMsSUFBSSxFQUFFLEVBQUUsRUFBRTtBQUNqQyxRQUFJLGdCQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7QUFDdEMsVUFBSSxFQUFFLEVBQUU7QUFDTixjQUFNLDJCQUFjLHlDQUF5QyxDQUFDLENBQUM7T0FDaEU7QUFDRCxvQkFBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQzVCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QjtHQUNGO0FBQ0Qsa0JBQWdCLEVBQUUsMEJBQVMsSUFBSSxFQUFFO0FBQy9CLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztHQUMzQjs7QUFFRCxpQkFBZSxFQUFFLHlCQUFTLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDdkMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLG9CQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0IsTUFBTTtBQUNMLFVBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLGNBQU0seUVBQ3dDLElBQUksb0JBQ2pELENBQUM7T0FDSDtBQUNELFVBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9CO0dBQ0Y7QUFDRCxtQkFBaUIsRUFBRSwyQkFBUyxJQUFJLEVBQUU7QUFDaEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0dBQzVCOztBQUVELG1CQUFpQixFQUFFLDJCQUFTLElBQUksRUFBRSxFQUFFLEVBQUU7QUFDcEMsUUFBSSxnQkFBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO0FBQ3RDLFVBQUksRUFBRSxFQUFFO0FBQ04sY0FBTSwyQkFBYyw0Q0FBNEMsQ0FBQyxDQUFDO09BQ25FO0FBQ0Qsb0JBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUMvQixNQUFNO0FBQ0wsVUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDNUI7R0FDRjtBQUNELHFCQUFtQixFQUFFLDZCQUFTLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7R0FDOUI7Ozs7O0FBS0QsNkJBQTJCLEVBQUEsdUNBQUc7QUFDNUIsZ0RBQXVCLENBQUM7R0FDekI7Q0FDRixDQUFDOztBQUVLLElBQUksR0FBRyxHQUFHLG9CQUFPLEdBQUcsQ0FBQzs7O1FBRW5CLFdBQVc7UUFBRSxNQUFNIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVGcmFtZSwgZXh0ZW5kLCB0b1N0cmluZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuL2V4Y2VwdGlvbic7XG5pbXBvcnQgeyByZWdpc3RlckRlZmF1bHRIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdERlY29yYXRvcnMgfSBmcm9tICcuL2RlY29yYXRvcnMnO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyByZXNldExvZ2dlZFByb3BlcnRpZXMgfSBmcm9tICcuL2ludGVybmFsL3Byb3RvLWFjY2Vzcyc7XG5cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuNy42JztcbmV4cG9ydCBjb25zdCBDT01QSUxFUl9SRVZJU0lPTiA9IDg7XG5leHBvcnQgY29uc3QgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OID0gNztcblxuZXhwb3J0IGNvbnN0IFJFVklTSU9OX0NIQU5HRVMgPSB7XG4gIDE6ICc8PSAxLjAucmMuMicsIC8vIDEuMC5yYy4yIGlzIGFjdHVhbGx5IHJldjIgYnV0IGRvZXNuJ3QgcmVwb3J0IGl0XG4gIDI6ICc9PSAxLjAuMC1yYy4zJyxcbiAgMzogJz09IDEuMC4wLXJjLjQnLFxuICA0OiAnPT0gMS54LngnLFxuICA1OiAnPT0gMi4wLjAtYWxwaGEueCcsXG4gIDY6ICc+PSAyLjAuMC1iZXRhLjEnLFxuICA3OiAnPj0gNC4wLjAgPDQuMy4wJyxcbiAgODogJz49IDQuMy4wJ1xufTtcblxuY29uc3Qgb2JqZWN0VHlwZSA9ICdbb2JqZWN0IE9iamVjdF0nO1xuXG5leHBvcnQgZnVuY3Rpb24gSGFuZGxlYmFyc0Vudmlyb25tZW50KGhlbHBlcnMsIHBhcnRpYWxzLCBkZWNvcmF0b3JzKSB7XG4gIHRoaXMuaGVscGVycyA9IGhlbHBlcnMgfHwge307XG4gIHRoaXMucGFydGlhbHMgPSBwYXJ0aWFscyB8fCB7fTtcbiAgdGhpcy5kZWNvcmF0b3JzID0gZGVjb3JhdG9ycyB8fCB7fTtcblxuICByZWdpc3RlckRlZmF1bHRIZWxwZXJzKHRoaXMpO1xuICByZWdpc3RlckRlZmF1bHREZWNvcmF0b3JzKHRoaXMpO1xufVxuXG5IYW5kbGViYXJzRW52aXJvbm1lbnQucHJvdG90eXBlID0ge1xuICBjb25zdHJ1Y3RvcjogSGFuZGxlYmFyc0Vudmlyb25tZW50LFxuXG4gIGxvZ2dlcjogbG9nZ2VyLFxuICBsb2c6IGxvZ2dlci5sb2csXG5cbiAgcmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUsIGZuKSB7XG4gICAgaWYgKHRvU3RyaW5nLmNhbGwobmFtZSkgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGlmIChmbikge1xuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdBcmcgbm90IHN1cHBvcnRlZCB3aXRoIG11bHRpcGxlIGhlbHBlcnMnKTtcbiAgICAgIH1cbiAgICAgIGV4dGVuZCh0aGlzLmhlbHBlcnMsIG5hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhlbHBlcnNbbmFtZV0gPSBmbjtcbiAgICB9XG4gIH0sXG4gIHVucmVnaXN0ZXJIZWxwZXI6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5oZWxwZXJzW25hbWVdO1xuICB9LFxuXG4gIHJlZ2lzdGVyUGFydGlhbDogZnVuY3Rpb24obmFtZSwgcGFydGlhbCkge1xuICAgIGlmICh0b1N0cmluZy5jYWxsKG5hbWUpID09PSBvYmplY3RUeXBlKSB7XG4gICAgICBleHRlbmQodGhpcy5wYXJ0aWFscywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlb2YgcGFydGlhbCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgICBgQXR0ZW1wdGluZyB0byByZWdpc3RlciBhIHBhcnRpYWwgY2FsbGVkIFwiJHtuYW1lfVwiIGFzIHVuZGVmaW5lZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucGFydGlhbHNbbmFtZV0gPSBwYXJ0aWFsO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlclBhcnRpYWw6IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICBkZWxldGUgdGhpcy5wYXJ0aWFsc1tuYW1lXTtcbiAgfSxcblxuICByZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSwgZm4pIHtcbiAgICBpZiAodG9TdHJpbmcuY2FsbChuYW1lKSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgaWYgKGZuKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ0FyZyBub3Qgc3VwcG9ydGVkIHdpdGggbXVsdGlwbGUgZGVjb3JhdG9ycycpO1xuICAgICAgfVxuICAgICAgZXh0ZW5kKHRoaXMuZGVjb3JhdG9ycywgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVjb3JhdG9yc1tuYW1lXSA9IGZuO1xuICAgIH1cbiAgfSxcbiAgdW5yZWdpc3RlckRlY29yYXRvcjogZnVuY3Rpb24obmFtZSkge1xuICAgIGRlbGV0ZSB0aGlzLmRlY29yYXRvcnNbbmFtZV07XG4gIH0sXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgbWVtb3J5IG9mIGlsbGVnYWwgcHJvcGVydHkgYWNjZXNzZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBsb2dnZWQuXG4gICAqIEBkZXByZWNhdGVkIHNob3VsZCBvbmx5IGJlIHVzZWQgaW4gaGFuZGxlYmFycyB0ZXN0LWNhc2VzXG4gICAqL1xuICByZXNldExvZ2dlZFByb3BlcnR5QWNjZXNzZXMoKSB7XG4gICAgcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCk7XG4gIH1cbn07XG5cbmV4cG9ydCBsZXQgbG9nID0gbG9nZ2VyLmxvZztcblxuZXhwb3J0IHsgY3JlYXRlRnJhbWUsIGxvZ2dlciB9O1xuIl19\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultHelpers = registerDefaultHelpers;\nexports.moveHelperToHooks = moveHelperToHooks;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _helpersBlockHelperMissing = require('./helpers/block-helper-missing');\n\nvar _helpersBlockHelperMissing2 = _interopRequireDefault(_helpersBlockHelperMissing);\n\nvar _helpersEach = require('./helpers/each');\n\nvar _helpersEach2 = _interopRequireDefault(_helpersEach);\n\nvar _helpersHelperMissing = require('./helpers/helper-missing');\n\nvar _helpersHelperMissing2 = _interopRequireDefault(_helpersHelperMissing);\n\nvar _helpersIf = require('./helpers/if');\n\nvar _helpersIf2 = _interopRequireDefault(_helpersIf);\n\nvar _helpersLog = require('./helpers/log');\n\nvar _helpersLog2 = _interopRequireDefault(_helpersLog);\n\nvar _helpersLookup = require('./helpers/lookup');\n\nvar _helpersLookup2 = _interopRequireDefault(_helpersLookup);\n\nvar _helpersWith = require('./helpers/with');\n\nvar _helpersWith2 = _interopRequireDefault(_helpersWith);\n\nfunction registerDefaultHelpers(instance) {\n _helpersBlockHelperMissing2['default'](instance);\n _helpersEach2['default'](instance);\n _helpersHelperMissing2['default'](instance);\n _helpersIf2['default'](instance);\n _helpersLog2['default'](instance);\n _helpersLookup2['default'](instance);\n _helpersWith2['default'](instance);\n}\n\nfunction moveHelperToHooks(instance, helperName, keepHelper) {\n if (instance.helpers[helperName]) {\n instance.hooks[helperName] = instance.helpers[helperName];\n if (!keepHelper) {\n delete instance.helpers[helperName];\n }\n }\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O3lDQUF1QyxnQ0FBZ0M7Ozs7MkJBQzlDLGdCQUFnQjs7OztvQ0FDUCwwQkFBMEI7Ozs7eUJBQ3JDLGNBQWM7Ozs7MEJBQ2IsZUFBZTs7Ozs2QkFDWixrQkFBa0I7Ozs7MkJBQ3BCLGdCQUFnQjs7OztBQUVsQyxTQUFTLHNCQUFzQixDQUFDLFFBQVEsRUFBRTtBQUMvQyx5Q0FBMkIsUUFBUSxDQUFDLENBQUM7QUFDckMsMkJBQWEsUUFBUSxDQUFDLENBQUM7QUFDdkIsb0NBQXNCLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLHlCQUFXLFFBQVEsQ0FBQyxDQUFDO0FBQ3JCLDBCQUFZLFFBQVEsQ0FBQyxDQUFDO0FBQ3RCLDZCQUFlLFFBQVEsQ0FBQyxDQUFDO0FBQ3pCLDJCQUFhLFFBQVEsQ0FBQyxDQUFDO0NBQ3hCOztBQUVNLFNBQVMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7QUFDbEUsTUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0FBQ2hDLFlBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMxRCxRQUFJLENBQUMsVUFBVSxFQUFFO0FBQ2YsYUFBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JDO0dBQ0Y7Q0FDRiIsImZpbGUiOiJoZWxwZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVyQmxvY2tIZWxwZXJNaXNzaW5nIGZyb20gJy4vaGVscGVycy9ibG9jay1oZWxwZXItbWlzc2luZyc7XG5pbXBvcnQgcmVnaXN0ZXJFYWNoIGZyb20gJy4vaGVscGVycy9lYWNoJztcbmltcG9ydCByZWdpc3RlckhlbHBlck1pc3NpbmcgZnJvbSAnLi9oZWxwZXJzL2hlbHBlci1taXNzaW5nJztcbmltcG9ydCByZWdpc3RlcklmIGZyb20gJy4vaGVscGVycy9pZic7XG5pbXBvcnQgcmVnaXN0ZXJMb2cgZnJvbSAnLi9oZWxwZXJzL2xvZyc7XG5pbXBvcnQgcmVnaXN0ZXJMb29rdXAgZnJvbSAnLi9oZWxwZXJzL2xvb2t1cCc7XG5pbXBvcnQgcmVnaXN0ZXJXaXRoIGZyb20gJy4vaGVscGVycy93aXRoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVmYXVsdEhlbHBlcnMoaW5zdGFuY2UpIHtcbiAgcmVnaXN0ZXJCbG9ja0hlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlckVhY2goaW5zdGFuY2UpO1xuICByZWdpc3RlckhlbHBlck1pc3NpbmcoaW5zdGFuY2UpO1xuICByZWdpc3RlcklmKGluc3RhbmNlKTtcbiAgcmVnaXN0ZXJMb2coaW5zdGFuY2UpO1xuICByZWdpc3Rlckxvb2t1cChpbnN0YW5jZSk7XG4gIHJlZ2lzdGVyV2l0aChpbnN0YW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSGVscGVyVG9Ib29rcyhpbnN0YW5jZSwgaGVscGVyTmFtZSwga2VlcEhlbHBlcikge1xuICBpZiAoaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXSkge1xuICAgIGluc3RhbmNlLmhvb2tzW2hlbHBlck5hbWVdID0gaW5zdGFuY2UuaGVscGVyc1toZWxwZXJOYW1lXTtcbiAgICBpZiAoIWtlZXBIZWxwZXIpIHtcbiAgICAgIGRlbGV0ZSBpbnN0YW5jZS5oZWxwZXJzW2hlbHBlck5hbWVdO1xuICAgIH1cbiAgfVxufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('./utils');\n\nvar logger = {\n methodMap: ['debug', 'info', 'warn', 'error'],\n level: 'info',\n\n // Maps a given level value to the `methodMap` indexes above.\n lookupLevel: function lookupLevel(level) {\n if (typeof level === 'string') {\n var levelMap = _utils.indexOf(logger.methodMap, level.toLowerCase());\n if (levelMap >= 0) {\n level = levelMap;\n } else {\n level = parseInt(level, 10);\n }\n }\n\n return level;\n },\n\n // Can be overridden in the host environment\n log: function log(level) {\n level = logger.lookupLevel(level);\n\n if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {\n var method = logger.methodMap[level];\n // eslint-disable-next-line no-console\n if (!console[method]) {\n method = 'log';\n }\n\n for (var _len = arguments.length, message = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n message[_key - 1] = arguments[_key];\n }\n\n console[method].apply(console, message); // eslint-disable-line no-console\n }\n }\n};\n\nexports['default'] = logger;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2xvZ2dlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O3FCQUF3QixTQUFTOztBQUVqQyxJQUFJLE1BQU0sR0FBRztBQUNYLFdBQVMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztBQUM3QyxPQUFLLEVBQUUsTUFBTTs7O0FBR2IsYUFBVyxFQUFFLHFCQUFTLEtBQUssRUFBRTtBQUMzQixRQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtBQUM3QixVQUFJLFFBQVEsR0FBRyxlQUFRLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUQsVUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFO0FBQ2pCLGFBQUssR0FBRyxRQUFRLENBQUM7T0FDbEIsTUFBTTtBQUNMLGFBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzdCO0tBQ0Y7O0FBRUQsV0FBTyxLQUFLLENBQUM7R0FDZDs7O0FBR0QsS0FBRyxFQUFFLGFBQVMsS0FBSyxFQUFjO0FBQy9CLFNBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDOztBQUVsQyxRQUNFLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUN6QztBQUNBLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRXJDLFVBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7QUFDcEIsY0FBTSxHQUFHLEtBQUssQ0FBQztPQUNoQjs7d0NBWG1CLE9BQU87QUFBUCxlQUFPOzs7QUFZM0IsYUFBTyxDQUFDLE1BQU0sT0FBQyxDQUFmLE9BQU8sRUFBWSxPQUFPLENBQUMsQ0FBQztLQUM3QjtHQUNGO0NBQ0YsQ0FBQzs7cUJBRWEsTUFBTSIsImZpbGUiOiJsb2dnZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSAnLi91dGlscyc7XG5cbmxldCBsb2dnZXIgPSB7XG4gIG1ldGhvZE1hcDogWydkZWJ1ZycsICdpbmZvJywgJ3dhcm4nLCAnZXJyb3InXSxcbiAgbGV2ZWw6ICdpbmZvJyxcblxuICAvLyBNYXBzIGEgZ2l2ZW4gbGV2ZWwgdmFsdWUgdG8gdGhlIGBtZXRob2RNYXBgIGluZGV4ZXMgYWJvdmUuXG4gIGxvb2t1cExldmVsOiBmdW5jdGlvbihsZXZlbCkge1xuICAgIGlmICh0eXBlb2YgbGV2ZWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbGV2ZWxNYXAgPSBpbmRleE9mKGxvZ2dlci5tZXRob2RNYXAsIGxldmVsLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKGxldmVsTWFwID49IDApIHtcbiAgICAgICAgbGV2ZWwgPSBsZXZlbE1hcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldmVsID0gcGFyc2VJbnQobGV2ZWwsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbGV2ZWw7XG4gIH0sXG5cbiAgLy8gQ2FuIGJlIG92ZXJyaWRkZW4gaW4gdGhlIGhvc3QgZW52aXJvbm1lbnRcbiAgbG9nOiBmdW5jdGlvbihsZXZlbCwgLi4ubWVzc2FnZSkge1xuICAgIGxldmVsID0gbG9nZ2VyLmxvb2t1cExldmVsKGxldmVsKTtcblxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgbG9nZ2VyLmxvb2t1cExldmVsKGxvZ2dlci5sZXZlbCkgPD0gbGV2ZWxcbiAgICApIHtcbiAgICAgIGxldCBtZXRob2QgPSBsb2dnZXIubWV0aG9kTWFwW2xldmVsXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICBpZiAoIWNvbnNvbGVbbWV0aG9kXSkge1xuICAgICAgICBtZXRob2QgPSAnbG9nJztcbiAgICAgIH1cbiAgICAgIGNvbnNvbGVbbWV0aG9kXSguLi5tZXNzYWdlKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2dnZXI7XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.createProtoAccessControl = createProtoAccessControl;\nexports.resultIsAllowed = resultIsAllowed;\nexports.resetLoggedProperties = resetLoggedProperties;\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _createNewLookupObject = require('./create-new-lookup-object');\n\nvar _logger = require('../logger');\n\nvar logger = _interopRequireWildcard(_logger);\n\nvar loggedProperties = Object.create(null);\n\nfunction createProtoAccessControl(runtimeOptions) {\n var defaultMethodWhiteList = Object.create(null);\n defaultMethodWhiteList['constructor'] = false;\n defaultMethodWhiteList['__defineGetter__'] = false;\n defaultMethodWhiteList['__defineSetter__'] = false;\n defaultMethodWhiteList['__lookupGetter__'] = false;\n\n var defaultPropertyWhiteList = Object.create(null);\n // eslint-disable-next-line no-proto\n defaultPropertyWhiteList['__proto__'] = false;\n\n return {\n properties: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultPropertyWhiteList, runtimeOptions.allowedProtoProperties),\n defaultValue: runtimeOptions.allowProtoPropertiesByDefault\n },\n methods: {\n whitelist: _createNewLookupObject.createNewLookupObject(defaultMethodWhiteList, runtimeOptions.allowedProtoMethods),\n defaultValue: runtimeOptions.allowProtoMethodsByDefault\n }\n };\n}\n\nfunction resultIsAllowed(result, protoAccessControl, propertyName) {\n if (typeof result === 'function') {\n return checkWhiteList(protoAccessControl.methods, propertyName);\n } else {\n return checkWhiteList(protoAccessControl.properties, propertyName);\n }\n}\n\nfunction checkWhiteList(protoAccessControlForType, propertyName) {\n if (protoAccessControlForType.whitelist[propertyName] !== undefined) {\n return protoAccessControlForType.whitelist[propertyName] === true;\n }\n if (protoAccessControlForType.defaultValue !== undefined) {\n return protoAccessControlForType.defaultValue;\n }\n logUnexpecedPropertyAccessOnce(propertyName);\n return false;\n}\n\nfunction logUnexpecedPropertyAccessOnce(propertyName) {\n if (loggedProperties[propertyName] !== true) {\n loggedProperties[propertyName] = true;\n logger.log('error', 'Handlebars: Access has been denied to resolve the property \"' + propertyName + '\" because it is not an \"own property\" of its parent.\\n' + 'You can add a runtime option to disable the check or this warning:\\n' + 'See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details');\n }\n}\n\nfunction resetLoggedProperties() {\n Object.keys(loggedProperties).forEach(function (propertyName) {\n delete loggedProperties[propertyName];\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3Byb3RvLWFjY2Vzcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O3FDQUFzQyw0QkFBNEI7O3NCQUMxQyxXQUFXOztJQUF2QixNQUFNOztBQUVsQixJQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRXRDLFNBQVMsd0JBQXdCLENBQUMsY0FBYyxFQUFFO0FBQ3ZELE1BQUksc0JBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqRCx3QkFBc0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUMsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDbkQsd0JBQXNCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRW5ELE1BQUksd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQzs7QUFFbkQsMEJBQXdCLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxDQUFDOztBQUU5QyxTQUFPO0FBQ0wsY0FBVSxFQUFFO0FBQ1YsZUFBUyxFQUFFLDZDQUNULHdCQUF3QixFQUN4QixjQUFjLENBQUMsc0JBQXNCLENBQ3RDO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsNkJBQTZCO0tBQzNEO0FBQ0QsV0FBTyxFQUFFO0FBQ1AsZUFBUyxFQUFFLDZDQUNULHNCQUFzQixFQUN0QixjQUFjLENBQUMsbUJBQW1CLENBQ25DO0FBQ0Qsa0JBQVksRUFBRSxjQUFjLENBQUMsMEJBQTBCO0tBQ3hEO0dBQ0YsQ0FBQztDQUNIOztBQUVNLFNBQVMsZUFBZSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUU7QUFDeEUsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7QUFDaEMsV0FBTyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ2pFLE1BQU07QUFDTCxXQUFPLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDcEU7Q0FDRjs7QUFFRCxTQUFTLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUU7QUFDL0QsTUFBSSx5QkFBeUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxFQUFFO0FBQ25FLFdBQU8seUJBQXlCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztHQUNuRTtBQUNELE1BQUkseUJBQXlCLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtBQUN4RCxXQUFPLHlCQUF5QixDQUFDLFlBQVksQ0FBQztHQUMvQztBQUNELGdDQUE4QixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzdDLFNBQU8sS0FBSyxDQUFDO0NBQ2Q7O0FBRUQsU0FBUyw4QkFBOEIsQ0FBQyxZQUFZLEVBQUU7QUFDcEQsTUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUU7QUFDM0Msb0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLFVBQU0sQ0FBQyxHQUFHLENBQ1IsT0FBTyxFQUNQLGlFQUErRCxZQUFZLG9JQUNILG9IQUMyQyxDQUNwSCxDQUFDO0dBQ0g7Q0FDRjs7QUFFTSxTQUFTLHFCQUFxQixHQUFHO0FBQ3RDLFFBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxZQUFZLEVBQUk7QUFDcEQsV0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztHQUN2QyxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJwcm90by1hY2Nlc3MuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVOZXdMb29rdXBPYmplY3QgfSBmcm9tICcuL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgbG9nZ2VkUHJvcGVydGllcyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm90b0FjY2Vzc0NvbnRyb2wocnVudGltZU9wdGlvbnMpIHtcbiAgbGV0IGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0Wydjb25zdHJ1Y3RvciddID0gZmFsc2U7XG4gIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3RbJ19fZGVmaW5lR2V0dGVyX18nXSA9IGZhbHNlO1xuICBkZWZhdWx0TWV0aG9kV2hpdGVMaXN0WydfX2RlZmluZVNldHRlcl9fJ10gPSBmYWxzZTtcbiAgZGVmYXVsdE1ldGhvZFdoaXRlTGlzdFsnX19sb29rdXBHZXR0ZXJfXyddID0gZmFsc2U7XG5cbiAgbGV0IGRlZmF1bHRQcm9wZXJ0eVdoaXRlTGlzdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuICBkZWZhdWx0UHJvcGVydHlXaGl0ZUxpc3RbJ19fcHJvdG9fXyddID0gZmFsc2U7XG5cbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICB3aGl0ZWxpc3Q6IGNyZWF0ZU5ld0xvb2t1cE9iamVjdChcbiAgICAgICAgZGVmYXVsdFByb3BlcnR5V2hpdGVMaXN0LFxuICAgICAgICBydW50aW1lT3B0aW9ucy5hbGxvd2VkUHJvdG9Qcm9wZXJ0aWVzXG4gICAgICApLFxuICAgICAgZGVmYXVsdFZhbHVlOiBydW50aW1lT3B0aW9ucy5hbGxvd1Byb3RvUHJvcGVydGllc0J5RGVmYXVsdFxuICAgIH0sXG4gICAgbWV0aG9kczoge1xuICAgICAgd2hpdGVsaXN0OiBjcmVhdGVOZXdMb29rdXBPYmplY3QoXG4gICAgICAgIGRlZmF1bHRNZXRob2RXaGl0ZUxpc3QsXG4gICAgICAgIHJ1bnRpbWVPcHRpb25zLmFsbG93ZWRQcm90b01ldGhvZHNcbiAgICAgICksXG4gICAgICBkZWZhdWx0VmFsdWU6IHJ1bnRpbWVPcHRpb25zLmFsbG93UHJvdG9NZXRob2RzQnlEZWZhdWx0XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgcHJvdG9BY2Nlc3NDb250cm9sLCBwcm9wZXJ0eU5hbWUpIHtcbiAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gY2hlY2tXaGl0ZUxpc3QocHJvdG9BY2Nlc3NDb250cm9sLm1ldGhvZHMsIHByb3BlcnR5TmFtZSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbC5wcm9wZXJ0aWVzLCBwcm9wZXJ0eU5hbWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2hpdGVMaXN0KHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUsIHByb3BlcnR5TmFtZSkge1xuICBpZiAocHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS53aGl0ZWxpc3RbcHJvcGVydHlOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUud2hpdGVsaXN0W3Byb3BlcnR5TmFtZV0gPT09IHRydWU7XG4gIH1cbiAgaWYgKHByb3RvQWNjZXNzQ29udHJvbEZvclR5cGUuZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gcHJvdG9BY2Nlc3NDb250cm9sRm9yVHlwZS5kZWZhdWx0VmFsdWU7XG4gIH1cbiAgbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSk7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbG9nVW5leHBlY2VkUHJvcGVydHlBY2Nlc3NPbmNlKHByb3BlcnR5TmFtZSkge1xuICBpZiAobG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdICE9PSB0cnVlKSB7XG4gICAgbG9nZ2VkUHJvcGVydGllc1twcm9wZXJ0eU5hbWVdID0gdHJ1ZTtcbiAgICBsb2dnZXIubG9nKFxuICAgICAgJ2Vycm9yJyxcbiAgICAgIGBIYW5kbGViYXJzOiBBY2Nlc3MgaGFzIGJlZW4gZGVuaWVkIHRvIHJlc29sdmUgdGhlIHByb3BlcnR5IFwiJHtwcm9wZXJ0eU5hbWV9XCIgYmVjYXVzZSBpdCBpcyBub3QgYW4gXCJvd24gcHJvcGVydHlcIiBvZiBpdHMgcGFyZW50LlxcbmAgK1xuICAgICAgICBgWW91IGNhbiBhZGQgYSBydW50aW1lIG9wdGlvbiB0byBkaXNhYmxlIHRoZSBjaGVjayBvciB0aGlzIHdhcm5pbmc6XFxuYCArXG4gICAgICAgIGBTZWUgaHR0cHM6Ly9oYW5kbGViYXJzanMuY29tL2FwaS1yZWZlcmVuY2UvcnVudGltZS1vcHRpb25zLmh0bWwjb3B0aW9ucy10by1jb250cm9sLXByb3RvdHlwZS1hY2Nlc3MgZm9yIGRldGFpbHNgXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRMb2dnZWRQcm9wZXJ0aWVzKCkge1xuICBPYmplY3Qua2V5cyhsb2dnZWRQcm9wZXJ0aWVzKS5mb3JFYWNoKHByb3BlcnR5TmFtZSA9PiB7XG4gICAgZGVsZXRlIGxvZ2dlZFByb3BlcnRpZXNbcHJvcGVydHlOYW1lXTtcbiAgfSk7XG59XG4iXX0=\n","/**\n * The default argument placeholder value for methods.\n *\n * @type {Object}\n */\nmodule.exports = {};\n","var identity = require('./identity'),\n metaMap = require('./_metaMap');\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nmodule.exports = baseSetData;\n","var WeakMap = require('./_WeakMap');\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nmodule.exports = metaMap;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n countHolders = require('./_countHolders'),\n createCtor = require('./_createCtor'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n reorder = require('./_reorder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nmodule.exports = createHybrid;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nmodule.exports = composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nmodule.exports = composeArgsRight;\n","var isLaziable = require('./_isLaziable'),\n setData = require('./_setData'),\n setWrapToString = require('./_setWrapToString');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nmodule.exports = createRecurry;\n","var metaMap = require('./_metaMap'),\n noop = require('./noop');\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nmodule.exports = getData;\n","var baseCreate = require('./_baseCreate'),\n baseLodash = require('./_baseLodash');\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nmodule.exports = LodashWrapper;\n","var baseSetData = require('./_baseSetData'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nmodule.exports = setData;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var getWrapDetails = require('./_getWrapDetails'),\n insertWrapDetails = require('./_insertWrapDetails'),\n setToString = require('./_setToString'),\n updateWrapDetails = require('./_updateWrapDetails');\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nmodule.exports = setWrapToString;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nmodule.exports = getHolder;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\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 '_'\n ),\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 (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\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 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\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 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\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, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '0': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\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 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'birneçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\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, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : 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\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\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) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '১',\n '2': '২',\n '3': '৩',\n '4': '৪',\n '5': '৫',\n '6': '৬',\n '7': '৭',\n '8': '৮',\n '9': '৯',\n '0': '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\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 (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '༡',\n '2': '༢',\n '3': '༣',\n '4': '༤',\n '5': '༥',\n '6': '༦',\n '7': '༧',\n '8': '༨',\n '9': '༩',\n '0': '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\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 (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\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 = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\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\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\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, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // 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\n return br;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\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 '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\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 (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\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 =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\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\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\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: '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)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\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 '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // 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\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\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', //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, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\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\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\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 (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invalida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\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\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\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 (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\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\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\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 (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '۱',\n '2': '۲',\n '3': '۳',\n '4': '۴',\n '5': '۵',\n '6': '۶',\n '7': '۷',\n '8': '۸',\n '9': '۹',\n '0': '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\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\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\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 '_'\n ),\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 (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné 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, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\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 (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\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\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\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: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\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\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\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\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 '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\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: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /rati|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\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '૧',\n '2': '૨',\n '3': '૩',\n '4': '૪',\n '5': '૫',\n '6': '૬',\n '7': '૭',\n '8': '૮',\n '9': '૯',\n '0': '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પેહલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\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, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' 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 (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split(\n '_'\n ),\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\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 return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\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, // 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\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\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 (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\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 (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\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 '_'\n ),\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 (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\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 '_'\n ),\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\n return ja;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\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 (\n $0,\n $1,\n $2\n ) {\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 (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\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 nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '១',\n '2': '២',\n '3': '៣',\n '4': '៤',\n '5': '៥',\n '6': '៦',\n '7': '៧',\n '8': '៨',\n '9': '៩',\n '0': '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '೧',\n '2': '೨',\n '3': '೩',\n '4': '೪',\n '5': '೫',\n '6': '೬',\n '7': '೭',\n '8': '೮',\n '9': '೯',\n '0': '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '١',\n '2': '٢',\n '3': '٣',\n '4': '٤',\n '5': '٥',\n '6': '٦',\n '7': '٧',\n '8': '٨',\n '9': '٩',\n '0': '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یهكشهممه_دووشهممه_سێشهممه_چوارشهممه_پێنجشهممه_ههینی_شهممه'.split(\n '_'\n ),\n weekdaysShort: 'یهكشهم_دووشهم_سێشهم_چوارشهم_پێنجشهم_ههینی_شهممه'.split(\n '_'\n ),\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\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\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\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : 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 (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\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 '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\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 '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\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\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : 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 (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\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 (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n 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\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\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 (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\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, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '၁',\n '2': '၂',\n '3': '၃',\n '4': '၄',\n '5': '၅',\n '6': '၆',\n '7': '၇',\n '8': '၈',\n '9': '၉',\n '0': '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '१',\n '2': '२',\n '3': '३',\n '4': '४',\n '5': '५',\n '6': '६',\n '7': '७',\n '8': '८',\n '9': '९',\n '0': '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\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\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\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 (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\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\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\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 (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\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 M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\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 '_'\n ),\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 '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\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 =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '੧',\n '2': '੨',\n '3': '੩',\n '4': '੪',\n '5': '੫',\n '6': '੬',\n '7': '੭',\n '8': '੮',\n '9': '੯',\n '0': '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n );\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return (\n '(' +\n monthsSubjective[momentToFormat.month()] +\n '|' +\n monthsNominative[momentToFormat.month()] +\n ')'\n );\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\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 '_'\n ),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : 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 (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : 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 (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n '1': '௧',\n '2': '௨',\n '3': '௩',\n '4': '௪',\n '5': '௫',\n '6': '௬',\n '7': '௭',\n '8': '௮',\n '9': '௯',\n '0': '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\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: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\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 '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\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: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.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 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, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! 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 '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js language configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js language configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : 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 '_'\n ),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\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: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\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 '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split(\n '_'\n ),\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 '_'\n ),\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 M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\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 '_'\n ),\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 =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\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 M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! 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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\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\n return zhHk;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\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\n return zhMo;\n\n})));\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;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","module.exports = {};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'params', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy'];\n var defaultToConfig2Keys = [\n 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress',\n 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath'\n ];\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys);\n\n var otherKeys = Object\n .keys(config2)\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","/* eslint-disable */\n\n/**\n * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport $ from 'jquery'\nimport { Collection, Model, View } from 'backbone'\n\nimport OC from './index'\n\n/**\n * @class Contact\n */\nconst Contact = Model.extend({\n\tdefaults: {\n\t\tfullName: '',\n\t\tlastMessage: '',\n\t\tactions: [],\n\t\thasOneAction: false,\n\t\thasTwoActions: false,\n\t\thasManyActions: false\n\t},\n\n\t/**\n\t * @returns {undefined}\n\t */\n\tinitialize: function() {\n\t\t// Add needed property for easier template rendering\n\t\tif (this.get('actions').length === 0) {\n\t\t\tthis.set('hasOneAction', true)\n\t\t} else if (this.get('actions').length === 1) {\n\t\t\tthis.set('hasTwoActions', true)\n\t\t\tthis.set('secondAction', this.get('actions')[0])\n\t\t} else {\n\t\t\tthis.set('hasManyActions', true)\n\t\t}\n\t}\n})\n\n/**\n * @class ContactCollection\n * @private\n */\nconst ContactCollection = Collection.extend({\n\tmodel: Contact\n})\n\n/**\n * @class ContactsListView\n * @private\n */\nconst ContactsListView = View.extend({\n\n\t/** @type {ContactCollection} */\n\t_collection: undefined,\n\n\t/** @type {array} */\n\t_subViews: [],\n\n\t/**\n\t * @param {object} options\n\t * @returns {undefined}\n\t */\n\tinitialize: function(options) {\n\t\tthis._collection = options.collection\n\t},\n\n\t/**\n\t * @returns {self}\n\t */\n\trender: function() {\n\t\tvar self = this\n\t\tself.$el.html('')\n\t\tself._subViews = []\n\n\t\tself._collection.forEach(function(contact) {\n\t\t\tvar item = new ContactsListItemView({\n\t\t\t\tmodel: contact\n\t\t\t})\n\t\t\titem.render()\n\t\t\tself.$el.append(item.$el)\n\t\t\titem.on('toggle:actionmenu', self._onChildActionMenuToggle, self)\n\t\t\tself._subViews.push(item)\n\t\t})\n\n\t\treturn self\n\t},\n\n\t/**\n\t * Event callback to propagate opening (another) entry's action menu\n\t *\n\t * @param {type} $src\n\t * @returns {undefined}\n\t */\n\t_onChildActionMenuToggle: function($src) {\n\t\tthis._subViews.forEach(function(view) {\n\t\t\tview.trigger('parent:toggle:actionmenu', $src)\n\t\t})\n\t}\n})\n\n/**\n * @class ContactsListItemView\n * @private\n */\nconst ContactsListItemView = View.extend({\n\n\t/** @type {string} */\n\tclassName: 'contact',\n\n\t/** @type {undefined|function} */\n\t_template: undefined,\n\n\t/** @type {Contact} */\n\t_model: undefined,\n\n\t/** @type {boolean} */\n\t_actionMenuShown: false,\n\n\tevents: {\n\t\t'click .icon-more': '_onToggleActionsMenu'\n\t},\n\n\tcontactTemplate: require('./contactsmenu/contact.handlebars'),\n\n\t/**\n\t * @param {object} data\n\t * @returns {undefined}\n\t */\n\ttemplate: function(data) {\n\t\treturn this.contactTemplate(data)\n\t},\n\n\t/**\n\t * @param {object} options\n\t * @returns {undefined}\n\t */\n\tinitialize: function(options) {\n\t\tthis._model = options.model\n\t\tthis.on('parent:toggle:actionmenu', this._onOtherActionMenuOpened, this)\n\t},\n\n\t/**\n\t * @returns {self}\n\t */\n\trender: function() {\n\t\tthis.$el.html(this.template({\n\t\t\tcontact: this._model.toJSON()\n\t\t}))\n\t\tthis.delegateEvents()\n\n\t\t// Show placeholder if no avatar is available (avatar is rendered as img, not div)\n\t\tthis.$('div.avatar').imageplaceholder(this._model.get('fullName'))\n\n\t\t// Show tooltip for top action\n\t\tthis.$('.top-action').tooltip({ placement: 'left' })\n\t\t// Show tooltip for second action\n\t\tthis.$('.second-action').tooltip({ placement: 'left' })\n\n\t\treturn this\n\t},\n\n\t/**\n\t * Toggle the visibility of the action popover menu\n\t *\n\t * @private\n\t * @returns {undefined}\n\t */\n\t_onToggleActionsMenu: function() {\n\t\tthis._actionMenuShown = !this._actionMenuShown\n\t\tif (this._actionMenuShown) {\n\t\t\tthis.$('.menu').show()\n\t\t} else {\n\t\t\tthis.$('.menu').hide()\n\t\t}\n\t\tthis.trigger('toggle:actionmenu', this.$el)\n\t},\n\n\t/**\n\t * @private\n\t * @argument {jQuery} $src\n\t * @returns {undefined}\n\t */\n\t_onOtherActionMenuOpened: function($src) {\n\t\tif (this.$el.is($src)) {\n\t\t\t// Ignore\n\t\t\treturn\n\t\t}\n\t\tthis._actionMenuShown = false\n\t\tthis.$('.menu').hide()\n\t}\n})\n\n/**\n * @class ContactsMenuView\n * @private\n */\nconst ContactsMenuView = View.extend({\n\n\t/** @type {undefined|function} */\n\t_loadingTemplate: undefined,\n\n\t/** @type {undefined|function} */\n\t_errorTemplate: undefined,\n\n\t/** @type {undefined|function} */\n\t_contentTemplate: undefined,\n\n\t/** @type {undefined|function} */\n\t_contactsTemplate: undefined,\n\n\t/** @type {undefined|ContactCollection} */\n\t_contacts: undefined,\n\n\t/** @type {string} */\n\t_searchTerm: '',\n\n\tevents: {\n\t\t'input #contactsmenu-search': '_onSearch'\n\t},\n\n\ttemplates: {\n\t\tloading: require('./contactsmenu/loading.handlebars'),\n\t\terror: require('./contactsmenu/error.handlebars'),\n\t\tmenu: require('./contactsmenu/menu.handlebars'),\n\t\tlist: require('./contactsmenu/list.handlebars')\n\t},\n\n\t/**\n\t * @returns {undefined}\n\t */\n\t_onSearch: _.debounce(function(e) {\n\t\tvar searchTerm = this.$('#contactsmenu-search').val()\n\t\t// IE11 triggers an 'input' event after the view has been rendered\n\t\t// resulting in an endless loading loop. To prevent this, we remember\n\t\t// the last search term to savely ignore some events\n\t\t// See https://github.com/nextcloud/server/issues/5281\n\t\tif (searchTerm !== this._searchTerm) {\n\t\t\tthis.trigger('search', this.$('#contactsmenu-search').val())\n\t\t\tthis._searchTerm = searchTerm\n\t\t}\n\t}, 700),\n\n\t/**\n\t * @param {object} data\n\t * @returns {string}\n\t */\n\tloadingTemplate: function(data) {\n\t\treturn this.templates.loading(data)\n\t},\n\n\t/**\n\t * @param {object} data\n\t * @returns {string}\n\t */\n\terrorTemplate: function(data) {\n\t\treturn this.templates.error(\n\t\t\t_.extend({\n\t\t\t\tcouldNotLoadText: t('core', 'Could not load your contacts')\n\t\t\t}, data)\n\t\t)\n\t},\n\n\t/**\n\t * @param {object} data\n\t * @returns {string}\n\t */\n\tcontentTemplate: function(data) {\n\t\treturn this.templates.menu(\n\t\t\t_.extend({\n\t\t\t\tsearchContactsText: t('core', 'Search contacts …')\n\t\t\t}, data)\n\t\t)\n\t},\n\n\t/**\n\t * @param {object} data\n\t * @returns {string}\n\t */\n\tcontactsTemplate: function(data) {\n\t\treturn this.templates.list(\n\t\t\t_.extend({\n\t\t\t\tnoContactsFoundText: t('core', 'No contacts found'),\n\t\t\t\tshowAllContactsText: t('core', 'Show all contacts …'),\n\t\t\t\tcontactsAppMgmtText: t('core', 'Install the Contacts app')\n\t\t\t}, data)\n\t\t)\n\t},\n\n\t/**\n\t * @param {object} options\n\t * @returns {undefined}\n\t */\n\tinitialize: function(options) {\n\t\tthis.options = options\n\t},\n\n\t/**\n\t * @param {string} text\n\t * @returns {undefined}\n\t */\n\tshowLoading: function(text) {\n\t\tthis.render()\n\t\tthis._contacts = undefined\n\t\tthis.$('.content').html(this.loadingTemplate({\n\t\t\tloadingText: text\n\t\t}))\n\t},\n\n\t/**\n\t * @returns {undefined}\n\t */\n\tshowError: function() {\n\t\tthis.render()\n\t\tthis._contacts = undefined\n\t\tthis.$('.content').html(this.errorTemplate())\n\t},\n\n\t/**\n\t * @param {object} viewData\n\t * @param {string} searchTerm\n\t * @returns {undefined}\n\t */\n\tshowContacts: function(viewData, searchTerm) {\n\t\tthis._contacts = viewData.contacts\n\t\tthis.render({\n\t\t\tcontacts: viewData.contacts\n\t\t})\n\n\t\tvar list = new ContactsListView({\n\t\t\tcollection: viewData.contacts\n\t\t})\n\t\tlist.render()\n\t\tthis.$('.content').html(this.contactsTemplate({\n\t\t\tcontacts: viewData.contacts,\n\t\t\tsearchTerm: searchTerm,\n\t\t\tcontactsAppEnabled: viewData.contactsAppEnabled,\n\t\t\tcontactsAppURL: OC.generateUrl('/apps/contacts'),\n\t\t\tcanInstallApp: OC.isUserAdmin(),\n\t\t\tcontactsAppMgmtURL: OC.generateUrl('/settings/apps/social/contacts')\n\t\t}))\n\t\tthis.$('#contactsmenu-contacts').html(list.$el)\n\t},\n\n\t/**\n\t * @param {object} data\n\t * @returns {self}\n\t */\n\trender: function(data) {\n\t\tvar searchVal = this.$('#contactsmenu-search').val()\n\t\tthis.$el.html(this.contentTemplate(data))\n\n\t\t// Focus search\n\t\tthis.$('#contactsmenu-search').val(searchVal)\n\t\tthis.$('#contactsmenu-search').focus()\n\t\treturn this\n\t}\n\n})\n\n/**\n * @param {Object} options\n * @param {jQuery} options.el\n * @param {jQuery} options.trigger\n * @class ContactsMenu\n * @memberOf OC\n */\nconst ContactsMenu = function(options) {\n\tthis.initialize(options)\n}\n\nContactsMenu.prototype = {\n\t/** @type {jQuery} */\n\t$el: undefined,\n\n\t/** @type {jQuery} */\n\t_$trigger: undefined,\n\n\t/** @type {ContactsMenuView} */\n\t_view: undefined,\n\n\t/** @type {Promise} */\n\t_contactsPromise: undefined,\n\n\t/**\n\t * @param {Object} options\n\t * @param {jQuery} options.el - the element to render the menu in\n\t * @param {jQuery} options.trigger - the element to click on to open the menu\n\t * @returns {undefined}\n\t */\n\tinitialize: function(options) {\n\t\tthis.$el = options.el\n\t\tthis._$trigger = options.trigger\n\n\t\tthis._view = new ContactsMenuView({\n\t\t\tel: this.$el\n\t\t})\n\t\tthis._view.on('search', function(searchTerm) {\n\t\t\tthis._loadContacts(searchTerm)\n\t\t}, this)\n\n\t\tOC.registerMenu(this._$trigger, this.$el, function() {\n\t\t\tthis._toggleVisibility(true)\n\t\t}.bind(this), true)\n\t\tthis.$el.on('beforeHide', function() {\n\t\t\tthis._toggleVisibility(false)\n\t\t}.bind(this))\n\t},\n\n\t/**\n\t * @private\n\t * @param {boolean} show\n\t * @returns {Promise}\n\t */\n\t_toggleVisibility: function(show) {\n\t\tif (show) {\n\t\t\treturn this._loadContacts()\n\t\t} else {\n\t\t\tthis.$el.html('')\n\t\t\treturn Promise.resolve()\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t * @param {string|undefined} searchTerm\n\t * @returns {Promise}\n\t */\n\t_getContacts: function(searchTerm) {\n\t\tvar url = OC.generateUrl('/contactsmenu/contacts')\n\t\treturn Promise.resolve($.ajax(url, {\n\t\t\tmethod: 'POST',\n\t\t\tdata: {\n\t\t\t\tfilter: searchTerm\n\t\t\t}\n\t\t}))\n\t},\n\n\t/**\n\t * @param {string|undefined} searchTerm\n\t * @returns {undefined}\n\t */\n\t_loadContacts: function(searchTerm) {\n\t\tvar self = this\n\n\t\tif (!self._contactsPromise) {\n\t\t\tself._contactsPromise = self._getContacts(searchTerm)\n\t\t}\n\n\t\tif (_.isUndefined(searchTerm) || searchTerm === '') {\n\t\t\tself._view.showLoading(t('core', 'Loading your contacts …'))\n\t\t} else {\n\t\t\tself._view.showLoading(t('core', 'Looking for {term} …', {\n\t\t\t\tterm: searchTerm\n\t\t\t}))\n\t\t}\n\t\treturn self._contactsPromise.then(function(data) {\n\t\t\t// Convert contact entries to Backbone collection\n\t\t\tdata.contacts = new ContactCollection(data.contacts)\n\n\t\t\tself._view.showContacts(data, searchTerm)\n\t\t}, function(e) {\n\t\t\tself._view.showError()\n\t\t\tconsole.error('There was an error loading your contacts', e)\n\t\t}).then(function() {\n\t\t\t// Delete promise, so that contacts are fetched again when the\n\t\t\t// menu is opened the next time.\n\t\t\tdelete self._contactsPromise\n\t\t}).catch(console.error.bind(this))\n\t}\n}\n\nexport default ContactsMenu\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCapabilities = getCapabilities;\n\nvar _initialState = require(\"@nextcloud/initial-state\");\n\nfunction getCapabilities() {\n try {\n return (0, _initialState.loadState)('core', 'capabilities');\n } catch (error) {\n console.debug('Could not find capabilities initial state fall back to _oc_capabilities');\n\n if (!('_oc_capabilities' in window)) {\n return {};\n }\n\n return window['_oc_capabilities'];\n }\n}\n//# sourceMappingURL=index.js.map","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = false;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","\"use strict\";\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getRequestToken = getRequestToken;\nexports.onRequestTokenUpdate = onRequestTokenUpdate;\n\nvar _eventBus = require(\"@nextcloud/event-bus\");\n\nvar tokenElement = document.getElementsByTagName('head')[0];\nvar token = tokenElement ? tokenElement.getAttribute('data-requesttoken') : null;\nvar observers = [];\n\nfunction getRequestToken() {\n return token;\n}\n\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n} // Listen to server event and keep token in sync\n\n\n(0, _eventBus.subscribe)('csrf-token-update', function (e) {\n token = e.token;\n observers.forEach(function (observer) {\n try {\n observer(e.token);\n } catch (e) {\n console.error('error updating CSRF token observer', e);\n }\n });\n});\n//# sourceMappingURL=requesttoken.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCurrentUser = getCurrentUser;\nvar uidElement = document.getElementsByTagName('head')[0];\nvar uid = uidElement ? uidElement.getAttribute('data-user') : null;\nvar displayNameElement = document.getElementsByTagName('head')[0];\nvar displayName = displayNameElement ? displayNameElement.getAttribute('data-user-displayname') : null;\n\nfunction getCurrentUser() {\n if (uid === null) {\n return null;\n }\n\n return {\n uid: uid,\n displayName: displayName\n };\n}\n//# sourceMappingURL=user.js.map","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar isSymbol = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return Object(it) instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPrimitive(P, true);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPrimitive(V, true);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPrimitive(P, true);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.github.io/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.github.io/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = String(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.github.io/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.github.io/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.github.io/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.github.io/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.github.io/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.github.io/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyNames = require('../internals/object-get-own-property-names').f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return nativeGetOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : nativeGetOwnPropertyNames(toIndexedObject(it));\n};\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptors\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIndexedObject(object);\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n var keys = ownKeys(O);\n var result = {};\n var index = 0;\n var key, descriptor;\n while (keys.length > index) {\n descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);\n if (descriptor !== undefined) createProperty(result, key, descriptor);\n }\n return result;\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n// FF49- issue\nvar USES_TO_LENGTH = arrayMethodUsesToLength('map');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","\"use strict\";\n\nrequire(\"core-js/modules/es.object.to-string\");\n\nrequire(\"core-js/modules/es.promise\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFilePickerBuilder = getFilePickerBuilder;\nexports.FilePickerBuilder = exports.FilePicker = exports.FilePickerType = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/// <reference types=\"@nextcloud/typings\" />\nvar FilePickerType;\nexports.FilePickerType = FilePickerType;\n\n(function (FilePickerType) {\n FilePickerType[FilePickerType[\"Choose\"] = 1] = \"Choose\";\n FilePickerType[FilePickerType[\"Move\"] = 2] = \"Move\";\n FilePickerType[FilePickerType[\"Copy\"] = 3] = \"Copy\";\n FilePickerType[FilePickerType[\"CopyMove\"] = 4] = \"CopyMove\";\n})(FilePickerType || (exports.FilePickerType = FilePickerType = {}));\n\nvar FilePicker = /*#__PURE__*/function () {\n function FilePicker(title, multiSelect, mimeTypeFilter, modal, type, directoriesAllowed, path) {\n _classCallCheck(this, FilePicker);\n\n this.title = title;\n this.multiSelect = multiSelect;\n this.mimeTypeFiler = mimeTypeFilter;\n this.modal = modal;\n this.type = type;\n this.directoriesAllowed = directoriesAllowed;\n this.path = path;\n }\n\n _createClass(FilePicker, [{\n key: \"pick\",\n value: function pick() {\n var _this = this;\n\n return new Promise(function (res, rej) {\n OC.dialogs.filepicker(_this.title, res, _this.multiSelect, _this.mimeTypeFiler, _this.modal, _this.type, _this.path, {\n allowDirectoryChooser: _this.directoriesAllowed\n });\n });\n }\n }]);\n\n return FilePicker;\n}();\n\nexports.FilePicker = FilePicker;\n\nvar FilePickerBuilder = /*#__PURE__*/function () {\n function FilePickerBuilder(title) {\n _classCallCheck(this, FilePickerBuilder);\n\n this.multiSelect = false;\n this.mimeTypeFiler = [];\n this.modal = true;\n this.type = FilePickerType.Choose;\n this.directoriesAllowed = false;\n this.title = title;\n }\n\n _createClass(FilePickerBuilder, [{\n key: \"setMultiSelect\",\n value: function setMultiSelect(ms) {\n this.multiSelect = ms;\n return this;\n }\n }, {\n key: \"addMimeTypeFilter\",\n value: function addMimeTypeFilter(filter) {\n this.mimeTypeFiler.push(filter);\n return this;\n }\n }, {\n key: \"setMimeTypeFilter\",\n value: function setMimeTypeFilter(filter) {\n this.mimeTypeFiler = filter;\n return this;\n }\n }, {\n key: \"setModal\",\n value: function setModal(modal) {\n this.modal = modal;\n return this;\n }\n }, {\n key: \"setType\",\n value: function setType(type) {\n this.type = type;\n return this;\n }\n }, {\n key: \"allowDirectories\",\n value: function allowDirectories() {\n var allow = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.directoriesAllowed = allow;\n return this;\n }\n }, {\n key: \"startAt\",\n value: function startAt(path) {\n this.path = path;\n return this;\n }\n }, {\n key: \"build\",\n value: function build() {\n return new FilePicker(this.title, this.multiSelect, this.mimeTypeFiler, this.modal, this.type, this.directoriesAllowed, this.path);\n }\n }]);\n\n return FilePickerBuilder;\n}();\n\nexports.FilePickerBuilder = FilePickerBuilder;\n\nfunction getFilePickerBuilder(title) {\n return new FilePickerBuilder(title);\n}\n//# sourceMappingURL=filepicker.js.map","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","\"use strict\";\n\nrequire(\"core-js/modules/es.symbol\");\n\nrequire(\"core-js/modules/es.array.filter\");\n\nrequire(\"core-js/modules/es.array.for-each\");\n\nrequire(\"core-js/modules/es.object.assign\");\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptor\");\n\nrequire(\"core-js/modules/es.object.get-own-property-descriptors\");\n\nrequire(\"core-js/modules/es.object.keys\");\n\nrequire(\"core-js/modules/web.dom-collections.for-each\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.showMessage = showMessage;\nexports.showError = showError;\nexports.showWarning = showWarning;\nexports.showInfo = showInfo;\nexports.showSuccess = showSuccess;\n\nvar _toastifyJs = _interopRequireDefault(require(\"toastify-js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ToastType = function ToastType() {\n _classCallCheck(this, ToastType);\n};\n\nToastType.ERROR = 'toast-error';\nToastType.WARNING = 'toast-warning';\nToastType.INFO = 'toast-info';\nToastType.SUCCESS = 'toast-success';\nToastType.PERMANENT = 'toast-error';\n\n/**\n * Show a toast message\n *\n * @param text Message to be shown in the toast, any HTML is removed by default\n * @param options\n */\nfunction showMessage(text, options) {\n var _options$type;\n\n options = Object.assign({\n timeout: 7,\n isHTML: false,\n type: undefined,\n // An undefined selector defaults to the body element\n selector: undefined,\n onRemove: function onRemove() {},\n onClick: function onClick() {},\n close: true\n }, options);\n\n if (!options.isHTML) {\n // fime mae sure that text is extracted\n var element = document.createElement('div');\n element.innerHTML = text;\n text = element.innerText;\n }\n\n var classes = (_options$type = options.type) !== null && _options$type !== void 0 ? _options$type : '';\n var toast = (0, _toastifyJs.default)({\n text: text,\n duration: options.timeout === null || options.timeout === undefined ? null : options.timeout * 1000,\n callback: options.onRemove,\n onClick: options.onClick,\n close: options.close,\n gravity: 'top',\n selector: options.selector,\n position: 'right',\n backgroundColor: '',\n className: 'toast ' + classes\n });\n toast.showToast();\n return toast;\n}\n/**\n * Show a toast message with error styling\n *\n * @param text Message to be shown in the toast, any HTML is removed by default\n * @param options\n */\n\n\nfunction showError(text, options) {\n return showMessage(text, _objectSpread(_objectSpread({}, options), {}, {\n type: ToastType.ERROR\n }));\n}\n/**\n * Show a toast message with warning styling\n *\n * @param text Message to be shown in the toast, any HTML is removed by default\n * @param options\n */\n\n\nfunction showWarning(text, options) {\n return showMessage(text, _objectSpread(_objectSpread({}, options), {}, {\n type: ToastType.WARNING\n }));\n}\n/**\n * Show a toast message with info styling\n *\n * @param text Message to be shown in the toast, any HTML is removed by default\n * @param options\n */\n\n\nfunction showInfo(text, options) {\n return showMessage(text, _objectSpread(_objectSpread({}, options), {}, {\n type: ToastType.INFO\n }));\n}\n/**\n * Show a toast message with success styling\n *\n * @param text Message to be shown in the toast, any HTML is removed by default\n * @param options\n */\n\n\nfunction showSuccess(text, options) {\n return showMessage(text, _objectSpread(_objectSpread({}, options), {}, {\n type: ToastType.SUCCESS\n }));\n}\n//# sourceMappingURL=toast.js.map","/*!\n * Toastify js 1.8.0\n * https://github.com/apvarun/toastify-js\n * @license MIT licensed\n *\n * Copyright (C) 2018 Varun A P\n */\n(function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Toastify = factory();\n }\n})(this, function(global) {\n // Object initialization\n var Toastify = function(options) {\n // Returning a new init object\n return new Toastify.lib.init(options);\n },\n // Library version\n version = \"1.8.0\";\n\n // Defining the prototype of the object\n Toastify.lib = Toastify.prototype = {\n toastify: version,\n\n constructor: Toastify,\n\n // Initializing the object with required parameters\n init: function(options) {\n // Verifying and validating the input object\n if (!options) {\n options = {};\n }\n\n // Creating the options object\n this.options = {};\n\n this.toastElement = null;\n\n // Validating the options\n this.options.text = options.text || \"Hi there!\"; // Display message\n this.options.node = options.node // Display content as node\n this.options.duration = options.duration === 0 ? 0 : options.duration || 3000; // Display duration\n this.options.selector = options.selector; // Parent selector\n this.options.callback = options.callback || function() {}; // Callback after display\n this.options.destination = options.destination; // On-click destination\n this.options.newWindow = options.newWindow || false; // Open destination in new window\n this.options.close = options.close || false; // Show toast close icon\n this.options.gravity = options.gravity === \"bottom\" ? \"toastify-bottom\" : \"toastify-top\"; // toast position - top or bottom\n this.options.positionLeft = options.positionLeft || false; // toast position - left or right\n this.options.position = options.position || ''; // toast position - left or right\n this.options.backgroundColor = options.backgroundColor; // toast background color\n this.options.avatar = options.avatar || \"\"; // img element src - url or a path\n this.options.className = options.className || \"\"; // additional class names for the toast\n this.options.stopOnFocus = options.stopOnFocus === undefined? true: options.stopOnFocus; // stop timeout on focus\n this.options.onClick = options.onClick; // Callback after click\n\n // Returning the current object for chaining functions\n return this;\n },\n\n // Building the DOM element\n buildToast: function() {\n // Validating if the options are defined\n if (!this.options) {\n throw \"Toastify is not initialized\";\n }\n\n // Creating the DOM object\n var divElement = document.createElement(\"div\");\n divElement.className = \"toastify on \" + this.options.className;\n\n // Positioning toast to left or right or center\n if (!!this.options.position) {\n divElement.className += \" toastify-\" + this.options.position;\n } else {\n // To be depreciated in further versions\n if (this.options.positionLeft === true) {\n divElement.className += \" toastify-left\";\n console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.')\n } else {\n // Default position\n divElement.className += \" toastify-right\";\n }\n }\n\n // Assigning gravity of element\n divElement.className += \" \" + this.options.gravity;\n\n if (this.options.backgroundColor) {\n divElement.style.background = this.options.backgroundColor;\n }\n\n // Adding the toast message/node\n if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) {\n // If we have a valid node, we insert it\n divElement.appendChild(this.options.node)\n } else {\n divElement.innerHTML = this.options.text;\n\n if (this.options.avatar !== \"\") {\n var avatarElement = document.createElement(\"img\");\n avatarElement.src = this.options.avatar;\n\n avatarElement.className = \"toastify-avatar\";\n\n if (this.options.position == \"left\" || this.options.positionLeft === true) {\n // Adding close icon on the left of content\n divElement.appendChild(avatarElement);\n } else {\n // Adding close icon on the right of content\n divElement.insertAdjacentElement(\"beforeend\", avatarElement);\n }\n }\n }\n\n // Adding a close icon to the toast\n if (this.options.close === true) {\n // Create a span for close element\n var closeElement = document.createElement(\"span\");\n closeElement.innerHTML = \"✖\";\n\n closeElement.className = \"toast-close\";\n\n // Triggering the removal of toast from DOM on close click\n closeElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.removeElement(this.toastElement);\n window.clearTimeout(this.toastElement.timeOutValue);\n }.bind(this)\n );\n\n //Calculating screen width\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Adding the close icon to the toast element\n // Display on the right if screen width is less than or equal to 360px\n if ((this.options.position == \"left\" || this.options.positionLeft === true) && width > 360) {\n // Adding close icon on the left of content\n divElement.insertAdjacentElement(\"afterbegin\", closeElement);\n } else {\n // Adding close icon on the right of content\n divElement.appendChild(closeElement);\n }\n }\n\n // Clear timeout while toast is focused\n if (this.options.stopOnFocus && this.options.duration > 0) {\n const self = this;\n // stop countdown\n divElement.addEventListener(\n \"mouseover\",\n function(event) {\n window.clearTimeout(divElement.timeOutValue);\n }\n )\n // add back the timeout\n divElement.addEventListener(\n \"mouseleave\",\n function() {\n divElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n self.removeElement(divElement);\n },\n self.options.duration\n )\n }\n )\n }\n \n // Adding an on-click destination path\n if (typeof this.options.destination !== \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n if (this.options.newWindow === true) {\n window.open(this.options.destination, \"_blank\");\n } else {\n window.location = this.options.destination;\n }\n }.bind(this)\n );\n }\n\n if (typeof this.options.onClick === \"function\" && typeof this.options.destination === \"undefined\") {\n divElement.addEventListener(\n \"click\",\n function(event) {\n event.stopPropagation();\n this.options.onClick(); \n }.bind(this)\n );\n }\n\n // Returning the generated element\n return divElement;\n },\n\n // Displaying the toast\n showToast: function() {\n // Creating the DOM object for the toast\n this.toastElement = this.buildToast();\n\n // Getting the root element to with the toast needs to be added\n var rootElement;\n if (typeof this.options.selector === \"undefined\") {\n rootElement = document.body;\n } else {\n rootElement = document.getElementById(this.options.selector);\n }\n\n // Validating if root element is present in DOM\n if (!rootElement) {\n throw \"Root element is not defined\";\n }\n\n // Adding the DOM element\n rootElement.insertBefore(this.toastElement, rootElement.firstChild);\n\n // Repositioning the toasts in case multiple toasts are present\n Toastify.reposition();\n\n if (this.options.duration > 0) {\n this.toastElement.timeOutValue = window.setTimeout(\n function() {\n // Remove the toast from DOM\n this.removeElement(this.toastElement);\n }.bind(this),\n this.options.duration\n ); // Binding `this` for function invocation\n }\n\n // Supporting function chaining\n return this;\n },\n\n hideToast: function() {\n if (this.toastElement.timeOutValue) {\n clearTimeout(this.toastElement.timeOutValue);\n }\n this.removeElement(this.toastElement);\n },\n\n // Removing the element from the DOM\n removeElement: function(toastElement) {\n // Hiding the element\n // toastElement.classList.remove(\"on\");\n toastElement.className = toastElement.className.replace(\" on\", \"\");\n\n // Removing the element from DOM after transition end\n window.setTimeout(\n function() {\n // remove options node if any\n if (this.options.node && this.options.node.parentNode) {\n this.options.node.parentNode.removeChild(this.options.node);\n }\n\n // Remove the elemenf from the DOM, only when the parent node was not removed before.\n if (toastElement.parentNode) {\n toastElement.parentNode.removeChild(toastElement);\n }\n\n // Calling the callback function\n this.options.callback.call(toastElement);\n\n // Repositioning the toasts again\n Toastify.reposition();\n }.bind(this),\n 400\n ); // Binding `this` for function invocation\n },\n };\n\n // Positioning the toasts on the DOM\n Toastify.reposition = function() {\n // Top margins with gravity\n var topLeftOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var topRightOffsetSize = {\n top: 15,\n bottom: 15,\n };\n var offsetSize = {\n top: 15,\n bottom: 15,\n };\n\n // Get all toast messages on the DOM\n var allToasts = document.getElementsByClassName(\"toastify\");\n\n var classUsed;\n\n // Modifying the position of each toast element\n for (var i = 0; i < allToasts.length; i++) {\n // Getting the applied gravity\n if (containsClass(allToasts[i], \"toastify-top\") === true) {\n classUsed = \"toastify-top\";\n } else {\n classUsed = \"toastify-bottom\";\n }\n\n var height = allToasts[i].offsetHeight;\n classUsed = classUsed.substr(9, classUsed.length-1)\n // Spacing between toasts\n var offset = 15;\n\n var width = window.innerWidth > 0 ? window.innerWidth : screen.width;\n\n // Show toast in center if screen with less than or qual to 360px\n if (width <= 360) {\n // Setting the position\n allToasts[i].style[classUsed] = offsetSize[classUsed] + \"px\";\n\n offsetSize[classUsed] += height + offset;\n } else {\n if (containsClass(allToasts[i], \"toastify-left\") === true) {\n // Setting the position\n allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + \"px\";\n\n topLeftOffsetSize[classUsed] += height + offset;\n } else {\n // Setting the position\n allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + \"px\";\n\n topRightOffsetSize[classUsed] += height + offset;\n }\n }\n }\n\n // Supporting function chaining\n return this;\n };\n\n function containsClass(elem, yourClass) {\n if (!elem || typeof yourClass !== \"string\") {\n return false;\n } else if (\n elem.className &&\n elem.className\n .trim()\n .split(/\\s+/gi)\n .indexOf(yourClass) > -1\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n // Setting up the prototype for the init object\n Toastify.lib.init.prototype = Toastify.lib;\n\n // Returning the Toastify function to be assigned to the window object/module\n return Toastify;\n});\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<img src=\\\"\"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"avatar\") : stack1), depth0))\n + \"&size=32\\\" class=\\\"avatar\\\" srcset=\\\"\"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"avatar\") : stack1), depth0))\n + \"&size=32 1x, \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"avatar\") : stack1), depth0))\n + \"&size=64 2x, \"\n + alias2(alias1(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"avatar\") : stack1), depth0))\n + \"&size=128 4x\\\" alt=\\\"\\\">\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n return \"<div class=\\\"avatar\\\"></div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<a class=\\\"top-action\\\" href=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"topAction\") : stack1)) != null ? lookupProperty(stack1,\"hyperlink\") : stack1), depth0))\n + \"\\\" title=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"topAction\") : stack1)) != null ? lookupProperty(stack1,\"title\") : stack1), depth0))\n + \"\\\">\\n\t<img src=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"topAction\") : stack1)) != null ? lookupProperty(stack1,\"icon\") : stack1), depth0))\n + \"\\\" alt=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"topAction\") : stack1)) != null ? lookupProperty(stack1,\"title\") : stack1), depth0))\n + \"\\\">\\n</a>\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=container.lambda, alias2=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<a class=\\\"second-action\\\" href=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"secondAction\") : stack1)) != null ? lookupProperty(stack1,\"hyperlink\") : stack1), depth0))\n + \"\\\" title=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"secondAction\") : stack1)) != null ? lookupProperty(stack1,\"title\") : stack1), depth0))\n + \"\\\">\\n\t<img src=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"secondAction\") : stack1)) != null ? lookupProperty(stack1,\"icon\") : stack1), depth0))\n + \"\\\" alt=\\\"\"\n + alias2(alias1(((stack1 = ((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"secondAction\") : stack1)) != null ? lookupProperty(stack1,\"title\") : stack1), depth0))\n + \"\\\">\\n</a>\\n\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t<span class=\\\"other-actions icon-more\\\"></span>\\n\t<div class=\\\"menu popovermenu\\\">\\n\t\t<ul>\\n\"\n + ((stack1 = lookupProperty(helpers,\"each\").call(depth0 != null ? depth0 : (container.nullContext || {}),((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"actions\") : stack1),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":24,\"column\":3},\"end\":{\"line\":31,\"column\":12}}})) != null ? stack1 : \"\")\n + \"\t\t</ul>\\n\t</div>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t<li>\\n\t\t\t\t<a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"hyperlink\") || (depth0 != null ? lookupProperty(depth0,\"hyperlink\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"hyperlink\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":26,\"column\":13},\"end\":{\"line\":26,\"column\":26}}}) : helper)))\n + \"\\\">\\n\t\t\t\t\t<img src=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"icon\") || (depth0 != null ? lookupProperty(depth0,\"icon\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"icon\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":27,\"column\":15},\"end\":{\"line\":27,\"column\":23}}}) : helper)))\n + \"\\\" alt=\\\"\\\">\\n\t\t\t\t\t<span>\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"title\") || (depth0 != null ? lookupProperty(depth0,\"title\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"title\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":28,\"column\":11},\"end\":{\"line\":28,\"column\":20}}}) : helper)))\n + \"</span>\\n\t\t\t\t</a>\\n\t\t\t</li>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.lambda, alias3=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"avatar\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(3, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":5,\"column\":7}}})) != null ? stack1 : \"\")\n + \"<div class=\\\"body\\\">\\n\t<div class=\\\"full-name\\\">\"\n + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"fullName\") : stack1), depth0))\n + \"</div>\\n\t<div class=\\\"last-message\\\">\"\n + alias3(alias2(((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"lastMessage\") : stack1), depth0))\n + \"</div>\\n</div>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"topAction\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":14,\"column\":7}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"hasTwoActions\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":0},\"end\":{\"line\":19,\"column\":7}}})) != null ? stack1 : \"\")\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"contact\") : depth0)) != null ? lookupProperty(stack1,\"hasManyActions\") : stack1),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":20,\"column\":0},\"end\":{\"line\":34,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerHelper('blockHelperMissing', function (context, options) {\n var inverse = options.inverse,\n fn = options.fn;\n\n if (context === true) {\n return fn(this);\n } else if (context === false || context == null) {\n return inverse(this);\n } else if (_utils.isArray(context)) {\n if (context.length > 0) {\n if (options.ids) {\n options.ids = [options.name];\n }\n\n return instance.helpers.each(context, options);\n } else {\n return inverse(this);\n }\n } else {\n if (options.data && options.ids) {\n var data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.name);\n options = { data: data };\n }\n\n return fn(context, options);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvYmxvY2staGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztxQkFBd0QsVUFBVTs7cUJBRW5ELFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ3ZFLFFBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPO1FBQzNCLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUVsQixRQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7QUFDcEIsYUFBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakIsTUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTtBQUMvQyxhQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QixNQUFNLElBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUMzQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO0FBQ3RCLFlBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGlCQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlCOztBQUVELGVBQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO09BQ2hELE1BQU07QUFDTCxlQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztPQUN0QjtLQUNGLE1BQU07QUFDTCxVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLElBQUksR0FBRyxtQkFBWSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckMsWUFBSSxDQUFDLFdBQVcsR0FBRyx5QkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQ2IsQ0FBQztBQUNGLGVBQU8sR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztPQUMxQjs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDN0I7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJibG9jay1oZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGVuZENvbnRleHRQYXRoLCBjcmVhdGVGcmFtZSwgaXNBcnJheSB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2Jsb2NrSGVscGVyTWlzc2luZycsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBsZXQgaW52ZXJzZSA9IG9wdGlvbnMuaW52ZXJzZSxcbiAgICAgIGZuID0gb3B0aW9ucy5mbjtcblxuICAgIGlmIChjb250ZXh0ID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZm4odGhpcyk7XG4gICAgfSBlbHNlIGlmIChjb250ZXh0ID09PSBmYWxzZSB8fCBjb250ZXh0ID09IG51bGwpIHtcbiAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgIH0gZWxzZSBpZiAoaXNBcnJheShjb250ZXh0KSkge1xuICAgICAgaWYgKGNvbnRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgICAgICBvcHRpb25zLmlkcyA9IFtvcHRpb25zLm5hbWVdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmhlbHBlcnMuZWFjaChjb250ZXh0LCBvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBpbnZlcnNlKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuaWRzKSB7XG4gICAgICAgIGxldCBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLm5hbWVcbiAgICAgICAgKTtcbiAgICAgICAgb3B0aW9ucyA9IHsgZGF0YTogZGF0YSB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('each', function (context, options) {\n if (!options) {\n throw new _exception2['default']('Must pass iterator to #each');\n }\n\n var fn = options.fn,\n inverse = options.inverse,\n i = 0,\n ret = '',\n data = undefined,\n contextPath = undefined;\n\n if (options.data && options.ids) {\n contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]) + '.';\n }\n\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n if (options.data) {\n data = _utils.createFrame(options.data);\n }\n\n function execIteration(field, index, last) {\n if (data) {\n data.key = field;\n data.index = index;\n data.first = index === 0;\n data.last = !!last;\n\n if (contextPath) {\n data.contextPath = contextPath + field;\n }\n }\n\n ret = ret + fn(context[field], {\n data: data,\n blockParams: _utils.blockParams([context[field], field], [contextPath + field, null])\n });\n }\n\n if (context && typeof context === 'object') {\n if (_utils.isArray(context)) {\n for (var j = context.length; i < j; i++) {\n if (i in context) {\n execIteration(i, i, i === context.length - 1);\n }\n }\n } else if (global.Symbol && context[global.Symbol.iterator]) {\n var newContext = [];\n var iterator = context[global.Symbol.iterator]();\n for (var it = iterator.next(); !it.done; it = iterator.next()) {\n newContext.push(it.value);\n }\n context = newContext;\n for (var j = context.length; i < j; i++) {\n execIteration(i, i, i === context.length - 1);\n }\n } else {\n (function () {\n var priorKey = undefined;\n\n Object.keys(context).forEach(function (key) {\n // We're running the iterations one step out of sync so we can detect\n // the last iteration without have to scan the object twice and create\n // an itermediate keys array.\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1);\n }\n priorKey = key;\n i++;\n });\n if (priorKey !== undefined) {\n execIteration(priorKey, i - 1, true);\n }\n })();\n }\n }\n\n if (i === 0) {\n ret = inverse(this);\n }\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvZWFjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLENBQUMsT0FBTyxFQUFFO0FBQ1osWUFBTSwyQkFBYyw2QkFBNkIsQ0FBQyxDQUFDO0tBQ3BEOztBQUVELFFBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTztRQUN6QixDQUFDLEdBQUcsQ0FBQztRQUNMLEdBQUcsR0FBRyxFQUFFO1FBQ1IsSUFBSSxZQUFBO1FBQ0osV0FBVyxZQUFBLENBQUM7O0FBRWQsUUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDL0IsaUJBQVcsR0FDVCx5QkFBa0IsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNyRTs7QUFFRCxRQUFJLGtCQUFXLE9BQU8sQ0FBQyxFQUFFO0FBQ3ZCLGFBQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCOztBQUVELFFBQUksT0FBTyxDQUFDLElBQUksRUFBRTtBQUNoQixVQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xDOztBQUVELGFBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0FBQ3pDLFVBQUksSUFBSSxFQUFFO0FBQ1IsWUFBSSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDakIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7QUFDbkIsWUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLFlBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQzs7QUFFbkIsWUFBSSxXQUFXLEVBQUU7QUFDZixjQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDeEM7T0FDRjs7QUFFRCxTQUFHLEdBQ0QsR0FBRyxHQUNILEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUNYLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUN2QixDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQzVCO09BQ0YsQ0FBQyxDQUFDO0tBQ047O0FBRUQsUUFBSSxPQUFPLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO0FBQzFDLFVBQUksZUFBUSxPQUFPLENBQUMsRUFBRTtBQUNwQixhQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUN2QyxjQUFJLENBQUMsSUFBSSxPQUFPLEVBQUU7QUFDaEIseUJBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1dBQy9DO1NBQ0Y7T0FDRixNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRTtBQUMzRCxZQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsWUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztBQUNuRCxhQUFLLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtBQUM3RCxvQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0I7QUFDRCxlQUFPLEdBQUcsVUFBVSxDQUFDO0FBQ3JCLGFBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ3ZDLHVCQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvQztPQUNGLE1BQU07O0FBQ0wsY0FBSSxRQUFRLFlBQUEsQ0FBQzs7QUFFYixnQkFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLEVBQUk7Ozs7QUFJbEMsZ0JBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtBQUMxQiwyQkFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7QUFDRCxvQkFBUSxHQUFHLEdBQUcsQ0FBQztBQUNmLGFBQUMsRUFBRSxDQUFDO1dBQ0wsQ0FBQyxDQUFDO0FBQ0gsY0FBSSxRQUFRLEtBQUssU0FBUyxFQUFFO0FBQzFCLHlCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7V0FDdEM7O09BQ0Y7S0FDRjs7QUFFRCxRQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7QUFDWCxTQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3JCOztBQUVELFdBQU8sR0FBRyxDQUFDO0dBQ1osQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoiZWFjaC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFwcGVuZENvbnRleHRQYXRoLFxuICBibG9ja1BhcmFtcyxcbiAgY3JlYXRlRnJhbWUsXG4gIGlzQXJyYXksXG4gIGlzRnVuY3Rpb25cbn0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tICcuLi9leGNlcHRpb24nO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbihpbnN0YW5jZSkge1xuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcignZWFjaCcsIGZ1bmN0aW9uKGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ011c3QgcGFzcyBpdGVyYXRvciB0byAjZWFjaCcpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm4sXG4gICAgICBpbnZlcnNlID0gb3B0aW9ucy5pbnZlcnNlLFxuICAgICAgaSA9IDAsXG4gICAgICByZXQgPSAnJyxcbiAgICAgIGRhdGEsXG4gICAgICBjb250ZXh0UGF0aDtcblxuICAgIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5pZHMpIHtcbiAgICAgIGNvbnRleHRQYXRoID1cbiAgICAgICAgYXBwZW5kQ29udGV4dFBhdGgob3B0aW9ucy5kYXRhLmNvbnRleHRQYXRoLCBvcHRpb25zLmlkc1swXSkgKyAnLic7XG4gICAgfVxuXG4gICAgaWYgKGlzRnVuY3Rpb24oY29udGV4dCkpIHtcbiAgICAgIGNvbnRleHQgPSBjb250ZXh0LmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGF0YSkge1xuICAgICAgZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXhlY0l0ZXJhdGlvbihmaWVsZCwgaW5kZXgsIGxhc3QpIHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIGRhdGEua2V5ID0gZmllbGQ7XG4gICAgICAgIGRhdGEuaW5kZXggPSBpbmRleDtcbiAgICAgICAgZGF0YS5maXJzdCA9IGluZGV4ID09PSAwO1xuICAgICAgICBkYXRhLmxhc3QgPSAhIWxhc3Q7XG5cbiAgICAgICAgaWYgKGNvbnRleHRQYXRoKSB7XG4gICAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGNvbnRleHRQYXRoICsgZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0ID1cbiAgICAgICAgcmV0ICtcbiAgICAgICAgZm4oY29udGV4dFtmaWVsZF0sIHtcbiAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zOiBibG9ja1BhcmFtcyhcbiAgICAgICAgICAgIFtjb250ZXh0W2ZpZWxkXSwgZmllbGRdLFxuICAgICAgICAgICAgW2NvbnRleHRQYXRoICsgZmllbGQsIG51bGxdXG4gICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udGV4dCAmJiB0eXBlb2YgY29udGV4dCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChpc0FycmF5KGNvbnRleHQpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZXh0Lmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgICAgIGlmIChpIGluIGNvbnRleHQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24oaSwgaSwgaSA9PT0gY29udGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZ2xvYmFsLlN5bWJvbCAmJiBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKSB7XG4gICAgICAgIGNvbnN0IG5ld0NvbnRleHQgPSBbXTtcbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBjb250ZXh0W2dsb2JhbC5TeW1ib2wuaXRlcmF0b3JdKCk7XG4gICAgICAgIGZvciAobGV0IGl0ID0gaXRlcmF0b3IubmV4dCgpOyAhaXQuZG9uZTsgaXQgPSBpdGVyYXRvci5uZXh0KCkpIHtcbiAgICAgICAgICBuZXdDb250ZXh0LnB1c2goaXQudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQgPSBuZXdDb250ZXh0O1xuICAgICAgICBmb3IgKGxldCBqID0gY29udGV4dC5sZW5ndGg7IGkgPCBqOyBpKyspIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKGksIGksIGkgPT09IGNvbnRleHQubGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBwcmlvcktleTtcblxuICAgICAgICBPYmplY3Qua2V5cyhjb250ZXh0KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgLy8gV2UncmUgcnVubmluZyB0aGUgaXRlcmF0aW9ucyBvbmUgc3RlcCBvdXQgb2Ygc3luYyBzbyB3ZSBjYW4gZGV0ZWN0XG4gICAgICAgICAgLy8gdGhlIGxhc3QgaXRlcmF0aW9uIHdpdGhvdXQgaGF2ZSB0byBzY2FuIHRoZSBvYmplY3QgdHdpY2UgYW5kIGNyZWF0ZVxuICAgICAgICAgIC8vIGFuIGl0ZXJtZWRpYXRlIGtleXMgYXJyYXkuXG4gICAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGV4ZWNJdGVyYXRpb24ocHJpb3JLZXksIGkgLSAxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcHJpb3JLZXkgPSBrZXk7XG4gICAgICAgICAgaSsrO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHByaW9yS2V5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBleGVjSXRlcmF0aW9uKHByaW9yS2V5LCBpIC0gMSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgcmV0ID0gaW52ZXJzZSh0aGlzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('helperMissing', function () /* [args, ]options */{\n if (arguments.length === 1) {\n // A missing field in a {{foo}} construct.\n return undefined;\n } else {\n // Someone is actually trying to call something, blow up.\n throw new _exception2['default']('Missing helper: \"' + arguments[arguments.length - 1].name + '\"');\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaGVscGVyLW1pc3NpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozt5QkFBc0IsY0FBYzs7OztxQkFFckIsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsaUNBQWdDO0FBQ3ZFLFFBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7O0FBRTFCLGFBQU8sU0FBUyxDQUFDO0tBQ2xCLE1BQU07O0FBRUwsWUFBTSwyQkFDSixtQkFBbUIsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUNqRSxDQUFDO0tBQ0g7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJoZWxwZXItbWlzc2luZy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2hlbHBlck1pc3NpbmcnLCBmdW5jdGlvbigvKiBbYXJncywgXW9wdGlvbnMgKi8pIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gQSBtaXNzaW5nIGZpZWxkIGluIGEge3tmb299fSBjb25zdHJ1Y3QuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTb21lb25lIGlzIGFjdHVhbGx5IHRyeWluZyB0byBjYWxsIHNvbWV0aGluZywgYmxvdyB1cC5cbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oXG4gICAgICAgICdNaXNzaW5nIGhlbHBlcjogXCInICsgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXS5uYW1lICsgJ1wiJ1xuICAgICAgKTtcbiAgICB9XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('if', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#if requires exactly one argument');\n }\n if (_utils.isFunction(conditional)) {\n conditional = conditional.call(this);\n }\n\n // Default behavior is to render the positive path if the value is truthy and not empty.\n // The `includeZero` option may be set to treat the condtional as purely not empty based on the\n // behavior of isEmpty. Effectively this determines if 0 is handled by the positive path or negative.\n if (!options.hash.includeZero && !conditional || _utils.isEmpty(conditional)) {\n return options.inverse(this);\n } else {\n return options.fn(this);\n }\n });\n\n instance.registerHelper('unless', function (conditional, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#unless requires exactly one argument');\n }\n return instance.helpers['if'].call(this, conditional, {\n fn: options.inverse,\n inverse: options.fn,\n hash: options.hash\n });\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvaWYuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztxQkFBb0MsVUFBVTs7eUJBQ3hCLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVMsV0FBVyxFQUFFLE9BQU8sRUFBRTtBQUMzRCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztLQUMxRDtBQUNELFFBQUksa0JBQVcsV0FBVyxDQUFDLEVBQUU7QUFDM0IsaUJBQVcsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3RDOzs7OztBQUtELFFBQUksQUFBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFLLGVBQVEsV0FBVyxDQUFDLEVBQUU7QUFDdkUsYUFBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzlCLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7R0FDRixDQUFDLENBQUM7O0FBRUgsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9ELFFBQUksU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7QUFDekIsWUFBTSwyQkFBYyx1Q0FBdUMsQ0FBQyxDQUFDO0tBQzlEO0FBQ0QsV0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFFBQUUsRUFBRSxPQUFPLENBQUMsT0FBTztBQUNuQixhQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUU7QUFDbkIsVUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO0tBQ25CLENBQUMsQ0FBQztHQUNKLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlmLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFbXB0eSwgaXNGdW5jdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCBFeGNlcHRpb24gZnJvbSAnLi4vZXhjZXB0aW9uJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2lmJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjaWYgcmVxdWlyZXMgZXhhY3RseSBvbmUgYXJndW1lbnQnKTtcbiAgICB9XG4gICAgaWYgKGlzRnVuY3Rpb24oY29uZGl0aW9uYWwpKSB7XG4gICAgICBjb25kaXRpb25hbCA9IGNvbmRpdGlvbmFsLmNhbGwodGhpcyk7XG4gICAgfVxuXG4gICAgLy8gRGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5kZXIgdGhlIHBvc2l0aXZlIHBhdGggaWYgdGhlIHZhbHVlIGlzIHRydXRoeSBhbmQgbm90IGVtcHR5LlxuICAgIC8vIFRoZSBgaW5jbHVkZVplcm9gIG9wdGlvbiBtYXkgYmUgc2V0IHRvIHRyZWF0IHRoZSBjb25kdGlvbmFsIGFzIHB1cmVseSBub3QgZW1wdHkgYmFzZWQgb24gdGhlXG4gICAgLy8gYmVoYXZpb3Igb2YgaXNFbXB0eS4gRWZmZWN0aXZlbHkgdGhpcyBkZXRlcm1pbmVzIGlmIDAgaXMgaGFuZGxlZCBieSB0aGUgcG9zaXRpdmUgcGF0aCBvciBuZWdhdGl2ZS5cbiAgICBpZiAoKCFvcHRpb25zLmhhc2guaW5jbHVkZVplcm8gJiYgIWNvbmRpdGlvbmFsKSB8fCBpc0VtcHR5KGNvbmRpdGlvbmFsKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuaW52ZXJzZSh0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuZm4odGhpcyk7XG4gICAgfVxuICB9KTtcblxuICBpbnN0YW5jZS5yZWdpc3RlckhlbHBlcigndW5sZXNzJywgZnVuY3Rpb24oY29uZGl0aW9uYWwsIG9wdGlvbnMpIHtcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCAhPSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCcjdW5sZXNzIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIHJldHVybiBpbnN0YW5jZS5oZWxwZXJzWydpZiddLmNhbGwodGhpcywgY29uZGl0aW9uYWwsIHtcbiAgICAgIGZuOiBvcHRpb25zLmludmVyc2UsXG4gICAgICBpbnZlcnNlOiBvcHRpb25zLmZuLFxuICAgICAgaGFzaDogb3B0aW9ucy5oYXNoXG4gICAgfSk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('log', function () /* message, options */{\n var args = [undefined],\n options = arguments[arguments.length - 1];\n for (var i = 0; i < arguments.length - 1; i++) {\n args.push(arguments[i]);\n }\n\n var level = 1;\n if (options.hash.level != null) {\n level = options.hash.level;\n } else if (options.data && options.data.level != null) {\n level = options.data.level;\n }\n args[0] = level;\n\n instance.log.apply(instance, args);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0NBQWlDO0FBQzlELFFBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM1QyxTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7QUFDN0MsVUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6Qjs7QUFFRCxRQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDZCxRQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtBQUM5QixXQUFLLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDNUIsTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO0FBQ3JELFdBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztLQUM1QjtBQUNELFFBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7O0FBRWhCLFlBQVEsQ0FBQyxHQUFHLE1BQUEsQ0FBWixRQUFRLEVBQVEsSUFBSSxDQUFDLENBQUM7R0FDdkIsQ0FBQyxDQUFDO0NBQ0oiLCJmaWxlIjoibG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJIZWxwZXIoJ2xvZycsIGZ1bmN0aW9uKC8qIG1lc3NhZ2UsIG9wdGlvbnMgKi8pIHtcbiAgICBsZXQgYXJncyA9IFt1bmRlZmluZWRdLFxuICAgICAgb3B0aW9ucyA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICB9XG5cbiAgICBsZXQgbGV2ZWwgPSAxO1xuICAgIGlmIChvcHRpb25zLmhhc2gubGV2ZWwgIT0gbnVsbCkge1xuICAgICAgbGV2ZWwgPSBvcHRpb25zLmhhc2gubGV2ZWw7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmRhdGEgJiYgb3B0aW9ucy5kYXRhLmxldmVsICE9IG51bGwpIHtcbiAgICAgIGxldmVsID0gb3B0aW9ucy5kYXRhLmxldmVsO1xuICAgIH1cbiAgICBhcmdzWzBdID0gbGV2ZWw7XG5cbiAgICBpbnN0YW5jZS5sb2coLi4uYXJncyk7XG4gIH0pO1xufVxuIl19\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (instance) {\n instance.registerHelper('lookup', function (obj, field, options) {\n if (!obj) {\n // Note for 5.0: Change to \"obj == null\" in 5.0\n return obj;\n }\n return options.lookupProperty(obj, field);\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvbG9va3VwLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxRQUFRLEVBQUU7QUFDaEMsVUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsVUFBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtBQUM5RCxRQUFJLENBQUMsR0FBRyxFQUFFOztBQUVSLGFBQU8sR0FBRyxDQUFDO0tBQ1o7QUFDRCxXQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNDLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6Imxvb2t1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCdsb29rdXAnLCBmdW5jdGlvbihvYmosIGZpZWxkLCBvcHRpb25zKSB7XG4gICAgaWYgKCFvYmopIHtcbiAgICAgIC8vIE5vdGUgZm9yIDUuMDogQ2hhbmdlIHRvIFwib2JqID09IG51bGxcIiBpbiA1LjBcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zLmxvb2t1cFByb3BlcnR5KG9iaiwgZmllbGQpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utils = require('../utils');\n\nvar _exception = require('../exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nexports['default'] = function (instance) {\n instance.registerHelper('with', function (context, options) {\n if (arguments.length != 2) {\n throw new _exception2['default']('#with requires exactly one argument');\n }\n if (_utils.isFunction(context)) {\n context = context.call(this);\n }\n\n var fn = options.fn;\n\n if (!_utils.isEmpty(context)) {\n var data = options.data;\n if (options.data && options.ids) {\n data = _utils.createFrame(options.data);\n data.contextPath = _utils.appendContextPath(options.data.contextPath, options.ids[0]);\n }\n\n return fn(context, {\n data: data,\n blockParams: _utils.blockParams([context], [data && data.contextPath])\n });\n } else {\n return options.inverse(this);\n }\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2hlbHBlcnMvd2l0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O3FCQU1PLFVBQVU7O3lCQUNLLGNBQWM7Ozs7cUJBRXJCLFVBQVMsUUFBUSxFQUFFO0FBQ2hDLFVBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFVBQVMsT0FBTyxFQUFFLE9BQU8sRUFBRTtBQUN6RCxRQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO0FBQ3pCLFlBQU0sMkJBQWMscUNBQXFDLENBQUMsQ0FBQztLQUM1RDtBQUNELFFBQUksa0JBQVcsT0FBTyxDQUFDLEVBQUU7QUFDdkIsYUFBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7O0FBRUQsUUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQzs7QUFFcEIsUUFBSSxDQUFDLGVBQVEsT0FBTyxDQUFDLEVBQUU7QUFDckIsVUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztBQUN4QixVQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUMvQixZQUFJLEdBQUcsbUJBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLFlBQUksQ0FBQyxXQUFXLEdBQUcseUJBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7T0FDSDs7QUFFRCxhQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUU7QUFDakIsWUFBSSxFQUFFLElBQUk7QUFDVixtQkFBVyxFQUFFLG1CQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO09BQ2hFLENBQUMsQ0FBQztLQUNKLE1BQU07QUFDTCxhQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDOUI7R0FDRixDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJ3aXRoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwZW5kQ29udGV4dFBhdGgsXG4gIGJsb2NrUGFyYW1zLFxuICBjcmVhdGVGcmFtZSxcbiAgaXNFbXB0eSxcbiAgaXNGdW5jdGlvblxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4uL2V4Y2VwdGlvbic7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKGluc3RhbmNlKSB7XG4gIGluc3RhbmNlLnJlZ2lzdGVySGVscGVyKCd3aXRoJywgZnVuY3Rpb24oY29udGV4dCwgb3B0aW9ucykge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoICE9IDIpIHtcbiAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJyN3aXRoIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50Jyk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKGNvbnRleHQpKSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5jYWxsKHRoaXMpO1xuICAgIH1cblxuICAgIGxldCBmbiA9IG9wdGlvbnMuZm47XG5cbiAgICBpZiAoIWlzRW1wdHkoY29udGV4dCkpIHtcbiAgICAgIGxldCBkYXRhID0gb3B0aW9ucy5kYXRhO1xuICAgICAgaWYgKG9wdGlvbnMuZGF0YSAmJiBvcHRpb25zLmlkcykge1xuICAgICAgICBkYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAgICAgZGF0YS5jb250ZXh0UGF0aCA9IGFwcGVuZENvbnRleHRQYXRoKFxuICAgICAgICAgIG9wdGlvbnMuZGF0YS5jb250ZXh0UGF0aCxcbiAgICAgICAgICBvcHRpb25zLmlkc1swXVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZm4oY29udGV4dCwge1xuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICBibG9ja1BhcmFtczogYmxvY2tQYXJhbXMoW2NvbnRleHRdLCBbZGF0YSAmJiBkYXRhLmNvbnRleHRQYXRoXSlcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5pbnZlcnNlKHRoaXMpO1xuICAgIH1cbiAgfSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\nexports.registerDefaultDecorators = registerDefaultDecorators;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _decoratorsInline = require('./decorators/inline');\n\nvar _decoratorsInline2 = _interopRequireDefault(_decoratorsInline);\n\nfunction registerDefaultDecorators(instance) {\n _decoratorsInline2['default'](instance);\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Z0NBQTJCLHFCQUFxQjs7OztBQUV6QyxTQUFTLHlCQUF5QixDQUFDLFFBQVEsRUFBRTtBQUNsRCxnQ0FBZSxRQUFRLENBQUMsQ0FBQztDQUMxQiIsImZpbGUiOiJkZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHJlZ2lzdGVySW5saW5lIGZyb20gJy4vZGVjb3JhdG9ycy9pbmxpbmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZWZhdWx0RGVjb3JhdG9ycyhpbnN0YW5jZSkge1xuICByZWdpc3RlcklubGluZShpbnN0YW5jZSk7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nvar _utils = require('../utils');\n\nexports['default'] = function (instance) {\n instance.registerDecorator('inline', function (fn, props, container, options) {\n var ret = fn;\n if (!props.partials) {\n props.partials = {};\n ret = function (context, options) {\n // Create a new partials stack frame prior to exec.\n var original = container.partials;\n container.partials = _utils.extend({}, original, props.partials);\n var ret = fn(context, options);\n container.partials = original;\n return ret;\n };\n }\n\n props.partials[options.args[0]] = options.fn;\n\n return ret;\n });\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2RlY29yYXRvcnMvaW5saW5lLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQXVCLFVBQVU7O3FCQUVsQixVQUFTLFFBQVEsRUFBRTtBQUNoQyxVQUFRLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFVBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO0FBQzNFLFFBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUNiLFFBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO0FBQ25CLFdBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLFNBQUcsR0FBRyxVQUFTLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRS9CLFlBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDbEMsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsY0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRCxZQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGlCQUFTLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUM5QixlQUFPLEdBQUcsQ0FBQztPQUNaLENBQUM7S0FDSDs7QUFFRCxTQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDOztBQUU3QyxXQUFPLEdBQUcsQ0FBQztHQUNaLENBQUMsQ0FBQztDQUNKIiwiZmlsZSI6ImlubGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4dGVuZCB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oaW5zdGFuY2UpIHtcbiAgaW5zdGFuY2UucmVnaXN0ZXJEZWNvcmF0b3IoJ2lubGluZScsIGZ1bmN0aW9uKGZuLCBwcm9wcywgY29udGFpbmVyLCBvcHRpb25zKSB7XG4gICAgbGV0IHJldCA9IGZuO1xuICAgIGlmICghcHJvcHMucGFydGlhbHMpIHtcbiAgICAgIHByb3BzLnBhcnRpYWxzID0ge307XG4gICAgICByZXQgPSBmdW5jdGlvbihjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyBwYXJ0aWFscyBzdGFjayBmcmFtZSBwcmlvciB0byBleGVjLlxuICAgICAgICBsZXQgb3JpZ2luYWwgPSBjb250YWluZXIucGFydGlhbHM7XG4gICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyA9IGV4dGVuZCh7fSwgb3JpZ2luYWwsIHByb3BzLnBhcnRpYWxzKTtcbiAgICAgICAgbGV0IHJldCA9IGZuKGNvbnRleHQsIG9wdGlvbnMpO1xuICAgICAgICBjb250YWluZXIucGFydGlhbHMgPSBvcmlnaW5hbDtcbiAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvcHMucGFydGlhbHNbb3B0aW9ucy5hcmdzWzBdXSA9IG9wdGlvbnMuZm47XG5cbiAgICByZXR1cm4gcmV0O1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.createNewLookupObject = createNewLookupObject;\n\nvar _utils = require('../utils');\n\n/**\n * Create a new object with \"null\"-prototype to avoid truthy results on prototype properties.\n * The resulting object can be used with \"object[property]\" to check if a property exists\n * @param {...object} sources a varargs parameter of source objects that will be merged\n * @returns {object}\n */\n\nfunction createNewLookupObject() {\n for (var _len = arguments.length, sources = Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n return _utils.extend.apply(undefined, [Object.create(null)].concat(sources));\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL2NyZWF0ZS1uZXctbG9va3VwLW9iamVjdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztxQkFBdUIsVUFBVTs7Ozs7Ozs7O0FBUTFCLFNBQVMscUJBQXFCLEdBQWE7b0NBQVQsT0FBTztBQUFQLFdBQU87OztBQUM5QyxTQUFPLGdDQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQUssT0FBTyxFQUFDLENBQUM7Q0FDaEQiLCJmaWxlIjoiY3JlYXRlLW5ldy1sb29rdXAtb2JqZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0ZW5kIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBvYmplY3Qgd2l0aCBcIm51bGxcIi1wcm90b3R5cGUgdG8gYXZvaWQgdHJ1dGh5IHJlc3VsdHMgb24gcHJvdG90eXBlIHByb3BlcnRpZXMuXG4gKiBUaGUgcmVzdWx0aW5nIG9iamVjdCBjYW4gYmUgdXNlZCB3aXRoIFwib2JqZWN0W3Byb3BlcnR5XVwiIHRvIGNoZWNrIGlmIGEgcHJvcGVydHkgZXhpc3RzXG4gKiBAcGFyYW0gey4uLm9iamVjdH0gc291cmNlcyBhIHZhcmFyZ3MgcGFyYW1ldGVyIG9mIHNvdXJjZSBvYmplY3RzIHRoYXQgd2lsbCBiZSBtZXJnZWRcbiAqIEByZXR1cm5zIHtvYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOZXdMb29rdXBPYmplY3QoLi4uc291cmNlcykge1xuICByZXR1cm4gZXh0ZW5kKE9iamVjdC5jcmVhdGUobnVsbCksIC4uLnNvdXJjZXMpO1xufVxuIl19\n","// Build out our basic SafeString type\n'use strict';\n\nexports.__esModule = true;\nfunction SafeString(string) {\n this.string = string;\n}\n\nSafeString.prototype.toString = SafeString.prototype.toHTML = function () {\n return '' + this.string;\n};\n\nexports['default'] = SafeString;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3NhZmUtc3RyaW5nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUU7QUFDMUIsTUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDdEI7O0FBRUQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsWUFBVztBQUN2RSxTQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0NBQ3pCLENBQUM7O3FCQUVhLFVBQVUiLCJmaWxlIjoic2FmZS1zdHJpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBCdWlsZCBvdXQgb3VyIGJhc2ljIFNhZmVTdHJpbmcgdHlwZVxuZnVuY3Rpb24gU2FmZVN0cmluZyhzdHJpbmcpIHtcbiAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG59XG5cblNhZmVTdHJpbmcucHJvdG90eXBlLnRvU3RyaW5nID0gU2FmZVN0cmluZy5wcm90b3R5cGUudG9IVE1MID0gZnVuY3Rpb24oKSB7XG4gIHJldHVybiAnJyArIHRoaXMuc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU2FmZVN0cmluZztcbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.checkRevision = checkRevision;\nexports.template = template;\nexports.wrapProgram = wrapProgram;\nexports.resolvePartial = resolvePartial;\nexports.invokePartial = invokePartial;\nexports.noop = noop;\n// istanbul ignore next\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n// istanbul ignore next\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utils = require('./utils');\n\nvar Utils = _interopRequireWildcard(_utils);\n\nvar _exception = require('./exception');\n\nvar _exception2 = _interopRequireDefault(_exception);\n\nvar _base = require('./base');\n\nvar _helpers = require('./helpers');\n\nvar _internalWrapHelper = require('./internal/wrapHelper');\n\nvar _internalProtoAccess = require('./internal/proto-access');\n\nfunction checkRevision(compilerInfo) {\n var compilerRevision = compilerInfo && compilerInfo[0] || 1,\n currentRevision = _base.COMPILER_REVISION;\n\n if (compilerRevision >= _base.LAST_COMPATIBLE_COMPILER_REVISION && compilerRevision <= _base.COMPILER_REVISION) {\n return;\n }\n\n if (compilerRevision < _base.LAST_COMPATIBLE_COMPILER_REVISION) {\n var runtimeVersions = _base.REVISION_CHANGES[currentRevision],\n compilerVersions = _base.REVISION_CHANGES[compilerRevision];\n throw new _exception2['default']('Template was precompiled with an older version of Handlebars than the current runtime. ' + 'Please update your precompiler to a newer version (' + runtimeVersions + ') or downgrade your runtime to an older version (' + compilerVersions + ').');\n } else {\n // Use the embedded version info since the runtime doesn't know about this revision yet\n throw new _exception2['default']('Template was precompiled with a newer version of Handlebars than the current runtime. ' + 'Please update your runtime to a newer version (' + compilerInfo[1] + ').');\n }\n}\n\nfunction template(templateSpec, env) {\n /* istanbul ignore next */\n if (!env) {\n throw new _exception2['default']('No environment passed to template');\n }\n if (!templateSpec || !templateSpec.main) {\n throw new _exception2['default']('Unknown template object: ' + typeof templateSpec);\n }\n\n templateSpec.main.decorator = templateSpec.main_d;\n\n // Note: Using env.VM references rather than local var references throughout this section to allow\n // for external users to override these as pseudo-supported APIs.\n env.VM.checkRevision(templateSpec.compiler);\n\n // backwards compatibility for precompiled templates with compiler-version 7 (<4.3.0)\n var templateWasPrecompiledWithCompilerV7 = templateSpec.compiler && templateSpec.compiler[0] === 7;\n\n function invokePartialWrapper(partial, context, options) {\n if (options.hash) {\n context = Utils.extend({}, context, options.hash);\n if (options.ids) {\n options.ids[0] = true;\n }\n }\n partial = env.VM.resolvePartial.call(this, partial, context, options);\n\n var extendedOptions = Utils.extend({}, options, {\n hooks: this.hooks,\n protoAccessControl: this.protoAccessControl\n });\n\n var result = env.VM.invokePartial.call(this, partial, context, extendedOptions);\n\n if (result == null && env.compile) {\n options.partials[options.name] = env.compile(partial, templateSpec.compilerOptions, env);\n result = options.partials[options.name](context, extendedOptions);\n }\n if (result != null) {\n if (options.indent) {\n var lines = result.split('\\n');\n for (var i = 0, l = lines.length; i < l; i++) {\n if (!lines[i] && i + 1 === l) {\n break;\n }\n\n lines[i] = options.indent + lines[i];\n }\n result = lines.join('\\n');\n }\n return result;\n } else {\n throw new _exception2['default']('The partial ' + options.name + ' could not be compiled when running in runtime-only mode');\n }\n }\n\n // Just add water\n var container = {\n strict: function strict(obj, name, loc) {\n if (!obj || !(name in obj)) {\n throw new _exception2['default']('\"' + name + '\" not defined in ' + obj, {\n loc: loc\n });\n }\n return obj[name];\n },\n lookupProperty: function lookupProperty(parent, propertyName) {\n var result = parent[propertyName];\n if (result == null) {\n return result;\n }\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return result;\n }\n\n if (_internalProtoAccess.resultIsAllowed(result, container.protoAccessControl, propertyName)) {\n return result;\n }\n return undefined;\n },\n lookup: function lookup(depths, name) {\n var len = depths.length;\n for (var i = 0; i < len; i++) {\n var result = depths[i] && container.lookupProperty(depths[i], name);\n if (result != null) {\n return depths[i][name];\n }\n }\n },\n lambda: function lambda(current, context) {\n return typeof current === 'function' ? current.call(context) : current;\n },\n\n escapeExpression: Utils.escapeExpression,\n invokePartial: invokePartialWrapper,\n\n fn: function fn(i) {\n var ret = templateSpec[i];\n ret.decorator = templateSpec[i + '_d'];\n return ret;\n },\n\n programs: [],\n program: function program(i, data, declaredBlockParams, blockParams, depths) {\n var programWrapper = this.programs[i],\n fn = this.fn(i);\n if (data || depths || blockParams || declaredBlockParams) {\n programWrapper = wrapProgram(this, i, fn, data, declaredBlockParams, blockParams, depths);\n } else if (!programWrapper) {\n programWrapper = this.programs[i] = wrapProgram(this, i, fn);\n }\n return programWrapper;\n },\n\n data: function data(value, depth) {\n while (value && depth--) {\n value = value._parent;\n }\n return value;\n },\n mergeIfNeeded: function mergeIfNeeded(param, common) {\n var obj = param || common;\n\n if (param && common && param !== common) {\n obj = Utils.extend({}, common, param);\n }\n\n return obj;\n },\n // An empty object to use as replacement for null-contexts\n nullContext: Object.seal({}),\n\n noop: env.VM.noop,\n compilerInfo: templateSpec.compiler\n };\n\n function ret(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var data = options.data;\n\n ret._setup(options);\n if (!options.partial && templateSpec.useData) {\n data = initData(context, data);\n }\n var depths = undefined,\n blockParams = templateSpec.useBlockParams ? [] : undefined;\n if (templateSpec.useDepths) {\n if (options.depths) {\n depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;\n } else {\n depths = [context];\n }\n }\n\n function main(context /*, options*/) {\n return '' + templateSpec.main(container, context, container.helpers, container.partials, data, blockParams, depths);\n }\n\n main = executeDecorators(templateSpec.main, main, container, options.depths || [], data, blockParams);\n return main(context, options);\n }\n\n ret.isTop = true;\n\n ret._setup = function (options) {\n if (!options.partial) {\n var mergedHelpers = Utils.extend({}, env.helpers, options.helpers);\n wrapHelpersToPassLookupProperty(mergedHelpers, container);\n container.helpers = mergedHelpers;\n\n if (templateSpec.usePartial) {\n // Use mergeIfNeeded here to prevent compiling global partials multiple times\n container.partials = container.mergeIfNeeded(options.partials, env.partials);\n }\n if (templateSpec.usePartial || templateSpec.useDecorators) {\n container.decorators = Utils.extend({}, env.decorators, options.decorators);\n }\n\n container.hooks = {};\n container.protoAccessControl = _internalProtoAccess.createProtoAccessControl(options);\n\n var keepHelperInHelpers = options.allowCallsToHelperMissing || templateWasPrecompiledWithCompilerV7;\n _helpers.moveHelperToHooks(container, 'helperMissing', keepHelperInHelpers);\n _helpers.moveHelperToHooks(container, 'blockHelperMissing', keepHelperInHelpers);\n } else {\n container.protoAccessControl = options.protoAccessControl; // internal option\n container.helpers = options.helpers;\n container.partials = options.partials;\n container.decorators = options.decorators;\n container.hooks = options.hooks;\n }\n };\n\n ret._child = function (i, data, blockParams, depths) {\n if (templateSpec.useBlockParams && !blockParams) {\n throw new _exception2['default']('must pass block params');\n }\n if (templateSpec.useDepths && !depths) {\n throw new _exception2['default']('must pass parent depths');\n }\n\n return wrapProgram(container, i, templateSpec[i], data, 0, blockParams, depths);\n };\n return ret;\n}\n\nfunction wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {\n function prog(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var currentDepths = depths;\n if (depths && context != depths[0] && !(context === container.nullContext && depths[0] === null)) {\n currentDepths = [context].concat(depths);\n }\n\n return fn(container, context, container.helpers, container.partials, options.data || data, blockParams && [options.blockParams].concat(blockParams), currentDepths);\n }\n\n prog = executeDecorators(fn, prog, container, depths, data, blockParams);\n\n prog.program = i;\n prog.depth = depths ? depths.length : 0;\n prog.blockParams = declaredBlockParams || 0;\n return prog;\n}\n\n/**\n * This is currently part of the official API, therefore implementation details should not be changed.\n */\n\nfunction resolvePartial(partial, context, options) {\n if (!partial) {\n if (options.name === '@partial-block') {\n partial = options.data['partial-block'];\n } else {\n partial = options.partials[options.name];\n }\n } else if (!partial.call && !options.name) {\n // This is a dynamic partial that returned a string\n options.name = partial;\n partial = options.partials[partial];\n }\n return partial;\n}\n\nfunction invokePartial(partial, context, options) {\n // Use the current closure context to save the partial-block if this partial\n var currentPartialBlock = options.data && options.data['partial-block'];\n options.partial = true;\n if (options.ids) {\n options.data.contextPath = options.ids[0] || options.data.contextPath;\n }\n\n var partialBlock = undefined;\n if (options.fn && options.fn !== noop) {\n (function () {\n options.data = _base.createFrame(options.data);\n // Wrapper function to get access to currentPartialBlock from the closure\n var fn = options.fn;\n partialBlock = options.data['partial-block'] = function partialBlockWrapper(context) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n // Restore the partial-block from the closure for the execution of the block\n // i.e. the part inside the block of the partial call.\n options.data = _base.createFrame(options.data);\n options.data['partial-block'] = currentPartialBlock;\n return fn(context, options);\n };\n if (fn.partials) {\n options.partials = Utils.extend({}, options.partials, fn.partials);\n }\n })();\n }\n\n if (partial === undefined && partialBlock) {\n partial = partialBlock;\n }\n\n if (partial === undefined) {\n throw new _exception2['default']('The partial ' + options.name + ' could not be found');\n } else if (partial instanceof Function) {\n return partial(context, options);\n }\n}\n\nfunction noop() {\n return '';\n}\n\nfunction initData(context, data) {\n if (!data || !('root' in data)) {\n data = data ? _base.createFrame(data) : {};\n data.root = context;\n }\n return data;\n}\n\nfunction executeDecorators(fn, prog, container, depths, data, blockParams) {\n if (fn.decorator) {\n var props = {};\n prog = fn.decorator(prog, props, container, depths && depths[0], data, blockParams, depths);\n Utils.extend(prog, props);\n }\n return prog;\n}\n\nfunction wrapHelpersToPassLookupProperty(mergedHelpers, container) {\n Object.keys(mergedHelpers).forEach(function (helperName) {\n var helper = mergedHelpers[helperName];\n mergedHelpers[helperName] = passLookupPropertyOption(helper, container);\n });\n}\n\nfunction passLookupPropertyOption(helper, container) {\n var lookupProperty = container.lookupProperty;\n return _internalWrapHelper.wrapHelper(helper, function (options) {\n return Utils.extend({ lookupProperty: lookupProperty }, options);\n });\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL3J1bnRpbWUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7cUJBQXVCLFNBQVM7O0lBQXBCLEtBQUs7O3lCQUNLLGFBQWE7Ozs7b0JBTTVCLFFBQVE7O3VCQUNtQixXQUFXOztrQ0FDbEIsdUJBQXVCOzttQ0FJM0MseUJBQXlCOztBQUV6QixTQUFTLGFBQWEsQ0FBQyxZQUFZLEVBQUU7QUFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxBQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUssQ0FBQztNQUM3RCxlQUFlLDBCQUFvQixDQUFDOztBQUV0QyxNQUNFLGdCQUFnQiwyQ0FBcUMsSUFDckQsZ0JBQWdCLDJCQUFxQixFQUNyQztBQUNBLFdBQU87R0FDUjs7QUFFRCxNQUFJLGdCQUFnQiwwQ0FBb0MsRUFBRTtBQUN4RCxRQUFNLGVBQWUsR0FBRyx1QkFBaUIsZUFBZSxDQUFDO1FBQ3ZELGdCQUFnQixHQUFHLHVCQUFpQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3hELFVBQU0sMkJBQ0oseUZBQXlGLEdBQ3ZGLHFEQUFxRCxHQUNyRCxlQUFlLEdBQ2YsbURBQW1ELEdBQ25ELGdCQUFnQixHQUNoQixJQUFJLENBQ1AsQ0FBQztHQUNILE1BQU07O0FBRUwsVUFBTSwyQkFDSix3RkFBd0YsR0FDdEYsaURBQWlELEdBQ2pELFlBQVksQ0FBQyxDQUFDLENBQUMsR0FDZixJQUFJLENBQ1AsQ0FBQztHQUNIO0NBQ0Y7O0FBRU0sU0FBUyxRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTs7QUFFMUMsTUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNSLFVBQU0sMkJBQWMsbUNBQW1DLENBQUMsQ0FBQztHQUMxRDtBQUNELE1BQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFO0FBQ3ZDLFVBQU0sMkJBQWMsMkJBQTJCLEdBQUcsT0FBTyxZQUFZLENBQUMsQ0FBQztHQUN4RTs7QUFFRCxjQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDOzs7O0FBSWxELEtBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7O0FBRzVDLE1BQU0sb0NBQW9DLEdBQ3hDLFlBQVksQ0FBQyxRQUFRLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7O0FBRTFELFdBQVMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDdkQsUUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ2hCLGFBQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELFVBQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLGVBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO09BQ3ZCO0tBQ0Y7QUFDRCxXQUFPLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDOztBQUV0RSxRQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUU7QUFDOUMsV0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO0FBQ2pCLHdCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7S0FDNUMsQ0FBQyxDQUFDOztBQUVILFFBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDcEMsSUFBSSxFQUNKLE9BQU8sRUFDUCxPQUFPLEVBQ1AsZUFBZSxDQUNoQixDQUFDOztBQUVGLFFBQUksTUFBTSxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQzFDLE9BQU8sRUFDUCxZQUFZLENBQUMsZUFBZSxFQUM1QixHQUFHLENBQ0osQ0FBQztBQUNGLFlBQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7S0FDbkU7QUFDRCxRQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDbEIsVUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO0FBQ2xCLFlBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsYUFBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtBQUM1QyxjQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO0FBQzVCLGtCQUFNO1dBQ1A7O0FBRUQsZUFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0FBQ0QsY0FBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7T0FDM0I7QUFDRCxhQUFPLE1BQU0sQ0FBQztLQUNmLE1BQU07QUFDTCxZQUFNLDJCQUNKLGNBQWMsR0FDWixPQUFPLENBQUMsSUFBSSxHQUNaLDBEQUEwRCxDQUM3RCxDQUFDO0tBQ0g7R0FDRjs7O0FBR0QsTUFBSSxTQUFTLEdBQUc7QUFDZCxVQUFNLEVBQUUsZ0JBQVMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7QUFDL0IsVUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxHQUFHLENBQUEsQUFBQyxFQUFFO0FBQzFCLGNBQU0sMkJBQWMsR0FBRyxHQUFHLElBQUksR0FBRyxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7QUFDMUQsYUFBRyxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7T0FDSjtBQUNELGFBQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2xCO0FBQ0Qsa0JBQWMsRUFBRSx3QkFBUyxNQUFNLEVBQUUsWUFBWSxFQUFFO0FBQzdDLFVBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxVQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDbEIsZUFBTyxNQUFNLENBQUM7T0FDZjtBQUNELFVBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsRUFBRTtBQUM5RCxlQUFPLE1BQU0sQ0FBQztPQUNmOztBQUVELFVBQUkscUNBQWdCLE1BQU0sRUFBRSxTQUFTLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEVBQUU7QUFDdkUsZUFBTyxNQUFNLENBQUM7T0FDZjtBQUNELGFBQU8sU0FBUyxDQUFDO0tBQ2xCO0FBQ0QsVUFBTSxFQUFFLGdCQUFTLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDN0IsVUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMxQixXQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzVCLFlBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwRSxZQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUU7QUFDbEIsaUJBQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO09BQ0Y7S0FDRjtBQUNELFVBQU0sRUFBRSxnQkFBUyxPQUFPLEVBQUUsT0FBTyxFQUFFO0FBQ2pDLGFBQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQ3hFOztBQUVELG9CQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7QUFDeEMsaUJBQWEsRUFBRSxvQkFBb0I7O0FBRW5DLE1BQUUsRUFBRSxZQUFTLENBQUMsRUFBRTtBQUNkLFVBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxQixTQUFHLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDdkMsYUFBTyxHQUFHLENBQUM7S0FDWjs7QUFFRCxZQUFRLEVBQUUsRUFBRTtBQUNaLFdBQU8sRUFBRSxpQkFBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7QUFDbkUsVUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7VUFDbkMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsVUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLFdBQVcsSUFBSSxtQkFBbUIsRUFBRTtBQUN4RCxzQkFBYyxHQUFHLFdBQVcsQ0FDMUIsSUFBSSxFQUNKLENBQUMsRUFDRCxFQUFFLEVBQ0YsSUFBSSxFQUNKLG1CQUFtQixFQUNuQixXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQUM7T0FDSCxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUU7QUFDMUIsc0JBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO09BQzlEO0FBQ0QsYUFBTyxjQUFjLENBQUM7S0FDdkI7O0FBRUQsUUFBSSxFQUFFLGNBQVMsS0FBSyxFQUFFLEtBQUssRUFBRTtBQUMzQixhQUFPLEtBQUssSUFBSSxLQUFLLEVBQUUsRUFBRTtBQUN2QixhQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztPQUN2QjtBQUNELGFBQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDRCxpQkFBYSxFQUFFLHVCQUFTLEtBQUssRUFBRSxNQUFNLEVBQUU7QUFDckMsVUFBSSxHQUFHLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQzs7QUFFMUIsVUFBSSxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUU7QUFDdkMsV0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztPQUN2Qzs7QUFFRCxhQUFPLEdBQUcsQ0FBQztLQUNaOztBQUVELGVBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzs7QUFFNUIsUUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSTtBQUNqQixnQkFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRO0dBQ3BDLENBQUM7O0FBRUYsV0FBUyxHQUFHLENBQUMsT0FBTyxFQUFnQjtRQUFkLE9BQU8seURBQUcsRUFBRTs7QUFDaEMsUUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQzs7QUFFeEIsT0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwQixRQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFO0FBQzVDLFVBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ2hDO0FBQ0QsUUFBSSxNQUFNLFlBQUE7UUFDUixXQUFXLEdBQUcsWUFBWSxDQUFDLGNBQWMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDO0FBQzdELFFBQUksWUFBWSxDQUFDLFNBQVMsRUFBRTtBQUMxQixVQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7QUFDbEIsY0FBTSxHQUNKLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUN4QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQ2hDLE9BQU8sQ0FBQyxNQUFNLENBQUM7T0FDdEIsTUFBTTtBQUNMLGNBQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO09BQ3BCO0tBQ0Y7O0FBRUQsYUFBUyxJQUFJLENBQUMsT0FBTyxnQkFBZ0I7QUFDbkMsYUFDRSxFQUFFLEdBQ0YsWUFBWSxDQUFDLElBQUksQ0FDZixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsQ0FBQyxPQUFPLEVBQ2pCLFNBQVMsQ0FBQyxRQUFRLEVBQ2xCLElBQUksRUFDSixXQUFXLEVBQ1gsTUFBTSxDQUNQLENBQ0Q7S0FDSDs7QUFFRCxRQUFJLEdBQUcsaUJBQWlCLENBQ3RCLFlBQVksQ0FBQyxJQUFJLEVBQ2pCLElBQUksRUFDSixTQUFTLEVBQ1QsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQ3BCLElBQUksRUFDSixXQUFXLENBQ1osQ0FBQztBQUNGLFdBQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztHQUMvQjs7QUFFRCxLQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQzs7QUFFakIsS0FBRyxDQUFDLE1BQU0sR0FBRyxVQUFTLE9BQU8sRUFBRTtBQUM3QixRQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtBQUNwQixVQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNuRSxxQ0FBK0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDMUQsZUFBUyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUM7O0FBRWxDLFVBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTs7QUFFM0IsaUJBQVMsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FDMUMsT0FBTyxDQUFDLFFBQVEsRUFDaEIsR0FBRyxDQUFDLFFBQVEsQ0FDYixDQUFDO09BQ0g7QUFDRCxVQUFJLFlBQVksQ0FBQyxVQUFVLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRTtBQUN6RCxpQkFBUyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNqQyxFQUFFLEVBQ0YsR0FBRyxDQUFDLFVBQVUsRUFDZCxPQUFPLENBQUMsVUFBVSxDQUNuQixDQUFDO09BQ0g7O0FBRUQsZUFBUyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDckIsZUFBUyxDQUFDLGtCQUFrQixHQUFHLDhDQUF5QixPQUFPLENBQUMsQ0FBQzs7QUFFakUsVUFBSSxtQkFBbUIsR0FDckIsT0FBTyxDQUFDLHlCQUF5QixJQUNqQyxvQ0FBb0MsQ0FBQztBQUN2QyxpQ0FBa0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ25FLGlDQUFrQixTQUFTLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztLQUN6RSxNQUFNO0FBQ0wsZUFBUyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztBQUMxRCxlQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDcEMsZUFBUyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO0FBQ3RDLGVBQVMsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUMxQyxlQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDakM7R0FDRixDQUFDOztBQUVGLEtBQUcsQ0FBQyxNQUFNLEdBQUcsVUFBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7QUFDbEQsUUFBSSxZQUFZLENBQUMsY0FBYyxJQUFJLENBQUMsV0FBVyxFQUFFO0FBQy9DLFlBQU0sMkJBQWMsd0JBQXdCLENBQUMsQ0FBQztLQUMvQztBQUNELFFBQUksWUFBWSxDQUFDLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNyQyxZQUFNLDJCQUFjLHlCQUF5QixDQUFDLENBQUM7S0FDaEQ7O0FBRUQsV0FBTyxXQUFXLENBQ2hCLFNBQVMsRUFDVCxDQUFDLEVBQ0QsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUNmLElBQUksRUFDSixDQUFDLEVBQ0QsV0FBVyxFQUNYLE1BQU0sQ0FDUCxDQUFDO0dBQ0gsQ0FBQztBQUNGLFNBQU8sR0FBRyxDQUFDO0NBQ1o7O0FBRU0sU0FBUyxXQUFXLENBQ3pCLFNBQVMsRUFDVCxDQUFDLEVBQ0QsRUFBRSxFQUNGLElBQUksRUFDSixtQkFBbUIsRUFDbkIsV0FBVyxFQUNYLE1BQU0sRUFDTjtBQUNBLFdBQVMsSUFBSSxDQUFDLE9BQU8sRUFBZ0I7UUFBZCxPQUFPLHlEQUFHLEVBQUU7O0FBQ2pDLFFBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUMzQixRQUNFLE1BQU0sSUFDTixPQUFPLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUNwQixFQUFFLE9BQU8sS0FBSyxTQUFTLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUEsQUFBQyxFQUMxRDtBQUNBLG1CQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDMUM7O0FBRUQsV0FBTyxFQUFFLENBQ1AsU0FBUyxFQUNULE9BQU8sRUFDUCxTQUFTLENBQUMsT0FBTyxFQUNqQixTQUFTLENBQUMsUUFBUSxFQUNsQixPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksRUFDcEIsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDeEQsYUFBYSxDQUNkLENBQUM7R0FDSDs7QUFFRCxNQUFJLEdBQUcsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQzs7QUFFekUsTUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBSSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLENBQUM7QUFDNUMsU0FBTyxJQUFJLENBQUM7Q0FDYjs7Ozs7O0FBS00sU0FBUyxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7QUFDeEQsTUFBSSxDQUFDLE9BQU8sRUFBRTtBQUNaLFFBQUksT0FBTyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsRUFBRTtBQUNyQyxhQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztLQUN6QyxNQUFNO0FBQ0wsYUFBTyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQzFDO0dBQ0YsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7O0FBRXpDLFdBQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0FBQ3ZCLFdBQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ3JDO0FBQ0QsU0FBTyxPQUFPLENBQUM7Q0FDaEI7O0FBRU0sU0FBUyxhQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUU7O0FBRXZELE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzFFLFNBQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ3ZCLE1BQUksT0FBTyxDQUFDLEdBQUcsRUFBRTtBQUNmLFdBQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7R0FDdkU7O0FBRUQsTUFBSSxZQUFZLFlBQUEsQ0FBQztBQUNqQixNQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7O0FBQ3JDLGFBQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDOztBQUV6QyxVQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ3BCLGtCQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxTQUFTLG1CQUFtQixDQUN6RSxPQUFPLEVBRVA7WUFEQSxPQUFPLHlEQUFHLEVBQUU7Ozs7QUFJWixlQUFPLENBQUMsSUFBSSxHQUFHLGtCQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN6QyxlQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO0FBQ3BELGVBQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztPQUM3QixDQUFDO0FBQ0YsVUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0FBQ2YsZUFBTyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztPQUNwRTs7R0FDRjs7QUFFRCxNQUFJLE9BQU8sS0FBSyxTQUFTLElBQUksWUFBWSxFQUFFO0FBQ3pDLFdBQU8sR0FBRyxZQUFZLENBQUM7R0FDeEI7O0FBRUQsTUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO0FBQ3pCLFVBQU0sMkJBQWMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcscUJBQXFCLENBQUMsQ0FBQztHQUM1RSxNQUFNLElBQUksT0FBTyxZQUFZLFFBQVEsRUFBRTtBQUN0QyxXQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7R0FDbEM7Q0FDRjs7QUFFTSxTQUFTLElBQUksR0FBRztBQUNyQixTQUFPLEVBQUUsQ0FBQztDQUNYOztBQUVELFNBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDL0IsTUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUEsQUFBQyxFQUFFO0FBQzlCLFFBQUksR0FBRyxJQUFJLEdBQUcsa0JBQVksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ3JDLFFBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0dBQ3JCO0FBQ0QsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3pFLE1BQUksRUFBRSxDQUFDLFNBQVMsRUFBRTtBQUNoQixRQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7QUFDZixRQUFJLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FDakIsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFDbkIsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLENBQ1AsQ0FBQztBQUNGLFNBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQzNCO0FBQ0QsU0FBTyxJQUFJLENBQUM7Q0FDYjs7QUFFRCxTQUFTLCtCQUErQixDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUU7QUFDakUsUUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxVQUFVLEVBQUk7QUFDL0MsUUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZDLGlCQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3pFLENBQUMsQ0FBQztDQUNKOztBQUVELFNBQVMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRTtBQUNuRCxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO0FBQ2hELFNBQU8sK0JBQVcsTUFBTSxFQUFFLFVBQUEsT0FBTyxFQUFJO0FBQ25DLFdBQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsRUFBZCxjQUFjLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztHQUNsRCxDQUFDLENBQUM7Q0FDSiIsImZpbGUiOiJydW50aW1lLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gJy4vZXhjZXB0aW9uJztcbmltcG9ydCB7XG4gIENPTVBJTEVSX1JFVklTSU9OLFxuICBjcmVhdGVGcmFtZSxcbiAgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OLFxuICBSRVZJU0lPTl9DSEFOR0VTXG59IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBtb3ZlSGVscGVyVG9Ib29rcyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyB3cmFwSGVscGVyIH0gZnJvbSAnLi9pbnRlcm5hbC93cmFwSGVscGVyJztcbmltcG9ydCB7XG4gIGNyZWF0ZVByb3RvQWNjZXNzQ29udHJvbCxcbiAgcmVzdWx0SXNBbGxvd2VkXG59IGZyb20gJy4vaW50ZXJuYWwvcHJvdG8tYWNjZXNzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUmV2aXNpb24oY29tcGlsZXJJbmZvKSB7XG4gIGNvbnN0IGNvbXBpbGVyUmV2aXNpb24gPSAoY29tcGlsZXJJbmZvICYmIGNvbXBpbGVySW5mb1swXSkgfHwgMSxcbiAgICBjdXJyZW50UmV2aXNpb24gPSBDT01QSUxFUl9SRVZJU0lPTjtcblxuICBpZiAoXG4gICAgY29tcGlsZXJSZXZpc2lvbiA+PSBMQVNUX0NPTVBBVElCTEVfQ09NUElMRVJfUkVWSVNJT04gJiZcbiAgICBjb21waWxlclJldmlzaW9uIDw9IENPTVBJTEVSX1JFVklTSU9OXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjb21waWxlclJldmlzaW9uIDwgTEFTVF9DT01QQVRJQkxFX0NPTVBJTEVSX1JFVklTSU9OKSB7XG4gICAgY29uc3QgcnVudGltZVZlcnNpb25zID0gUkVWSVNJT05fQ0hBTkdFU1tjdXJyZW50UmV2aXNpb25dLFxuICAgICAgY29tcGlsZXJWZXJzaW9ucyA9IFJFVklTSU9OX0NIQU5HRVNbY29tcGlsZXJSZXZpc2lvbl07XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhbiBvbGRlciB2ZXJzaW9uIG9mIEhhbmRsZWJhcnMgdGhhbiB0aGUgY3VycmVudCBydW50aW1lLiAnICtcbiAgICAgICAgJ1BsZWFzZSB1cGRhdGUgeW91ciBwcmVjb21waWxlciB0byBhIG5ld2VyIHZlcnNpb24gKCcgK1xuICAgICAgICBydW50aW1lVmVyc2lvbnMgK1xuICAgICAgICAnKSBvciBkb3duZ3JhZGUgeW91ciBydW50aW1lIHRvIGFuIG9sZGVyIHZlcnNpb24gKCcgK1xuICAgICAgICBjb21waWxlclZlcnNpb25zICtcbiAgICAgICAgJykuJ1xuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIHRoZSBlbWJlZGRlZCB2ZXJzaW9uIGluZm8gc2luY2UgdGhlIHJ1bnRpbWUgZG9lc24ndCBrbm93IGFib3V0IHRoaXMgcmV2aXNpb24geWV0XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICdUZW1wbGF0ZSB3YXMgcHJlY29tcGlsZWQgd2l0aCBhIG5ld2VyIHZlcnNpb24gb2YgSGFuZGxlYmFycyB0aGFuIHRoZSBjdXJyZW50IHJ1bnRpbWUuICcgK1xuICAgICAgICAnUGxlYXNlIHVwZGF0ZSB5b3VyIHJ1bnRpbWUgdG8gYSBuZXdlciB2ZXJzaW9uICgnICtcbiAgICAgICAgY29tcGlsZXJJbmZvWzFdICtcbiAgICAgICAgJykuJ1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlbXBsYXRlKHRlbXBsYXRlU3BlYywgZW52KSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghZW52KSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignTm8gZW52aXJvbm1lbnQgcGFzc2VkIHRvIHRlbXBsYXRlJyk7XG4gIH1cbiAgaWYgKCF0ZW1wbGF0ZVNwZWMgfHwgIXRlbXBsYXRlU3BlYy5tYWluKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVW5rbm93biB0ZW1wbGF0ZSBvYmplY3Q6ICcgKyB0eXBlb2YgdGVtcGxhdGVTcGVjKTtcbiAgfVxuXG4gIHRlbXBsYXRlU3BlYy5tYWluLmRlY29yYXRvciA9IHRlbXBsYXRlU3BlYy5tYWluX2Q7XG5cbiAgLy8gTm90ZTogVXNpbmcgZW52LlZNIHJlZmVyZW5jZXMgcmF0aGVyIHRoYW4gbG9jYWwgdmFyIHJlZmVyZW5jZXMgdGhyb3VnaG91dCB0aGlzIHNlY3Rpb24gdG8gYWxsb3dcbiAgLy8gZm9yIGV4dGVybmFsIHVzZXJzIHRvIG92ZXJyaWRlIHRoZXNlIGFzIHBzZXVkby1zdXBwb3J0ZWQgQVBJcy5cbiAgZW52LlZNLmNoZWNrUmV2aXNpb24odGVtcGxhdGVTcGVjLmNvbXBpbGVyKTtcblxuICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgcHJlY29tcGlsZWQgdGVtcGxhdGVzIHdpdGggY29tcGlsZXItdmVyc2lvbiA3ICg8NC4zLjApXG4gIGNvbnN0IHRlbXBsYXRlV2FzUHJlY29tcGlsZWRXaXRoQ29tcGlsZXJWNyA9XG4gICAgdGVtcGxhdGVTcGVjLmNvbXBpbGVyICYmIHRlbXBsYXRlU3BlYy5jb21waWxlclswXSA9PT0gNztcblxuICBmdW5jdGlvbiBpbnZva2VQYXJ0aWFsV3JhcHBlcihwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbnMuaGFzaCkge1xuICAgICAgY29udGV4dCA9IFV0aWxzLmV4dGVuZCh7fSwgY29udGV4dCwgb3B0aW9ucy5oYXNoKTtcbiAgICAgIGlmIChvcHRpb25zLmlkcykge1xuICAgICAgICBvcHRpb25zLmlkc1swXSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHBhcnRpYWwgPSBlbnYuVk0ucmVzb2x2ZVBhcnRpYWwuY2FsbCh0aGlzLCBwYXJ0aWFsLCBjb250ZXh0LCBvcHRpb25zKTtcblxuICAgIGxldCBleHRlbmRlZE9wdGlvbnMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMsIHtcbiAgICAgIGhvb2tzOiB0aGlzLmhvb2tzLFxuICAgICAgcHJvdG9BY2Nlc3NDb250cm9sOiB0aGlzLnByb3RvQWNjZXNzQ29udHJvbFxuICAgIH0pO1xuXG4gICAgbGV0IHJlc3VsdCA9IGVudi5WTS5pbnZva2VQYXJ0aWFsLmNhbGwoXG4gICAgICB0aGlzLFxuICAgICAgcGFydGlhbCxcbiAgICAgIGNvbnRleHQsXG4gICAgICBleHRlbmRlZE9wdGlvbnNcbiAgICApO1xuXG4gICAgaWYgKHJlc3VsdCA9PSBudWxsICYmIGVudi5jb21waWxlKSB7XG4gICAgICBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV0gPSBlbnYuY29tcGlsZShcbiAgICAgICAgcGFydGlhbCxcbiAgICAgICAgdGVtcGxhdGVTcGVjLmNvbXBpbGVyT3B0aW9ucyxcbiAgICAgICAgZW52XG4gICAgICApO1xuICAgICAgcmVzdWx0ID0gb3B0aW9ucy5wYXJ0aWFsc1tvcHRpb25zLm5hbWVdKGNvbnRleHQsIGV4dGVuZGVkT3B0aW9ucyk7XG4gICAgfVxuICAgIGlmIChyZXN1bHQgIT0gbnVsbCkge1xuICAgICAgaWYgKG9wdGlvbnMuaW5kZW50KSB7XG4gICAgICAgIGxldCBsaW5lcyA9IHJlc3VsdC5zcGxpdCgnXFxuJyk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gbGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgaWYgKCFsaW5lc1tpXSAmJiBpICsgMSA9PT0gbCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGluZXNbaV0gPSBvcHRpb25zLmluZGVudCArIGxpbmVzW2ldO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcbiAgICAgICAgJ1RoZSBwYXJ0aWFsICcgK1xuICAgICAgICAgIG9wdGlvbnMubmFtZSArXG4gICAgICAgICAgJyBjb3VsZCBub3QgYmUgY29tcGlsZWQgd2hlbiBydW5uaW5nIGluIHJ1bnRpbWUtb25seSBtb2RlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBKdXN0IGFkZCB3YXRlclxuICBsZXQgY29udGFpbmVyID0ge1xuICAgIHN0cmljdDogZnVuY3Rpb24ob2JqLCBuYW1lLCBsb2MpIHtcbiAgICAgIGlmICghb2JqIHx8ICEobmFtZSBpbiBvYmopKSB7XG4gICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oJ1wiJyArIG5hbWUgKyAnXCIgbm90IGRlZmluZWQgaW4gJyArIG9iaiwge1xuICAgICAgICAgIGxvYzogbG9jXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG9ialtuYW1lXTtcbiAgICB9LFxuICAgIGxvb2t1cFByb3BlcnR5OiBmdW5jdGlvbihwYXJlbnQsIHByb3BlcnR5TmFtZSkge1xuICAgICAgbGV0IHJlc3VsdCA9IHBhcmVudFtwcm9wZXJ0eU5hbWVdO1xuICAgICAgaWYgKHJlc3VsdCA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmVudCwgcHJvcGVydHlOYW1lKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBpZiAocmVzdWx0SXNBbGxvd2VkKHJlc3VsdCwgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCwgcHJvcGVydHlOYW1lKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIGxvb2t1cDogZnVuY3Rpb24oZGVwdGhzLCBuYW1lKSB7XG4gICAgICBjb25zdCBsZW4gPSBkZXB0aHMubGVuZ3RoO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBsZXQgcmVzdWx0ID0gZGVwdGhzW2ldICYmIGNvbnRhaW5lci5sb29rdXBQcm9wZXJ0eShkZXB0aHNbaV0sIG5hbWUpO1xuICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gZGVwdGhzW2ldW25hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBsYW1iZGE6IGZ1bmN0aW9uKGN1cnJlbnQsIGNvbnRleHQpIHtcbiAgICAgIHJldHVybiB0eXBlb2YgY3VycmVudCA9PT0gJ2Z1bmN0aW9uJyA/IGN1cnJlbnQuY2FsbChjb250ZXh0KSA6IGN1cnJlbnQ7XG4gICAgfSxcblxuICAgIGVzY2FwZUV4cHJlc3Npb246IFV0aWxzLmVzY2FwZUV4cHJlc3Npb24sXG4gICAgaW52b2tlUGFydGlhbDogaW52b2tlUGFydGlhbFdyYXBwZXIsXG5cbiAgICBmbjogZnVuY3Rpb24oaSkge1xuICAgICAgbGV0IHJldCA9IHRlbXBsYXRlU3BlY1tpXTtcbiAgICAgIHJldC5kZWNvcmF0b3IgPSB0ZW1wbGF0ZVNwZWNbaSArICdfZCddO1xuICAgICAgcmV0dXJuIHJldDtcbiAgICB9LFxuXG4gICAgcHJvZ3JhbXM6IFtdLFxuICAgIHByb2dyYW06IGZ1bmN0aW9uKGksIGRhdGEsIGRlY2xhcmVkQmxvY2tQYXJhbXMsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICAgIGxldCBwcm9ncmFtV3JhcHBlciA9IHRoaXMucHJvZ3JhbXNbaV0sXG4gICAgICAgIGZuID0gdGhpcy5mbihpKTtcbiAgICAgIGlmIChkYXRhIHx8IGRlcHRocyB8fCBibG9ja1BhcmFtcyB8fCBkZWNsYXJlZEJsb2NrUGFyYW1zKSB7XG4gICAgICAgIHByb2dyYW1XcmFwcGVyID0gd3JhcFByb2dyYW0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBpLFxuICAgICAgICAgIGZuLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZGVjbGFyZWRCbG9ja1BhcmFtcyxcbiAgICAgICAgICBibG9ja1BhcmFtcyxcbiAgICAgICAgICBkZXB0aHNcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoIXByb2dyYW1XcmFwcGVyKSB7XG4gICAgICAgIHByb2dyYW1XcmFwcGVyID0gdGhpcy5wcm9ncmFtc1tpXSA9IHdyYXBQcm9ncmFtKHRoaXMsIGksIGZuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwcm9ncmFtV3JhcHBlcjtcbiAgICB9LFxuXG4gICAgZGF0YTogZnVuY3Rpb24odmFsdWUsIGRlcHRoKSB7XG4gICAgICB3aGlsZSAodmFsdWUgJiYgZGVwdGgtLSkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLl9wYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgICBtZXJnZUlmTmVlZGVkOiBmdW5jdGlvbihwYXJhbSwgY29tbW9uKSB7XG4gICAgICBsZXQgb2JqID0gcGFyYW0gfHwgY29tbW9uO1xuXG4gICAgICBpZiAocGFyYW0gJiYgY29tbW9uICYmIHBhcmFtICE9PSBjb21tb24pIHtcbiAgICAgICAgb2JqID0gVXRpbHMuZXh0ZW5kKHt9LCBjb21tb24sIHBhcmFtKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LFxuICAgIC8vIEFuIGVtcHR5IG9iamVjdCB0byB1c2UgYXMgcmVwbGFjZW1lbnQgZm9yIG51bGwtY29udGV4dHNcbiAgICBudWxsQ29udGV4dDogT2JqZWN0LnNlYWwoe30pLFxuXG4gICAgbm9vcDogZW52LlZNLm5vb3AsXG4gICAgY29tcGlsZXJJbmZvOiB0ZW1wbGF0ZVNwZWMuY29tcGlsZXJcbiAgfTtcblxuICBmdW5jdGlvbiByZXQoY29udGV4dCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgbGV0IGRhdGEgPSBvcHRpb25zLmRhdGE7XG5cbiAgICByZXQuX3NldHVwKG9wdGlvbnMpO1xuICAgIGlmICghb3B0aW9ucy5wYXJ0aWFsICYmIHRlbXBsYXRlU3BlYy51c2VEYXRhKSB7XG4gICAgICBkYXRhID0gaW5pdERhdGEoY29udGV4dCwgZGF0YSk7XG4gICAgfVxuICAgIGxldCBkZXB0aHMsXG4gICAgICBibG9ja1BhcmFtcyA9IHRlbXBsYXRlU3BlYy51c2VCbG9ja1BhcmFtcyA/IFtdIDogdW5kZWZpbmVkO1xuICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlRGVwdGhzKSB7XG4gICAgICBpZiAob3B0aW9ucy5kZXB0aHMpIHtcbiAgICAgICAgZGVwdGhzID1cbiAgICAgICAgICBjb250ZXh0ICE9IG9wdGlvbnMuZGVwdGhzWzBdXG4gICAgICAgICAgICA/IFtjb250ZXh0XS5jb25jYXQob3B0aW9ucy5kZXB0aHMpXG4gICAgICAgICAgICA6IG9wdGlvbnMuZGVwdGhzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVwdGhzID0gW2NvbnRleHRdO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1haW4oY29udGV4dCAvKiwgb3B0aW9ucyovKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAnJyArXG4gICAgICAgIHRlbXBsYXRlU3BlYy5tYWluKFxuICAgICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIGNvbnRhaW5lci5oZWxwZXJzLFxuICAgICAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgICAgIGRlcHRoc1xuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIG1haW4gPSBleGVjdXRlRGVjb3JhdG9ycyhcbiAgICAgIHRlbXBsYXRlU3BlYy5tYWluLFxuICAgICAgbWFpbixcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIG9wdGlvbnMuZGVwdGhzIHx8IFtdLFxuICAgICAgZGF0YSxcbiAgICAgIGJsb2NrUGFyYW1zXG4gICAgKTtcbiAgICByZXR1cm4gbWFpbihjb250ZXh0LCBvcHRpb25zKTtcbiAgfVxuXG4gIHJldC5pc1RvcCA9IHRydWU7XG5cbiAgcmV0Ll9zZXR1cCA9IGZ1bmN0aW9uKG9wdGlvbnMpIHtcbiAgICBpZiAoIW9wdGlvbnMucGFydGlhbCkge1xuICAgICAgbGV0IG1lcmdlZEhlbHBlcnMgPSBVdGlscy5leHRlbmQoe30sIGVudi5oZWxwZXJzLCBvcHRpb25zLmhlbHBlcnMpO1xuICAgICAgd3JhcEhlbHBlcnNUb1Bhc3NMb29rdXBQcm9wZXJ0eShtZXJnZWRIZWxwZXJzLCBjb250YWluZXIpO1xuICAgICAgY29udGFpbmVyLmhlbHBlcnMgPSBtZXJnZWRIZWxwZXJzO1xuXG4gICAgICBpZiAodGVtcGxhdGVTcGVjLnVzZVBhcnRpYWwpIHtcbiAgICAgICAgLy8gVXNlIG1lcmdlSWZOZWVkZWQgaGVyZSB0byBwcmV2ZW50IGNvbXBpbGluZyBnbG9iYWwgcGFydGlhbHMgbXVsdGlwbGUgdGltZXNcbiAgICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gY29udGFpbmVyLm1lcmdlSWZOZWVkZWQoXG4gICAgICAgICAgb3B0aW9ucy5wYXJ0aWFscyxcbiAgICAgICAgICBlbnYucGFydGlhbHNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0ZW1wbGF0ZVNwZWMudXNlUGFydGlhbCB8fCB0ZW1wbGF0ZVNwZWMudXNlRGVjb3JhdG9ycykge1xuICAgICAgICBjb250YWluZXIuZGVjb3JhdG9ycyA9IFV0aWxzLmV4dGVuZChcbiAgICAgICAgICB7fSxcbiAgICAgICAgICBlbnYuZGVjb3JhdG9ycyxcbiAgICAgICAgICBvcHRpb25zLmRlY29yYXRvcnNcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29udGFpbmVyLmhvb2tzID0ge307XG4gICAgICBjb250YWluZXIucHJvdG9BY2Nlc3NDb250cm9sID0gY3JlYXRlUHJvdG9BY2Nlc3NDb250cm9sKG9wdGlvbnMpO1xuXG4gICAgICBsZXQga2VlcEhlbHBlckluSGVscGVycyA9XG4gICAgICAgIG9wdGlvbnMuYWxsb3dDYWxsc1RvSGVscGVyTWlzc2luZyB8fFxuICAgICAgICB0ZW1wbGF0ZVdhc1ByZWNvbXBpbGVkV2l0aENvbXBpbGVyVjc7XG4gICAgICBtb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdoZWxwZXJNaXNzaW5nJywga2VlcEhlbHBlckluSGVscGVycyk7XG4gICAgICBtb3ZlSGVscGVyVG9Ib29rcyhjb250YWluZXIsICdibG9ja0hlbHBlck1pc3NpbmcnLCBrZWVwSGVscGVySW5IZWxwZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVyLnByb3RvQWNjZXNzQ29udHJvbCA9IG9wdGlvbnMucHJvdG9BY2Nlc3NDb250cm9sOyAvLyBpbnRlcm5hbCBvcHRpb25cbiAgICAgIGNvbnRhaW5lci5oZWxwZXJzID0gb3B0aW9ucy5oZWxwZXJzO1xuICAgICAgY29udGFpbmVyLnBhcnRpYWxzID0gb3B0aW9ucy5wYXJ0aWFscztcbiAgICAgIGNvbnRhaW5lci5kZWNvcmF0b3JzID0gb3B0aW9ucy5kZWNvcmF0b3JzO1xuICAgICAgY29udGFpbmVyLmhvb2tzID0gb3B0aW9ucy5ob29rcztcbiAgICB9XG4gIH07XG5cbiAgcmV0Ll9jaGlsZCA9IGZ1bmN0aW9uKGksIGRhdGEsIGJsb2NrUGFyYW1zLCBkZXB0aHMpIHtcbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZUJsb2NrUGFyYW1zICYmICFibG9ja1BhcmFtcykge1xuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignbXVzdCBwYXNzIGJsb2NrIHBhcmFtcycpO1xuICAgIH1cbiAgICBpZiAodGVtcGxhdGVTcGVjLnVzZURlcHRocyAmJiAhZGVwdGhzKSB7XG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdtdXN0IHBhc3MgcGFyZW50IGRlcHRocycpO1xuICAgIH1cblxuICAgIHJldHVybiB3cmFwUHJvZ3JhbShcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGksXG4gICAgICB0ZW1wbGF0ZVNwZWNbaV0sXG4gICAgICBkYXRhLFxuICAgICAgMCxcbiAgICAgIGJsb2NrUGFyYW1zLFxuICAgICAgZGVwdGhzXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBQcm9ncmFtKFxuICBjb250YWluZXIsXG4gIGksXG4gIGZuLFxuICBkYXRhLFxuICBkZWNsYXJlZEJsb2NrUGFyYW1zLFxuICBibG9ja1BhcmFtcyxcbiAgZGVwdGhzXG4pIHtcbiAgZnVuY3Rpb24gcHJvZyhjb250ZXh0LCBvcHRpb25zID0ge30pIHtcbiAgICBsZXQgY3VycmVudERlcHRocyA9IGRlcHRocztcbiAgICBpZiAoXG4gICAgICBkZXB0aHMgJiZcbiAgICAgIGNvbnRleHQgIT0gZGVwdGhzWzBdICYmXG4gICAgICAhKGNvbnRleHQgPT09IGNvbnRhaW5lci5udWxsQ29udGV4dCAmJiBkZXB0aHNbMF0gPT09IG51bGwpXG4gICAgKSB7XG4gICAgICBjdXJyZW50RGVwdGhzID0gW2NvbnRleHRdLmNvbmNhdChkZXB0aHMpO1xuICAgIH1cblxuICAgIHJldHVybiBmbihcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGNvbnRleHQsXG4gICAgICBjb250YWluZXIuaGVscGVycyxcbiAgICAgIGNvbnRhaW5lci5wYXJ0aWFscyxcbiAgICAgIG9wdGlvbnMuZGF0YSB8fCBkYXRhLFxuICAgICAgYmxvY2tQYXJhbXMgJiYgW29wdGlvbnMuYmxvY2tQYXJhbXNdLmNvbmNhdChibG9ja1BhcmFtcyksXG4gICAgICBjdXJyZW50RGVwdGhzXG4gICAgKTtcbiAgfVxuXG4gIHByb2cgPSBleGVjdXRlRGVjb3JhdG9ycyhmbiwgcHJvZywgY29udGFpbmVyLCBkZXB0aHMsIGRhdGEsIGJsb2NrUGFyYW1zKTtcblxuICBwcm9nLnByb2dyYW0gPSBpO1xuICBwcm9nLmRlcHRoID0gZGVwdGhzID8gZGVwdGhzLmxlbmd0aCA6IDA7XG4gIHByb2cuYmxvY2tQYXJhbXMgPSBkZWNsYXJlZEJsb2NrUGFyYW1zIHx8IDA7XG4gIHJldHVybiBwcm9nO1xufVxuXG4vKipcbiAqIFRoaXMgaXMgY3VycmVudGx5IHBhcnQgb2YgdGhlIG9mZmljaWFsIEFQSSwgdGhlcmVmb3JlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVBhcnRpYWwocGFydGlhbCwgY29udGV4dCwgb3B0aW9ucykge1xuICBpZiAoIXBhcnRpYWwpIHtcbiAgICBpZiAob3B0aW9ucy5uYW1lID09PSAnQHBhcnRpYWwtYmxvY2snKSB7XG4gICAgICBwYXJ0aWFsID0gb3B0aW9ucy5kYXRhWydwYXJ0aWFsLWJsb2NrJ107XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnRpYWwgPSBvcHRpb25zLnBhcnRpYWxzW29wdGlvbnMubmFtZV07XG4gICAgfVxuICB9IGVsc2UgaWYgKCFwYXJ0aWFsLmNhbGwgJiYgIW9wdGlvbnMubmFtZSkge1xuICAgIC8vIFRoaXMgaXMgYSBkeW5hbWljIHBhcnRpYWwgdGhhdCByZXR1cm5lZCBhIHN0cmluZ1xuICAgIG9wdGlvbnMubmFtZSA9IHBhcnRpYWw7XG4gICAgcGFydGlhbCA9IG9wdGlvbnMucGFydGlhbHNbcGFydGlhbF07XG4gIH1cbiAgcmV0dXJuIHBhcnRpYWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZva2VQYXJ0aWFsKHBhcnRpYWwsIGNvbnRleHQsIG9wdGlvbnMpIHtcbiAgLy8gVXNlIHRoZSBjdXJyZW50IGNsb3N1cmUgY29udGV4dCB0byBzYXZlIHRoZSBwYXJ0aWFsLWJsb2NrIGlmIHRoaXMgcGFydGlhbFxuICBjb25zdCBjdXJyZW50UGFydGlhbEJsb2NrID0gb3B0aW9ucy5kYXRhICYmIG9wdGlvbnMuZGF0YVsncGFydGlhbC1ibG9jayddO1xuICBvcHRpb25zLnBhcnRpYWwgPSB0cnVlO1xuICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICBvcHRpb25zLmRhdGEuY29udGV4dFBhdGggPSBvcHRpb25zLmlkc1swXSB8fCBvcHRpb25zLmRhdGEuY29udGV4dFBhdGg7XG4gIH1cblxuICBsZXQgcGFydGlhbEJsb2NrO1xuICBpZiAob3B0aW9ucy5mbiAmJiBvcHRpb25zLmZuICE9PSBub29wKSB7XG4gICAgb3B0aW9ucy5kYXRhID0gY3JlYXRlRnJhbWUob3B0aW9ucy5kYXRhKTtcbiAgICAvLyBXcmFwcGVyIGZ1bmN0aW9uIHRvIGdldCBhY2Nlc3MgdG8gY3VycmVudFBhcnRpYWxCbG9jayBmcm9tIHRoZSBjbG9zdXJlXG4gICAgbGV0IGZuID0gb3B0aW9ucy5mbjtcbiAgICBwYXJ0aWFsQmxvY2sgPSBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGZ1bmN0aW9uIHBhcnRpYWxCbG9ja1dyYXBwZXIoXG4gICAgICBjb250ZXh0LFxuICAgICAgb3B0aW9ucyA9IHt9XG4gICAgKSB7XG4gICAgICAvLyBSZXN0b3JlIHRoZSBwYXJ0aWFsLWJsb2NrIGZyb20gdGhlIGNsb3N1cmUgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrXG4gICAgICAvLyBpLmUuIHRoZSBwYXJ0IGluc2lkZSB0aGUgYmxvY2sgb2YgdGhlIHBhcnRpYWwgY2FsbC5cbiAgICAgIG9wdGlvbnMuZGF0YSA9IGNyZWF0ZUZyYW1lKG9wdGlvbnMuZGF0YSk7XG4gICAgICBvcHRpb25zLmRhdGFbJ3BhcnRpYWwtYmxvY2snXSA9IGN1cnJlbnRQYXJ0aWFsQmxvY2s7XG4gICAgICByZXR1cm4gZm4oY29udGV4dCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBpZiAoZm4ucGFydGlhbHMpIHtcbiAgICAgIG9wdGlvbnMucGFydGlhbHMgPSBVdGlscy5leHRlbmQoe30sIG9wdGlvbnMucGFydGlhbHMsIGZuLnBhcnRpYWxzKTtcbiAgICB9XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkICYmIHBhcnRpYWxCbG9jaykge1xuICAgIHBhcnRpYWwgPSBwYXJ0aWFsQmxvY2s7XG4gIH1cblxuICBpZiAocGFydGlhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignVGhlIHBhcnRpYWwgJyArIG9wdGlvbnMubmFtZSArICcgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gIH0gZWxzZSBpZiAocGFydGlhbCBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgcmV0dXJuIHBhcnRpYWwoY29udGV4dCwgb3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybiAnJztcbn1cblxuZnVuY3Rpb24gaW5pdERhdGEoY29udGV4dCwgZGF0YSkge1xuICBpZiAoIWRhdGEgfHwgISgncm9vdCcgaW4gZGF0YSkpIHtcbiAgICBkYXRhID0gZGF0YSA/IGNyZWF0ZUZyYW1lKGRhdGEpIDoge307XG4gICAgZGF0YS5yb290ID0gY29udGV4dDtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZXhlY3V0ZURlY29yYXRvcnMoZm4sIHByb2csIGNvbnRhaW5lciwgZGVwdGhzLCBkYXRhLCBibG9ja1BhcmFtcykge1xuICBpZiAoZm4uZGVjb3JhdG9yKSB7XG4gICAgbGV0IHByb3BzID0ge307XG4gICAgcHJvZyA9IGZuLmRlY29yYXRvcihcbiAgICAgIHByb2csXG4gICAgICBwcm9wcyxcbiAgICAgIGNvbnRhaW5lcixcbiAgICAgIGRlcHRocyAmJiBkZXB0aHNbMF0sXG4gICAgICBkYXRhLFxuICAgICAgYmxvY2tQYXJhbXMsXG4gICAgICBkZXB0aHNcbiAgICApO1xuICAgIFV0aWxzLmV4dGVuZChwcm9nLCBwcm9wcyk7XG4gIH1cbiAgcmV0dXJuIHByb2c7XG59XG5cbmZ1bmN0aW9uIHdyYXBIZWxwZXJzVG9QYXNzTG9va3VwUHJvcGVydHkobWVyZ2VkSGVscGVycywgY29udGFpbmVyKSB7XG4gIE9iamVjdC5rZXlzKG1lcmdlZEhlbHBlcnMpLmZvckVhY2goaGVscGVyTmFtZSA9PiB7XG4gICAgbGV0IGhlbHBlciA9IG1lcmdlZEhlbHBlcnNbaGVscGVyTmFtZV07XG4gICAgbWVyZ2VkSGVscGVyc1toZWxwZXJOYW1lXSA9IHBhc3NMb29rdXBQcm9wZXJ0eU9wdGlvbihoZWxwZXIsIGNvbnRhaW5lcik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXNzTG9va3VwUHJvcGVydHlPcHRpb24oaGVscGVyLCBjb250YWluZXIpIHtcbiAgY29uc3QgbG9va3VwUHJvcGVydHkgPSBjb250YWluZXIubG9va3VwUHJvcGVydHk7XG4gIHJldHVybiB3cmFwSGVscGVyKGhlbHBlciwgb3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuIFV0aWxzLmV4dGVuZCh7IGxvb2t1cFByb3BlcnR5IH0sIG9wdGlvbnMpO1xuICB9KTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\nexports.wrapHelper = wrapHelper;\n\nfunction wrapHelper(helper, transformOptionsFn) {\n if (typeof helper !== 'function') {\n // This should not happen, but apparently it does in https://github.com/wycats/handlebars.js/issues/1639\n // We try to make the wrapper least-invasive by not wrapping it, if the helper is not a function.\n return helper;\n }\n var wrapper = function wrapper() /* dynamic arguments */{\n var options = arguments[arguments.length - 1];\n arguments[arguments.length - 1] = transformOptionsFn(options);\n return helper.apply(this, arguments);\n };\n return wrapper;\n}\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL2ludGVybmFsL3dyYXBIZWxwZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBTyxTQUFTLFVBQVUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUU7QUFDckQsTUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUU7OztBQUdoQyxXQUFPLE1BQU0sQ0FBQztHQUNmO0FBQ0QsTUFBSSxPQUFPLEdBQUcsU0FBVixPQUFPLDBCQUFxQztBQUM5QyxRQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNoRCxhQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM5RCxXQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ3RDLENBQUM7QUFDRixTQUFPLE9BQU8sQ0FBQztDQUNoQiIsImZpbGUiOiJ3cmFwSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHdyYXBIZWxwZXIoaGVscGVyLCB0cmFuc2Zvcm1PcHRpb25zRm4pIHtcbiAgaWYgKHR5cGVvZiBoZWxwZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuLCBidXQgYXBwYXJlbnRseSBpdCBkb2VzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS93eWNhdHMvaGFuZGxlYmFycy5qcy9pc3N1ZXMvMTYzOVxuICAgIC8vIFdlIHRyeSB0byBtYWtlIHRoZSB3cmFwcGVyIGxlYXN0LWludmFzaXZlIGJ5IG5vdCB3cmFwcGluZyBpdCwgaWYgdGhlIGhlbHBlciBpcyBub3QgYSBmdW5jdGlvbi5cbiAgICByZXR1cm4gaGVscGVyO1xuICB9XG4gIGxldCB3cmFwcGVyID0gZnVuY3Rpb24oLyogZHluYW1pYyBhcmd1bWVudHMgKi8pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTtcbiAgICBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdID0gdHJhbnNmb3JtT3B0aW9uc0ZuKG9wdGlvbnMpO1xuICAgIHJldHVybiBoZWxwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfTtcbiAgcmV0dXJuIHdyYXBwZXI7XG59XG4iXX0=\n","'use strict';\n\nexports.__esModule = true;\n\nexports['default'] = function (Handlebars) {\n /* istanbul ignore next */\n var root = typeof global !== 'undefined' ? global : window,\n $Handlebars = root.Handlebars;\n /* istanbul ignore next */\n Handlebars.noConflict = function () {\n if (root.Handlebars === Handlebars) {\n root.Handlebars = $Handlebars;\n }\n return Handlebars;\n };\n};\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9oYW5kbGViYXJzL25vLWNvbmZsaWN0LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7cUJBQWUsVUFBUyxVQUFVLEVBQUU7O0FBRWxDLE1BQUksSUFBSSxHQUFHLE9BQU8sTUFBTSxLQUFLLFdBQVcsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUN4RCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQzs7QUFFaEMsWUFBVSxDQUFDLFVBQVUsR0FBRyxZQUFXO0FBQ2pDLFFBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7QUFDbEMsVUFBSSxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7S0FDL0I7QUFDRCxXQUFPLFVBQVUsQ0FBQztHQUNuQixDQUFDO0NBQ0giLCJmaWxlIjoibm8tY29uZmxpY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbihIYW5kbGViYXJzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGxldCByb290ID0gdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcgPyBnbG9iYWwgOiB3aW5kb3csXG4gICAgJEhhbmRsZWJhcnMgPSByb290LkhhbmRsZWJhcnM7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIEhhbmRsZWJhcnMubm9Db25mbGljdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmIChyb290LkhhbmRsZWJhcnMgPT09IEhhbmRsZWJhcnMpIHtcbiAgICAgIHJvb3QuSGFuZGxlYmFycyA9ICRIYW5kbGViYXJzO1xuICAgIH1cbiAgICByZXR1cm4gSGFuZGxlYmFycztcbiAgfTtcbn1cbiJdfQ==\n","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"emptycontent\\\">\\n\t<div class=\\\"icon-loading\\\"></div>\\n\t<h2>\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"loadingText\") || (depth0 != null ? lookupProperty(depth0,\"loadingText\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"loadingText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":5},\"end\":{\"line\":3,\"column\":20}}}) : helper)))\n + \"</h2>\\n</div>\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"emptycontent\\\">\\n\t<div class=\\\"icon-search\\\"></div>\\n\t<h2>\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"couldNotLoadText\") || (depth0 != null ? lookupProperty(depth0,\"couldNotLoadText\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"couldNotLoadText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":5},\"end\":{\"line\":3,\"column\":25}}}) : helper)))\n + \"</h2>\\n</div>\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<label class=\\\"hidden-visually\\\" for=\\\"contactsmenu-search\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"searchContactsText\") || (depth0 != null ? lookupProperty(depth0,\"searchContactsText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"searchContactsText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":57},\"end\":{\"line\":1,\"column\":79}}}) : helper)))\n + \"</label>\\n<input id=\\\"contactsmenu-search\\\" type=\\\"search\\\" placeholder=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"searchContactsText\") || (depth0 != null ? lookupProperty(depth0,\"searchContactsText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"searchContactsText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":59},\"end\":{\"line\":2,\"column\":81}}}) : helper)))\n + \"\\\" value=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"searchTerm\") || (depth0 != null ? lookupProperty(depth0,\"searchTerm\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"searchTerm\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":2,\"column\":90},\"end\":{\"line\":2,\"column\":104}}}) : helper)))\n + \"\\\">\\n<div class=\\\"content\\\">\\n</div>\\n\";\n},\"useData\":true});","var Handlebars = require(\"../../../../node_modules/handlebars/runtime.js\");\nfunction __default(obj) { return obj && (obj.__esModule ? obj[\"default\"] : obj); }\nmodule.exports = (Handlebars[\"default\"] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"emptycontent\\\">\\n\t<div class=\\\"icon-search\\\"></div>\\n\t<h2>\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"noContactsFoundText\") || (depth0 != null ? lookupProperty(depth0,\"noContactsFoundText\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"noContactsFoundText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":4,\"column\":5},\"end\":{\"line\":4,\"column\":28}}}) : helper)))\n + \"</h2>\\n</div>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"footer\\\"><a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"contactsAppURL\") || (depth0 != null ? lookupProperty(depth0,\"contactsAppURL\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"contactsAppURL\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":29},\"end\":{\"line\":9,\"column\":47}}}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"showAllContactsText\") || (depth0 != null ? lookupProperty(depth0,\"showAllContactsText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"showAllContactsText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":9,\"column\":49},\"end\":{\"line\":9,\"column\":72}}}) : helper)))\n + \"</a></div>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"if\").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,\"canInstallApp\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":10,\"column\":0},\"end\":{\"line\":12,\"column\":0}}})) != null ? stack1 : \"\");\n},\"6\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"<div class=\\\"footer\\\"><a href=\\\"\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"contactsAppMgmtURL\") || (depth0 != null ? lookupProperty(depth0,\"contactsAppMgmtURL\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"contactsAppMgmtURL\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":29},\"end\":{\"line\":11,\"column\":51}}}) : helper)))\n + \"\\\">\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"contactsAppMgmtText\") || (depth0 != null ? lookupProperty(depth0,\"contactsAppMgmtText\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"contactsAppMgmtText\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":11,\"column\":53},\"end\":{\"line\":11,\"column\":76}}}) : helper)))\n + \"</a></div>\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return ((stack1 = lookupProperty(helpers,\"unless\").call(alias1,((stack1 = (depth0 != null ? lookupProperty(depth0,\"contacts\") : depth0)) != null ? lookupProperty(stack1,\"length\") : stack1),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":0},\"end\":{\"line\":6,\"column\":11}}})) != null ? stack1 : \"\")\n + \"<div id=\\\"contactsmenu-contacts\\\"></div>\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"contactsAppEnabled\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.program(5, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":8,\"column\":0},\"end\":{\"line\":12,\"column\":7}}})) != null ? stack1 : \"\");\n},\"useData\":true});","var baseConvert = require('./_baseConvert'),\n util = require('./_util');\n\n/**\n * Converts `func` of `name` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied. If `name` is an object its methods\n * will be converted.\n *\n * @param {string} name The name of the function to wrap.\n * @param {Function} [func] The function to wrap.\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction convert(name, func, options) {\n return baseConvert(util, name, func, options);\n}\n\nmodule.exports = convert;\n","var mapping = require('./_mapping'),\n fallbackHolder = require('./placeholder');\n\n/** Built-in value reference. */\nvar push = Array.prototype.push;\n\n/**\n * Creates a function, with an arity of `n`, that invokes `func` with the\n * arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} n The arity of the new function.\n * @returns {Function} Returns the new function.\n */\nfunction baseArity(func, n) {\n return n == 2\n ? function(a, b) { return func.apply(undefined, arguments); }\n : function(a) { return func.apply(undefined, arguments); };\n}\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments, ignoring\n * any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\nfunction baseAry(func, n) {\n return n == 2\n ? function(a, b) { return func(a, b); }\n : function(a) { return func(a); };\n}\n\n/**\n * Creates a clone of `array`.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the cloned array.\n */\nfunction cloneArray(array) {\n var length = array ? array.length : 0,\n result = Array(length);\n\n while (length--) {\n result[length] = array[length];\n }\n return result;\n}\n\n/**\n * Creates a function that clones a given object using the assignment `func`.\n *\n * @private\n * @param {Function} func The assignment function.\n * @returns {Function} Returns the new cloner function.\n */\nfunction createCloner(func) {\n return function(object) {\n return func({}, object);\n };\n}\n\n/**\n * A specialized version of `_.spread` which flattens the spread array into\n * the arguments of the invoked `func`.\n *\n * @private\n * @param {Function} func The function to spread arguments over.\n * @param {number} start The start position of the spread.\n * @returns {Function} Returns the new function.\n */\nfunction flatSpread(func, start) {\n return function() {\n var length = arguments.length,\n lastIndex = length - 1,\n args = Array(length);\n\n while (length--) {\n args[length] = arguments[length];\n }\n var array = args[start],\n otherArgs = args.slice(0, start);\n\n if (array) {\n push.apply(otherArgs, array);\n }\n if (start != lastIndex) {\n push.apply(otherArgs, args.slice(start + 1));\n }\n return func.apply(this, otherArgs);\n };\n}\n\n/**\n * Creates a function that wraps `func` and uses `cloner` to clone the first\n * argument it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} cloner The function to clone arguments.\n * @returns {Function} Returns the new immutable function.\n */\nfunction wrapImmutable(func, cloner) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return;\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var result = args[0] = cloner.apply(undefined, args);\n func.apply(undefined, args);\n return result;\n };\n}\n\n/**\n * The base implementation of `convert` which accepts a `util` object of methods\n * required to perform conversions.\n *\n * @param {Object} util The util object.\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.cap=true] Specify capping iteratee arguments.\n * @param {boolean} [options.curry=true] Specify currying.\n * @param {boolean} [options.fixed=true] Specify fixed arity.\n * @param {boolean} [options.immutable=true] Specify immutable operations.\n * @param {boolean} [options.rearg=true] Specify rearranging arguments.\n * @returns {Function|Object} Returns the converted function or object.\n */\nfunction baseConvert(util, name, func, options) {\n var isLib = typeof name == 'function',\n isObj = name === Object(name);\n\n if (isObj) {\n options = func;\n func = name;\n name = undefined;\n }\n if (func == null) {\n throw new TypeError;\n }\n options || (options = {});\n\n var config = {\n 'cap': 'cap' in options ? options.cap : true,\n 'curry': 'curry' in options ? options.curry : true,\n 'fixed': 'fixed' in options ? options.fixed : true,\n 'immutable': 'immutable' in options ? options.immutable : true,\n 'rearg': 'rearg' in options ? options.rearg : true\n };\n\n var defaultHolder = isLib ? func : fallbackHolder,\n forceCurry = ('curry' in options) && options.curry,\n forceFixed = ('fixed' in options) && options.fixed,\n forceRearg = ('rearg' in options) && options.rearg,\n pristine = isLib ? func.runInContext() : undefined;\n\n var helpers = isLib ? func : {\n 'ary': util.ary,\n 'assign': util.assign,\n 'clone': util.clone,\n 'curry': util.curry,\n 'forEach': util.forEach,\n 'isArray': util.isArray,\n 'isError': util.isError,\n 'isFunction': util.isFunction,\n 'isWeakMap': util.isWeakMap,\n 'iteratee': util.iteratee,\n 'keys': util.keys,\n 'rearg': util.rearg,\n 'toInteger': util.toInteger,\n 'toPath': util.toPath\n };\n\n var ary = helpers.ary,\n assign = helpers.assign,\n clone = helpers.clone,\n curry = helpers.curry,\n each = helpers.forEach,\n isArray = helpers.isArray,\n isError = helpers.isError,\n isFunction = helpers.isFunction,\n isWeakMap = helpers.isWeakMap,\n keys = helpers.keys,\n rearg = helpers.rearg,\n toInteger = helpers.toInteger,\n toPath = helpers.toPath;\n\n var aryMethodKeys = keys(mapping.aryMethod);\n\n var wrappers = {\n 'castArray': function(castArray) {\n return function() {\n var value = arguments[0];\n return isArray(value)\n ? castArray(cloneArray(value))\n : castArray.apply(undefined, arguments);\n };\n },\n 'iteratee': function(iteratee) {\n return function() {\n var func = arguments[0],\n arity = arguments[1],\n result = iteratee(func, arity),\n length = result.length;\n\n if (config.cap && typeof arity == 'number') {\n arity = arity > 2 ? (arity - 2) : 1;\n return (length && length <= arity) ? result : baseAry(result, arity);\n }\n return result;\n };\n },\n 'mixin': function(mixin) {\n return function(source) {\n var func = this;\n if (!isFunction(func)) {\n return mixin(func, Object(source));\n }\n var pairs = [];\n each(keys(source), function(key) {\n if (isFunction(source[key])) {\n pairs.push([key, func.prototype[key]]);\n }\n });\n\n mixin(func, Object(source));\n\n each(pairs, function(pair) {\n var value = pair[1];\n if (isFunction(value)) {\n func.prototype[pair[0]] = value;\n } else {\n delete func.prototype[pair[0]];\n }\n });\n return func;\n };\n },\n 'nthArg': function(nthArg) {\n return function(n) {\n var arity = n < 0 ? 1 : (toInteger(n) + 1);\n return curry(nthArg(n), arity);\n };\n },\n 'rearg': function(rearg) {\n return function(func, indexes) {\n var arity = indexes ? indexes.length : 0;\n return curry(rearg(func, indexes), arity);\n };\n },\n 'runInContext': function(runInContext) {\n return function(context) {\n return baseConvert(util, runInContext(context), options);\n };\n }\n };\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Casts `func` to a function with an arity capped iteratee if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @returns {Function} Returns the cast function.\n */\n function castCap(name, func) {\n if (config.cap) {\n var indexes = mapping.iterateeRearg[name];\n if (indexes) {\n return iterateeRearg(func, indexes);\n }\n var n = !isLib && mapping.iterateeAry[name];\n if (n) {\n return iterateeAry(func, n);\n }\n }\n return func;\n }\n\n /**\n * Casts `func` to a curried function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castCurry(name, func, n) {\n return (forceCurry || (config.curry && n > 1))\n ? curry(func, n)\n : func;\n }\n\n /**\n * Casts `func` to a fixed arity function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the cast function.\n */\n function castFixed(name, func, n) {\n if (config.fixed && (forceFixed || !mapping.skipFixed[name])) {\n var data = mapping.methodSpread[name],\n start = data && data.start;\n\n return start === undefined ? ary(func, n) : flatSpread(func, start);\n }\n return func;\n }\n\n /**\n * Casts `func` to an rearged function if needed.\n *\n * @private\n * @param {string} name The name of the function to inspect.\n * @param {Function} func The function to inspect.\n * @param {number} n The arity of `func`.\n * @returns {Function} Returns the cast function.\n */\n function castRearg(name, func, n) {\n return (config.rearg && n > 1 && (forceRearg || !mapping.skipRearg[name]))\n ? rearg(func, mapping.methodRearg[name] || mapping.aryRearg[n])\n : func;\n }\n\n /**\n * Creates a clone of `object` by `path`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {Array|string} path The path to clone by.\n * @returns {Object} Returns the cloned object.\n */\n function cloneByPath(object, path) {\n path = toPath(path);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n result = clone(Object(object)),\n nested = result;\n\n while (nested != null && ++index < length) {\n var key = path[index],\n value = nested[key];\n\n if (value != null &&\n !(isFunction(value) || isError(value) || isWeakMap(value))) {\n nested[key] = clone(index == lastIndex ? value : Object(value));\n }\n nested = nested[key];\n }\n return result;\n }\n\n /**\n * Converts `lodash` to an immutable auto-curried iteratee-first data-last\n * version with conversion `options` applied.\n *\n * @param {Object} [options] The options object. See `baseConvert` for more details.\n * @returns {Function} Returns the converted `lodash`.\n */\n function convertLib(options) {\n return _.runInContext.convert(options)(undefined);\n }\n\n /**\n * Create a converter function for `func` of `name`.\n *\n * @param {string} name The name of the function to convert.\n * @param {Function} func The function to convert.\n * @returns {Function} Returns the new converter function.\n */\n function createConverter(name, func) {\n var realName = mapping.aliasToReal[name] || name,\n methodName = mapping.remap[realName] || realName,\n oldOptions = options;\n\n return function(options) {\n var newUtil = isLib ? pristine : helpers,\n newFunc = isLib ? pristine[methodName] : func,\n newOptions = assign(assign({}, oldOptions), options);\n\n return baseConvert(newUtil, realName, newFunc, newOptions);\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee, with up to `n`\n * arguments, ignoring any additional arguments.\n *\n * @private\n * @param {Function} func The function to cap iteratee arguments for.\n * @param {number} n The arity cap.\n * @returns {Function} Returns the new function.\n */\n function iterateeAry(func, n) {\n return overArg(func, function(func) {\n return typeof func == 'function' ? baseAry(func, n) : func;\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke its iteratee with arguments\n * arranged according to the specified `indexes` where the argument value at\n * the first index is provided as the first argument, the argument value at\n * the second index is provided as the second argument, and so on.\n *\n * @private\n * @param {Function} func The function to rearrange iteratee arguments for.\n * @param {number[]} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n */\n function iterateeRearg(func, indexes) {\n return overArg(func, function(func) {\n var n = indexes.length;\n return baseArity(rearg(baseAry(func, n), indexes), n);\n });\n }\n\n /**\n * Creates a function that invokes `func` with its first argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function() {\n var length = arguments.length;\n if (!length) {\n return func();\n }\n var args = Array(length);\n while (length--) {\n args[length] = arguments[length];\n }\n var index = config.rearg ? 0 : (length - 1);\n args[index] = transform(args[index]);\n return func.apply(undefined, args);\n };\n }\n\n /**\n * Creates a function that wraps `func` and applys the conversions\n * rules by `name`.\n *\n * @private\n * @param {string} name The name of the function to wrap.\n * @param {Function} func The function to wrap.\n * @returns {Function} Returns the converted function.\n */\n function wrap(name, func, placeholder) {\n var result,\n realName = mapping.aliasToReal[name] || name,\n wrapped = func,\n wrapper = wrappers[realName];\n\n if (wrapper) {\n wrapped = wrapper(func);\n }\n else if (config.immutable) {\n if (mapping.mutate.array[realName]) {\n wrapped = wrapImmutable(func, cloneArray);\n }\n else if (mapping.mutate.object[realName]) {\n wrapped = wrapImmutable(func, createCloner(func));\n }\n else if (mapping.mutate.set[realName]) {\n wrapped = wrapImmutable(func, cloneByPath);\n }\n }\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(otherName) {\n if (realName == otherName) {\n var data = mapping.methodSpread[realName],\n afterRearg = data && data.afterRearg;\n\n result = afterRearg\n ? castFixed(realName, castRearg(realName, wrapped, aryKey), aryKey)\n : castRearg(realName, castFixed(realName, wrapped, aryKey), aryKey);\n\n result = castCap(realName, result);\n result = castCurry(realName, result, aryKey);\n return false;\n }\n });\n return !result;\n });\n\n result || (result = wrapped);\n if (result == func) {\n result = forceCurry ? curry(result, 1) : function() {\n return func.apply(this, arguments);\n };\n }\n result.convert = createConverter(realName, func);\n result.placeholder = func.placeholder = placeholder;\n\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n if (!isObj) {\n return wrap(name, func, defaultHolder);\n }\n var _ = func;\n\n // Convert methods by ary cap.\n var pairs = [];\n each(aryMethodKeys, function(aryKey) {\n each(mapping.aryMethod[aryKey], function(key) {\n var func = _[mapping.remap[key] || key];\n if (func) {\n pairs.push([key, wrap(key, func, _)]);\n }\n });\n });\n\n // Convert remaining methods.\n each(keys(_), function(key) {\n var func = _[key];\n if (typeof func == 'function') {\n var length = pairs.length;\n while (length--) {\n if (pairs[length][0] == key) {\n return;\n }\n }\n func.convert = createConverter(key, func);\n pairs.push([key, func]);\n }\n });\n\n // Assign to `_` leaving `_.prototype` unchanged to allow chaining.\n each(pairs, function(pair) {\n _[pair[0]] = pair[1];\n });\n\n _.convert = convertLib;\n _.placeholder = _;\n\n // Assign aliases.\n each(keys(_), function(key) {\n each(mapping.realToAlias[key] || [], function(alias) {\n _[alias] = _[key];\n });\n });\n\n return _;\n}\n\nmodule.exports = baseConvert;\n","/** Used to map aliases to their real names. */\nexports.aliasToReal = {\n\n // Lodash aliases.\n 'each': 'forEach',\n 'eachRight': 'forEachRight',\n 'entries': 'toPairs',\n 'entriesIn': 'toPairsIn',\n 'extend': 'assignIn',\n 'extendAll': 'assignInAll',\n 'extendAllWith': 'assignInAllWith',\n 'extendWith': 'assignInWith',\n 'first': 'head',\n\n // Methods that are curried variants of others.\n 'conforms': 'conformsTo',\n 'matches': 'isMatch',\n 'property': 'get',\n\n // Ramda aliases.\n '__': 'placeholder',\n 'F': 'stubFalse',\n 'T': 'stubTrue',\n 'all': 'every',\n 'allPass': 'overEvery',\n 'always': 'constant',\n 'any': 'some',\n 'anyPass': 'overSome',\n 'apply': 'spread',\n 'assoc': 'set',\n 'assocPath': 'set',\n 'complement': 'negate',\n 'compose': 'flowRight',\n 'contains': 'includes',\n 'dissoc': 'unset',\n 'dissocPath': 'unset',\n 'dropLast': 'dropRight',\n 'dropLastWhile': 'dropRightWhile',\n 'equals': 'isEqual',\n 'identical': 'eq',\n 'indexBy': 'keyBy',\n 'init': 'initial',\n 'invertObj': 'invert',\n 'juxt': 'over',\n 'omitAll': 'omit',\n 'nAry': 'ary',\n 'path': 'get',\n 'pathEq': 'matchesProperty',\n 'pathOr': 'getOr',\n 'paths': 'at',\n 'pickAll': 'pick',\n 'pipe': 'flow',\n 'pluck': 'map',\n 'prop': 'get',\n 'propEq': 'matchesProperty',\n 'propOr': 'getOr',\n 'props': 'at',\n 'symmetricDifference': 'xor',\n 'symmetricDifferenceBy': 'xorBy',\n 'symmetricDifferenceWith': 'xorWith',\n 'takeLast': 'takeRight',\n 'takeLastWhile': 'takeRightWhile',\n 'unapply': 'rest',\n 'unnest': 'flatten',\n 'useWith': 'overArgs',\n 'where': 'conformsTo',\n 'whereEq': 'isMatch',\n 'zipObj': 'zipObject'\n};\n\n/** Used to map ary to method names. */\nexports.aryMethod = {\n '1': [\n 'assignAll', 'assignInAll', 'attempt', 'castArray', 'ceil', 'create',\n 'curry', 'curryRight', 'defaultsAll', 'defaultsDeepAll', 'floor', 'flow',\n 'flowRight', 'fromPairs', 'invert', 'iteratee', 'memoize', 'method', 'mergeAll',\n 'methodOf', 'mixin', 'nthArg', 'over', 'overEvery', 'overSome','rest', 'reverse',\n 'round', 'runInContext', 'spread', 'template', 'trim', 'trimEnd', 'trimStart',\n 'uniqueId', 'words', 'zipAll'\n ],\n '2': [\n 'add', 'after', 'ary', 'assign', 'assignAllWith', 'assignIn', 'assignInAllWith',\n 'at', 'before', 'bind', 'bindAll', 'bindKey', 'chunk', 'cloneDeepWith',\n 'cloneWith', 'concat', 'conformsTo', 'countBy', 'curryN', 'curryRightN',\n 'debounce', 'defaults', 'defaultsDeep', 'defaultTo', 'delay', 'difference',\n 'divide', 'drop', 'dropRight', 'dropRightWhile', 'dropWhile', 'endsWith', 'eq',\n 'every', 'filter', 'find', 'findIndex', 'findKey', 'findLast', 'findLastIndex',\n 'findLastKey', 'flatMap', 'flatMapDeep', 'flattenDepth', 'forEach',\n 'forEachRight', 'forIn', 'forInRight', 'forOwn', 'forOwnRight', 'get',\n 'groupBy', 'gt', 'gte', 'has', 'hasIn', 'includes', 'indexOf', 'intersection',\n 'invertBy', 'invoke', 'invokeMap', 'isEqual', 'isMatch', 'join', 'keyBy',\n 'lastIndexOf', 'lt', 'lte', 'map', 'mapKeys', 'mapValues', 'matchesProperty',\n 'maxBy', 'meanBy', 'merge', 'mergeAllWith', 'minBy', 'multiply', 'nth', 'omit',\n 'omitBy', 'overArgs', 'pad', 'padEnd', 'padStart', 'parseInt', 'partial',\n 'partialRight', 'partition', 'pick', 'pickBy', 'propertyOf', 'pull', 'pullAll',\n 'pullAt', 'random', 'range', 'rangeRight', 'rearg', 'reject', 'remove',\n 'repeat', 'restFrom', 'result', 'sampleSize', 'some', 'sortBy', 'sortedIndex',\n 'sortedIndexOf', 'sortedLastIndex', 'sortedLastIndexOf', 'sortedUniqBy',\n 'split', 'spreadFrom', 'startsWith', 'subtract', 'sumBy', 'take', 'takeRight',\n 'takeRightWhile', 'takeWhile', 'tap', 'throttle', 'thru', 'times', 'trimChars',\n 'trimCharsEnd', 'trimCharsStart', 'truncate', 'union', 'uniqBy', 'uniqWith',\n 'unset', 'unzipWith', 'without', 'wrap', 'xor', 'zip', 'zipObject',\n 'zipObjectDeep'\n ],\n '3': [\n 'assignInWith', 'assignWith', 'clamp', 'differenceBy', 'differenceWith',\n 'findFrom', 'findIndexFrom', 'findLastFrom', 'findLastIndexFrom', 'getOr',\n 'includesFrom', 'indexOfFrom', 'inRange', 'intersectionBy', 'intersectionWith',\n 'invokeArgs', 'invokeArgsMap', 'isEqualWith', 'isMatchWith', 'flatMapDepth',\n 'lastIndexOfFrom', 'mergeWith', 'orderBy', 'padChars', 'padCharsEnd',\n 'padCharsStart', 'pullAllBy', 'pullAllWith', 'rangeStep', 'rangeStepRight',\n 'reduce', 'reduceRight', 'replace', 'set', 'slice', 'sortedIndexBy',\n 'sortedLastIndexBy', 'transform', 'unionBy', 'unionWith', 'update', 'xorBy',\n 'xorWith', 'zipWith'\n ],\n '4': [\n 'fill', 'setWith', 'updateWith'\n ]\n};\n\n/** Used to map ary to rearg configs. */\nexports.aryRearg = {\n '2': [1, 0],\n '3': [2, 0, 1],\n '4': [3, 2, 0, 1]\n};\n\n/** Used to map method names to their iteratee ary. */\nexports.iterateeAry = {\n 'dropRightWhile': 1,\n 'dropWhile': 1,\n 'every': 1,\n 'filter': 1,\n 'find': 1,\n 'findFrom': 1,\n 'findIndex': 1,\n 'findIndexFrom': 1,\n 'findKey': 1,\n 'findLast': 1,\n 'findLastFrom': 1,\n 'findLastIndex': 1,\n 'findLastIndexFrom': 1,\n 'findLastKey': 1,\n 'flatMap': 1,\n 'flatMapDeep': 1,\n 'flatMapDepth': 1,\n 'forEach': 1,\n 'forEachRight': 1,\n 'forIn': 1,\n 'forInRight': 1,\n 'forOwn': 1,\n 'forOwnRight': 1,\n 'map': 1,\n 'mapKeys': 1,\n 'mapValues': 1,\n 'partition': 1,\n 'reduce': 2,\n 'reduceRight': 2,\n 'reject': 1,\n 'remove': 1,\n 'some': 1,\n 'takeRightWhile': 1,\n 'takeWhile': 1,\n 'times': 1,\n 'transform': 2\n};\n\n/** Used to map method names to iteratee rearg configs. */\nexports.iterateeRearg = {\n 'mapKeys': [1],\n 'reduceRight': [1, 0]\n};\n\n/** Used to map method names to rearg configs. */\nexports.methodRearg = {\n 'assignInAllWith': [1, 0],\n 'assignInWith': [1, 2, 0],\n 'assignAllWith': [1, 0],\n 'assignWith': [1, 2, 0],\n 'differenceBy': [1, 2, 0],\n 'differenceWith': [1, 2, 0],\n 'getOr': [2, 1, 0],\n 'intersectionBy': [1, 2, 0],\n 'intersectionWith': [1, 2, 0],\n 'isEqualWith': [1, 2, 0],\n 'isMatchWith': [2, 1, 0],\n 'mergeAllWith': [1, 0],\n 'mergeWith': [1, 2, 0],\n 'padChars': [2, 1, 0],\n 'padCharsEnd': [2, 1, 0],\n 'padCharsStart': [2, 1, 0],\n 'pullAllBy': [2, 1, 0],\n 'pullAllWith': [2, 1, 0],\n 'rangeStep': [1, 2, 0],\n 'rangeStepRight': [1, 2, 0],\n 'setWith': [3, 1, 2, 0],\n 'sortedIndexBy': [2, 1, 0],\n 'sortedLastIndexBy': [2, 1, 0],\n 'unionBy': [1, 2, 0],\n 'unionWith': [1, 2, 0],\n 'updateWith': [3, 1, 2, 0],\n 'xorBy': [1, 2, 0],\n 'xorWith': [1, 2, 0],\n 'zipWith': [1, 2, 0]\n};\n\n/** Used to map method names to spread configs. */\nexports.methodSpread = {\n 'assignAll': { 'start': 0 },\n 'assignAllWith': { 'start': 0 },\n 'assignInAll': { 'start': 0 },\n 'assignInAllWith': { 'start': 0 },\n 'defaultsAll': { 'start': 0 },\n 'defaultsDeepAll': { 'start': 0 },\n 'invokeArgs': { 'start': 2 },\n 'invokeArgsMap': { 'start': 2 },\n 'mergeAll': { 'start': 0 },\n 'mergeAllWith': { 'start': 0 },\n 'partial': { 'start': 1 },\n 'partialRight': { 'start': 1 },\n 'without': { 'start': 1 },\n 'zipAll': { 'start': 0 }\n};\n\n/** Used to identify methods which mutate arrays or objects. */\nexports.mutate = {\n 'array': {\n 'fill': true,\n 'pull': true,\n 'pullAll': true,\n 'pullAllBy': true,\n 'pullAllWith': true,\n 'pullAt': true,\n 'remove': true,\n 'reverse': true\n },\n 'object': {\n 'assign': true,\n 'assignAll': true,\n 'assignAllWith': true,\n 'assignIn': true,\n 'assignInAll': true,\n 'assignInAllWith': true,\n 'assignInWith': true,\n 'assignWith': true,\n 'defaults': true,\n 'defaultsAll': true,\n 'defaultsDeep': true,\n 'defaultsDeepAll': true,\n 'merge': true,\n 'mergeAll': true,\n 'mergeAllWith': true,\n 'mergeWith': true,\n },\n 'set': {\n 'set': true,\n 'setWith': true,\n 'unset': true,\n 'update': true,\n 'updateWith': true\n }\n};\n\n/** Used to map real names to their aliases. */\nexports.realToAlias = (function() {\n var hasOwnProperty = Object.prototype.hasOwnProperty,\n object = exports.aliasToReal,\n result = {};\n\n for (var key in object) {\n var value = object[key];\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }\n return result;\n}());\n\n/** Used to map method names to other names. */\nexports.remap = {\n 'assignAll': 'assign',\n 'assignAllWith': 'assignWith',\n 'assignInAll': 'assignIn',\n 'assignInAllWith': 'assignInWith',\n 'curryN': 'curry',\n 'curryRightN': 'curryRight',\n 'defaultsAll': 'defaults',\n 'defaultsDeepAll': 'defaultsDeep',\n 'findFrom': 'find',\n 'findIndexFrom': 'findIndex',\n 'findLastFrom': 'findLast',\n 'findLastIndexFrom': 'findLastIndex',\n 'getOr': 'get',\n 'includesFrom': 'includes',\n 'indexOfFrom': 'indexOf',\n 'invokeArgs': 'invoke',\n 'invokeArgsMap': 'invokeMap',\n 'lastIndexOfFrom': 'lastIndexOf',\n 'mergeAll': 'merge',\n 'mergeAllWith': 'mergeWith',\n 'padChars': 'pad',\n 'padCharsEnd': 'padEnd',\n 'padCharsStart': 'padStart',\n 'propertyOf': 'get',\n 'rangeStep': 'range',\n 'rangeStepRight': 'rangeRight',\n 'restFrom': 'rest',\n 'spreadFrom': 'spread',\n 'trimChars': 'trim',\n 'trimCharsEnd': 'trimEnd',\n 'trimCharsStart': 'trimStart',\n 'zipAll': 'zip'\n};\n\n/** Used to track methods that skip fixing their arity. */\nexports.skipFixed = {\n 'castArray': true,\n 'flow': true,\n 'flowRight': true,\n 'iteratee': true,\n 'mixin': true,\n 'rearg': true,\n 'runInContext': true\n};\n\n/** Used to track methods that skip rearranging arguments. */\nexports.skipRearg = {\n 'add': true,\n 'assign': true,\n 'assignIn': true,\n 'bind': true,\n 'bindKey': true,\n 'concat': true,\n 'difference': true,\n 'divide': true,\n 'eq': true,\n 'gt': true,\n 'gte': true,\n 'isEqual': true,\n 'lt': true,\n 'lte': true,\n 'matchesProperty': true,\n 'merge': true,\n 'multiply': true,\n 'overArgs': true,\n 'partial': true,\n 'partialRight': true,\n 'propertyOf': true,\n 'random': true,\n 'range': true,\n 'rangeRight': true,\n 'subtract': true,\n 'zip': true,\n 'zipObject': true,\n 'zipObjectDeep': true\n};\n","module.exports = {\n 'ary': require('../ary'),\n 'assign': require('../_baseAssign'),\n 'clone': require('../clone'),\n 'curry': require('../curry'),\n 'forEach': require('../_arrayEach'),\n 'isArray': require('../isArray'),\n 'isError': require('../isError'),\n 'isFunction': require('../isFunction'),\n 'isWeakMap': require('../isWeakMap'),\n 'iteratee': require('../iteratee'),\n 'keys': require('../_baseKeys'),\n 'rearg': require('../rearg'),\n 'toInteger': require('../toInteger'),\n 'toPath': require('../toPath')\n};\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nmodule.exports = ary;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nmodule.exports = createBind;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n createHybrid = require('./_createHybrid'),\n createRecurry = require('./_createRecurry'),\n getHolder = require('./_getHolder'),\n replaceHolders = require('./_replaceHolders'),\n root = require('./_root');\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createCurry;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nmodule.exports = countHolders;\n","var LazyWrapper = require('./_LazyWrapper'),\n getData = require('./_getData'),\n getFuncName = require('./_getFuncName'),\n lodash = require('./wrapperLodash');\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nmodule.exports = isLaziable;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var realNames = require('./_realNames');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nmodule.exports = getFuncName;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nmodule.exports = realNames;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n baseLodash = require('./_baseLodash'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike'),\n wrapperClone = require('./_wrapperClone');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nmodule.exports = lodash;\n","var LazyWrapper = require('./_LazyWrapper'),\n LodashWrapper = require('./_LodashWrapper'),\n copyArray = require('./_copyArray');\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nmodule.exports = wrapperClone;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nmodule.exports = getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nmodule.exports = insertWrapDetails;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var arrayEach = require('./_arrayEach'),\n arrayIncludes = require('./_arrayIncludes');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nmodule.exports = updateWrapDetails;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var copyArray = require('./_copyArray'),\n isIndex = require('./_isIndex');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nmodule.exports = reorder;\n","var apply = require('./_apply'),\n createCtor = require('./_createCtor'),\n root = require('./_root');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nmodule.exports = createPartial;\n","var composeArgs = require('./_composeArgs'),\n composeArgsRight = require('./_composeArgsRight'),\n replaceHolders = require('./_replaceHolders');\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nmodule.exports = mergeData;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var createWrap = require('./_createWrap');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nmodule.exports = curry;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike'),\n isPlainObject = require('./isPlainObject');\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nmodule.exports = isError;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nmodule.exports = isWeakMap;\n","var baseClone = require('./_baseClone'),\n baseIteratee = require('./_baseIteratee');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nmodule.exports = iteratee;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var createWrap = require('./_createWrap'),\n flatRest = require('./_flatRest');\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nmodule.exports = rearg;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var arrayMap = require('./_arrayMap'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol'),\n stringToPath = require('./_stringToPath'),\n toKey = require('./_toKey'),\n toString = require('./toString');\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nmodule.exports = toPath;\n","module.exports = {\n 'cap': false,\n 'curry': false,\n 'fixed': false,\n 'immutable': false,\n 'rearg': false\n};\n","var map = {\n\t\"./af\": 297,\n\t\"./af.js\": 297,\n\t\"./ar\": 298,\n\t\"./ar-dz\": 299,\n\t\"./ar-dz.js\": 299,\n\t\"./ar-kw\": 300,\n\t\"./ar-kw.js\": 300,\n\t\"./ar-ly\": 301,\n\t\"./ar-ly.js\": 301,\n\t\"./ar-ma\": 302,\n\t\"./ar-ma.js\": 302,\n\t\"./ar-sa\": 303,\n\t\"./ar-sa.js\": 303,\n\t\"./ar-tn\": 304,\n\t\"./ar-tn.js\": 304,\n\t\"./ar.js\": 298,\n\t\"./az\": 305,\n\t\"./az.js\": 305,\n\t\"./be\": 306,\n\t\"./be.js\": 306,\n\t\"./bg\": 307,\n\t\"./bg.js\": 307,\n\t\"./bm\": 308,\n\t\"./bm.js\": 308,\n\t\"./bn\": 309,\n\t\"./bn.js\": 309,\n\t\"./bo\": 310,\n\t\"./bo.js\": 310,\n\t\"./br\": 311,\n\t\"./br.js\": 311,\n\t\"./bs\": 312,\n\t\"./bs.js\": 312,\n\t\"./ca\": 313,\n\t\"./ca.js\": 313,\n\t\"./cs\": 314,\n\t\"./cs.js\": 314,\n\t\"./cv\": 315,\n\t\"./cv.js\": 315,\n\t\"./cy\": 316,\n\t\"./cy.js\": 316,\n\t\"./da\": 317,\n\t\"./da.js\": 317,\n\t\"./de\": 318,\n\t\"./de-at\": 319,\n\t\"./de-at.js\": 319,\n\t\"./de-ch\": 320,\n\t\"./de-ch.js\": 320,\n\t\"./de.js\": 318,\n\t\"./dv\": 321,\n\t\"./dv.js\": 321,\n\t\"./el\": 322,\n\t\"./el.js\": 322,\n\t\"./en-au\": 323,\n\t\"./en-au.js\": 323,\n\t\"./en-ca\": 324,\n\t\"./en-ca.js\": 324,\n\t\"./en-gb\": 325,\n\t\"./en-gb.js\": 325,\n\t\"./en-ie\": 326,\n\t\"./en-ie.js\": 326,\n\t\"./en-il\": 327,\n\t\"./en-il.js\": 327,\n\t\"./en-in\": 328,\n\t\"./en-in.js\": 328,\n\t\"./en-nz\": 329,\n\t\"./en-nz.js\": 329,\n\t\"./en-sg\": 330,\n\t\"./en-sg.js\": 330,\n\t\"./eo\": 331,\n\t\"./eo.js\": 331,\n\t\"./es\": 332,\n\t\"./es-do\": 333,\n\t\"./es-do.js\": 333,\n\t\"./es-us\": 334,\n\t\"./es-us.js\": 334,\n\t\"./es.js\": 332,\n\t\"./et\": 335,\n\t\"./et.js\": 335,\n\t\"./eu\": 336,\n\t\"./eu.js\": 336,\n\t\"./fa\": 337,\n\t\"./fa.js\": 337,\n\t\"./fi\": 338,\n\t\"./fi.js\": 338,\n\t\"./fil\": 339,\n\t\"./fil.js\": 339,\n\t\"./fo\": 340,\n\t\"./fo.js\": 340,\n\t\"./fr\": 341,\n\t\"./fr-ca\": 342,\n\t\"./fr-ca.js\": 342,\n\t\"./fr-ch\": 343,\n\t\"./fr-ch.js\": 343,\n\t\"./fr.js\": 341,\n\t\"./fy\": 344,\n\t\"./fy.js\": 344,\n\t\"./ga\": 345,\n\t\"./ga.js\": 345,\n\t\"./gd\": 346,\n\t\"./gd.js\": 346,\n\t\"./gl\": 347,\n\t\"./gl.js\": 347,\n\t\"./gom-deva\": 348,\n\t\"./gom-deva.js\": 348,\n\t\"./gom-latn\": 349,\n\t\"./gom-latn.js\": 349,\n\t\"./gu\": 350,\n\t\"./gu.js\": 350,\n\t\"./he\": 351,\n\t\"./he.js\": 351,\n\t\"./hi\": 352,\n\t\"./hi.js\": 352,\n\t\"./hr\": 353,\n\t\"./hr.js\": 353,\n\t\"./hu\": 354,\n\t\"./hu.js\": 354,\n\t\"./hy-am\": 355,\n\t\"./hy-am.js\": 355,\n\t\"./id\": 356,\n\t\"./id.js\": 356,\n\t\"./is\": 357,\n\t\"./is.js\": 357,\n\t\"./it\": 358,\n\t\"./it-ch\": 359,\n\t\"./it-ch.js\": 359,\n\t\"./it.js\": 358,\n\t\"./ja\": 360,\n\t\"./ja.js\": 360,\n\t\"./jv\": 361,\n\t\"./jv.js\": 361,\n\t\"./ka\": 362,\n\t\"./ka.js\": 362,\n\t\"./kk\": 363,\n\t\"./kk.js\": 363,\n\t\"./km\": 364,\n\t\"./km.js\": 364,\n\t\"./kn\": 365,\n\t\"./kn.js\": 365,\n\t\"./ko\": 366,\n\t\"./ko.js\": 366,\n\t\"./ku\": 367,\n\t\"./ku.js\": 367,\n\t\"./ky\": 368,\n\t\"./ky.js\": 368,\n\t\"./lb\": 369,\n\t\"./lb.js\": 369,\n\t\"./lo\": 370,\n\t\"./lo.js\": 370,\n\t\"./lt\": 371,\n\t\"./lt.js\": 371,\n\t\"./lv\": 372,\n\t\"./lv.js\": 372,\n\t\"./me\": 373,\n\t\"./me.js\": 373,\n\t\"./mi\": 374,\n\t\"./mi.js\": 374,\n\t\"./mk\": 375,\n\t\"./mk.js\": 375,\n\t\"./ml\": 376,\n\t\"./ml.js\": 376,\n\t\"./mn\": 377,\n\t\"./mn.js\": 377,\n\t\"./mr\": 378,\n\t\"./mr.js\": 378,\n\t\"./ms\": 379,\n\t\"./ms-my\": 380,\n\t\"./ms-my.js\": 380,\n\t\"./ms.js\": 379,\n\t\"./mt\": 381,\n\t\"./mt.js\": 381,\n\t\"./my\": 382,\n\t\"./my.js\": 382,\n\t\"./nb\": 383,\n\t\"./nb.js\": 383,\n\t\"./ne\": 384,\n\t\"./ne.js\": 384,\n\t\"./nl\": 385,\n\t\"./nl-be\": 386,\n\t\"./nl-be.js\": 386,\n\t\"./nl.js\": 385,\n\t\"./nn\": 387,\n\t\"./nn.js\": 387,\n\t\"./oc-lnc\": 388,\n\t\"./oc-lnc.js\": 388,\n\t\"./pa-in\": 389,\n\t\"./pa-in.js\": 389,\n\t\"./pl\": 390,\n\t\"./pl.js\": 390,\n\t\"./pt\": 391,\n\t\"./pt-br\": 392,\n\t\"./pt-br.js\": 392,\n\t\"./pt.js\": 391,\n\t\"./ro\": 393,\n\t\"./ro.js\": 393,\n\t\"./ru\": 394,\n\t\"./ru.js\": 394,\n\t\"./sd\": 395,\n\t\"./sd.js\": 395,\n\t\"./se\": 396,\n\t\"./se.js\": 396,\n\t\"./si\": 397,\n\t\"./si.js\": 397,\n\t\"./sk\": 398,\n\t\"./sk.js\": 398,\n\t\"./sl\": 399,\n\t\"./sl.js\": 399,\n\t\"./sq\": 400,\n\t\"./sq.js\": 400,\n\t\"./sr\": 401,\n\t\"./sr-cyrl\": 402,\n\t\"./sr-cyrl.js\": 402,\n\t\"./sr.js\": 401,\n\t\"./ss\": 403,\n\t\"./ss.js\": 403,\n\t\"./sv\": 404,\n\t\"./sv.js\": 404,\n\t\"./sw\": 405,\n\t\"./sw.js\": 405,\n\t\"./ta\": 406,\n\t\"./ta.js\": 406,\n\t\"./te\": 407,\n\t\"./te.js\": 407,\n\t\"./tet\": 408,\n\t\"./tet.js\": 408,\n\t\"./tg\": 409,\n\t\"./tg.js\": 409,\n\t\"./th\": 410,\n\t\"./th.js\": 410,\n\t\"./tl-ph\": 411,\n\t\"./tl-ph.js\": 411,\n\t\"./tlh\": 412,\n\t\"./tlh.js\": 412,\n\t\"./tr\": 413,\n\t\"./tr.js\": 413,\n\t\"./tzl\": 414,\n\t\"./tzl.js\": 414,\n\t\"./tzm\": 415,\n\t\"./tzm-latn\": 416,\n\t\"./tzm-latn.js\": 416,\n\t\"./tzm.js\": 415,\n\t\"./ug-cn\": 417,\n\t\"./ug-cn.js\": 417,\n\t\"./uk\": 418,\n\t\"./uk.js\": 418,\n\t\"./ur\": 419,\n\t\"./ur.js\": 419,\n\t\"./uz\": 420,\n\t\"./uz-latn\": 421,\n\t\"./uz-latn.js\": 421,\n\t\"./uz.js\": 420,\n\t\"./vi\": 422,\n\t\"./vi.js\": 422,\n\t\"./x-pseudo\": 423,\n\t\"./x-pseudo.js\": 423,\n\t\"./yo\": 424,\n\t\"./yo.js\": 424,\n\t\"./zh-cn\": 425,\n\t\"./zh-cn.js\": 425,\n\t\"./zh-hk\": 426,\n\t\"./zh-hk.js\": 426,\n\t\"./zh-mo\": 427,\n\t\"./zh-mo.js\": 427,\n\t\"./zh-tw\": 428,\n\t\"./zh-tw.js\": 428\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 = 653;","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","/*\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n\nimport Axios from '@nextcloud/axios'\n\nimport OC from './OC/index'\n\nconst url = `${OC.getRootPath()}/status.php`\n\nconst check = () => {\n\tconsole.info('checking the Nextcloud maintenance status')\n\tAxios.get(url)\n\t\t.then(resp => resp.data)\n\t\t.then(status => {\n\t\t\tif (status.maintenance === false) {\n\t\t\t\tconsole.info('Nextcloud is not in maintenance mode anymore -> reloading')\n\n\t\t\t\twindow.location.reload()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconsole.info('Nextcloud is still in maintenance mode')\n\n\t\t\t// Wait 20sec before the next request\n\t\t\tsetTimeout(check, 20 * 1000)\n\t\t})\n\t\t.catch(console.error.bind(this))\n}\n\n// Off we go!\ncheck()\n"],"sourceRoot":""} |