{"version":3,"sources":["webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/supports-color/browser.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/source-map-consumer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/tcomb/lib/enums.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/chalk/node_modules/supports-color/index.js","webpack:///./node_modules/object-fit-images/dist/ofi.common-js.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/tcomb/lib/list.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/tcomb/lib/isTypeName.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/tcomb/lib/Number.js","webpack:///./node_modules/tcomb/lib/declare.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/stringifier.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/postcss-object-fit-images/index.js","webpack:///./node_modules/tcomb/lib/mixin.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/previous-map.js","webpack:///./node_modules/tcomb/lib/update.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/warn-once.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/rule.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/base64-vlq.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/array-set.js","webpack:///./node_modules/tcomb/lib/isString.js","webpack:///./node_modules/js-base64/base64.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/parse.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/ansi-styles/index.js","webpack:///./node_modules/tcomb/lib/func.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/unquote/index.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/css-syntax-error.js","webpack:///./node_modules/quote/quote.js","webpack:///./node_modules/tcomb/lib/refinement.js","webpack:///./node_modules/tcomb/lib/assert.js","webpack:///./node_modules/tcomb/lib/Array.js","webpack:///./node_modules/css-list-helpers/index.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/tcomb/lib/intersection.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/tcomb/lib/isUnion.js","webpack:///./node_modules/tcomb/lib/isStruct.js","webpack:///./node_modules/tcomb/lib/isIdentity.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/comment.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/source-node.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/map-generator.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/source-map-generator.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/container.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/plyr/dist/plyr.min.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/ansi-regex/index.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/declaration.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/tcomb/lib/maybe.js","webpack:///./node_modules/has-ansi/node_modules/ansi-regex/index.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/util.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/tcomb/lib/Function.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/result.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/chalk/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/lazy-result.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/strip-ansi/index.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/input.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/tcomb/lib/String.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/tcomb/lib/dict.js","webpack:///./node_modules/tcomb/lib/getFunctionName.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/vendor.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/tcomb/lib/struct.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/vue-plyr/dist/vue-plyr.es.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/has-ansi/index.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/tokenize.js","webpack:///./node_modules/tcomb/lib/Object.js","webpack:///./node_modules/tcomb/lib/tuple.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/tcomb/lib/create.js","webpack:///./node_modules/tcomb/lib/irreducible.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/tcomb/lib/isBoolean.js","webpack:///./node_modules/tcomb/lib/isType.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/tcomb/lib/isNumber.js","webpack:///./node_modules/tcomb/lib/isArray.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/warning.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/stringify.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/terminal-highlight.js","webpack:///./node_modules/tcomb/lib/match.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/quick-sort.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/base64.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/node.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/parse-css-font/lib/helpers.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/tcomb/lib/stringify.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/escape-string-regexp/index.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/root.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/tcomb/lib/union.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/at-rule.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/binary-search.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/source-map.js","webpack:///./node_modules/tcomb/index.js","webpack:///./node_modules/parse-css-font/index.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/tcomb/lib/getTypeName.js","webpack:///./node_modules/tcomb/lib/is.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/tcomb/lib/Date.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/tcomb/lib/Boolean.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/tcomb/lib/RegExp.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/tcomb/lib/Error.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/tcomb/lib/isNil.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/processor.js","webpack:///./node_modules/tcomb/lib/isFunction.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/tcomb/lib/Any.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/tcomb/lib/isMaybe.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/postcss.js","webpack:///./node_modules/tcomb/lib/forbidNewOperator.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/tcomb/lib/Nil.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/tcomb/lib/fail.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/parser.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/tcomb/lib/isObject.js","webpack:///./node_modules/svg4everybody/dist/svg4everybody.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/source-map/lib/mapping-list.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/postcss-object-fit-images/node_modules/postcss/lib/list.js","webpack:///./node_modules/core-js/modules/_string-ws.js"],"names":["LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","FF_ITERATOR","KEYS","VALUES","returnThis","this","module","exports","Base","NAME","Constructor","next","DEFAULT","IS_SET","FORCED","methods","key","IteratorPrototype","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","prototype","$native","$default","$entries","undefined","$anyNative","entries","call","Object","name","values","P","F","toInteger","defined","TO_STRING","that","pos","a","b","s","String","i","l","length","charCodeAt","charAt","slice","at","S","index","unicode","util","binarySearch","ArraySet","base64VLQ","quickSort","SourceMapConsumer","aSourceMap","sourceMap","JSON","parse","replace","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","version","getArg","sources","names","sourceRoot","sourcesContent","mappings","file","_version","Error","map","normalize","source","isAbsolute","relative","_names","fromArray","_sources","_mappings","Mapping","generatedLine","generatedColumn","originalLine","originalColumn","lastOffset","line","column","_sections","url","offset","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","defineProperty","get","_parseMappings","__originalMappings","_charIsMappingSeparator","aStr","c","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","eachMapping","aCallback","aContext","aOrder","context","order","_generatedMappings","_originalMappings","mapping","join","forEach","allGeneratedPositionsFor","aArgs","needle","has","indexOf","_findMapping","compareByOriginalPositions","push","lastColumn","create","smc","toArray","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","end","value","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","temp","originalMappings","decode","rest","compareByGeneratedPositionsDeflated","aNeedle","aMappings","aLineName","aColumnName","aComparator","aBias","TypeError","search","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","originalPositionFor","hasContentsOfAllSources","size","some","sc","sourceContentFor","aSource","nullOnMissing","urlParse","fileUriAbsPath","scheme","path","generatedPositionFor","constructor","j","sectionIndex","section","cmp","bias","every","content","generatedPosition","ret","sectionMappings","add","adjustedMapping","_unsupportedIterableToArray","o","minLen","n","toString","Array","from","test","core","global","speciesConstructor","promiseResolve","R","onFinally","C","Promise","isFunction","then","x","e","assert","isString","getDefaultName","k","stringify","enums","displayName","Enums","meta","identity","is","hasOwnProperty","of","split","ctx","IObject","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","val","res","O","self","f","result","argv","process","terminator","hasFlag","flag","stdout","isTTY","platform","TERM","OFI","propRegex","testImg","Image","style","supportsObjectFit","supportsObjectPosition","supportsOFI","supportsCurrentSrc","currentSrc","nativeGetAttribute","getAttribute","nativeSetAttribute","setAttribute","autoModeEnabled","createPlaceholder","w","h","polyfillCurrentSrc","el","srcset","window","picturefill","pf","_","ns","evaled","fillImg","reselect","curSrc","supported","src","getStyle","parsed","getComputedStyle","fontFamily","props","exec","setPlaceholder","img","width","height","placeholder","onImageReady","callback","naturalWidth","setTimeout","fixOne","ofi","skipTest","naturalHeight","keepSrcUsable","err","console","warn","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","descriptors","prop","set","ss","hijackAttributes","getOfiImageMaybe","HTMLImageElement","fix","imgs","opts","startAutoMode","document","getElementsByTagName","querySelectorAll","body","addEventListener","target","tagName","watchMQ","bind","anObject","ignoreCase","multiline","sticky","getTypeName","isIdentity","isArray","type","list","List","idempotent","len","actual","instance","update","patch","$keys","enumBugKeys","isNil","cof","arg","pIE","createDesc","toIObject","toPrimitive","IE8_DOM_DEFINE","gOPD","getOwnPropertyDescriptor","irreducible","isNumber","mixin","nextDeclareUniqueId","Declare","define","spec","_classCallCheck","__esModule","defaultRaw","colon","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","after","emptyBody","commentLeft","commentRight","capitalize","toUpperCase","Stringifier","builder","node","semicolon","root","raws","comment","left","raw","right","text","decl","between","string","rawValue","important","rule","block","atrule","params","afterName","nodes","last","child","before","start","own","detect","parent","first","rawCache","beforeAfter","method","walk","rawSemicolon","rawEmptyBody","rawIndent","p","parts","rawBeforeComment","walkComments","rawBeforeDecl","walkDecls","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","default","dP","getKeys","defineProperties","Properties","postcss","parseCssFont","quote","quoteIfNecessary","family","getLastPropertyDecl","currentDecl","declWalker","objFit","existingFont","objPosition","cloneAfter","replaceWith","cloneBefore","plugin","css","overwrite","defer","channel","port","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","run","id","fn","listener","event","data","args","arguments","Function","nextTick","now","port2","port1","onmessage","postMessage","importScripts","appendChild","removeChild","clear","_typeof","Symbol","iterator","obj","_jsBase","_sourceMap","_sourceMap2","_interopRequireDefault","_path","_path2","_fs","_fs2","PreviousMap","loadAnnotation","inline","startWith","annotation","prev","loadMap","consumerCache","withContent","substr","match","trim","decodeInline","utfd64","utf64","b64","uri","decodeURIComponent","Base64","encoding","prevPath","existsSync","readFileSync","SourceMapGenerator","isMap","dirname","isObject","getShallowCopy","concat","Date","RegExp","isChanged","commands","newValue","$apply","$push","elements","arr","$remove","$set","$splice","splices","reduce","acc","splice","apply","$swap","config","element","to","$unshift","$merge","isArrayIter","createProperty","getIterFn","iter","arrayLike","aLen","mapfn","iterFn","done","warnOnce","printed","message","_createClass","descriptor","enumerable","configurable","writable","protoProps","staticProps","_container","_container2","_warnOnce","_warnOnce2","_list","_list2","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","setPrototypeOf","__proto__","Rule","_Container","defaults","_this","comma","selector","sep","fails","wks","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","base64","VLQ_BASE_SHIFT","VLQ_BASE","VLQ_BASE_MASK","VLQ_CONTINUATION_BIT","toVLQSigned","aValue","fromVLQSigned","isNegative","shifted","encode","digit","encoded","vlq","aIndex","aOutParam","continuation","strLen","shift","createElement","it","ARG","tryGet","T","B","callee","getOwnPropertySymbols","hasNativeMap","Map","_array","_set","aArray","aAllowDuplicates","getOwnPropertyNames","sStr","toSetString","isDuplicate","idx","aIdx","factory","fromUint8Array","_Base64","b64chars","b64tab","bin","t","fromCharCode","cb_utob","cc","re_utob","utob","u","cb_encode","ccc","padlen","ord","chars","btoa","RangeError","_encode","mkUriSafe","m0","urisafe","encodeURI","Uint8Array","a0","a1","a2","toUint8Array","re_btou","cb_btou","cccc","cp","btou","cb_decode","_atob","atob","_decode","_fromURI","noConflict","VERSION","fromBase64","toBase64","noEnum","v","extendString","classof","getIteratorMethod","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","isRegExp","advanceStringIndex","callRegExpExec","$min","Math","min","$SPLIT","LENGTH","LAST_INDEX","MAX_UINT32","SUPPORTS_Y","SPLIT","$split","maybeCallNative","internalSplit","separator","limit","lastIndex","lastLength","output","flags","lastLastIndex","splitLimit","separatorCopy","splitter","rx","unicodeMatching","lim","q","A","z","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","_nonIterableSpread","_toConsumableArray","unsupportedIterableToArray","SRC","$toString","TPL","inspectSource","safe","_parser","_parser2","_input","_input2","input","parser","tokenize","loop","dPs","IE_PROTO","Empty","PROTOTYPE","createDict","iframeDocument","iframe","lt","gt","display","contentWindow","open","write","close","store","uid","USE_SYMBOL","$exports","assembleStyles","styles","modifiers","reset","bold","dim","italic","underline","inverse","hidden","strikethrough","colors","black","red","green","yellow","blue","magenta","cyan","white","gray","bgColors","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","grey","groupName","group","styleName","FunctionType","tuple","getFunctionName","domain","codomain","isInstrumented","instrumentation","func","FuncType","curried","argsType","g","newdomain","INCLUDES","includes","searchString","reg","un","object","ArrayProto","_supportsColor","_supportsColor2","_chalk","_chalk2","_terminalHighlight","_terminalHighlight2","CssSyntaxError","reason","setMessage","captureStackTrace","showSourceCode","color","lines","max","maxWidth","enabled","mark","aside","number","gutter","spacing","code","emptyQuotes","quotes","quoteString","quoteOptions","predicate","refinement","Refinement","fail","guard","Options","struct","maybe","Boolean","helpers","separators","splitBySpaces","spaces","splitByCommas","array","current","escape","char","_arrayWithHoles","_iterableToArrayLimit","_i","_s","_e","_arr","_n","_d","_nonIterableRest","_slicedToArray","ObjectProto","types","intersection","Intersection","wksExt","$Symbol","inheritIfRequired","gOPN","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","proxy","isType","_node","_node2","Comment","_Node","REGEX_NEWLINE","NEWLINE_CODE","isSourceNode","SourceNode","aLine","aColumn","aChunks","aName","children","sourceContents","fromStringWithSourceMap","aGeneratedCode","aSourceMapConsumer","aRelativePath","remainingLines","remainingLinesIndex","shiftNextLine","lineContents","getNextLine","newLine","lastGeneratedLine","lastMapping","nextLine","addMappingWithCode","sourceFile","setSourceContent","aChunk","chunk","prepend","unshift","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","aSourceFile","aSourceContent","walkSourceContents","fromSetString","toStringWithSourceMap","generated","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","original","addMapping","sourceContent","ceil","floor","isNaN","MapGenerator","mapOpts","previous","previousMaps","isInline","isSourcesContent","clearAnnotation","setSourcesContent","_this2","already","applyPrevMaps","_iterator","_isArray","_ref","applySourceMap","isAnnotation","addAnnotation","outputFile","eol","generateMap","generateString","resolve","sourcePath","_this3","lastIndexOf","generate","bitmap","MappingList","_skipValidation","_sourcesContents","generator","newMapping","_validateMapping","aSourceMapPath","newSources","newNames","unsortedForEach","aGenerated","aOriginal","_serializeMappings","nameIdx","sourceIdx","previousGeneratedLine","compareByGeneratedPositionsInflated","aSources","toJSON","_declaration","_declaration2","_comment","_comment2","cleanSource","Container","each","lastEach","indexes","walkRules","walkAtRules","append","_len","_key","_iterator2","_isArray2","_i2","_ref2","_len2","_key2","reverse","_iterator3","_isArray3","_i3","_ref3","_iterator4","_isArray4","_i4","_ref4","cleanRaws","keepBetween","_iterator5","_isArray5","_i5","_ref5","insertBefore","exist","_iterator6","_isArray6","_i6","_ref6","insertAfter","_iterator7","_isArray7","_i7","_ref7","remove","removeAll","_iterator8","_isArray8","_i8","_ref8","replaceValues","pattern","fast","condition","sample","AtRule","processed","rebuild","clone","Root","eachInside","eachDecl","eachRule","eachAtRule","eachComment","regExpExec","MATCH","$match","fullUnicode","matchStr","BREAK","RETURN","iterable","filter","getOwnPropertyDescriptors","addCSS","thumbWidth","watch","r","d","m","NodeList","Element","y","Event","parseFloat","toFixed","round","querySelector","rangeTouch","init","userSelect","webKitUserSelect","touchAction","listeners","changedTouches","getBoundingClientRect","clientX","disabled","preventDefault","bubbles","dispatchEvent","MutationObserver","addedNodes","observe","childList","subtree","documentElement","E","M","N","I","L","$","Number","D","H","nodeType","ownerDocument","KeyboardEvent","V","TextTrack","U","URL","startsWith","hostname","W","WebkitTransition","MozTransition","OTransition","transition","find","K","offsetHeight","Y","isIE","documentMode","isEdge","navigator","userAgent","isWebkit","isIPhone","isIos","maxTouchPoints","Q","X","assign","J","cloneNode","parentNode","nextSibling","G","Z","innerText","ee","te","ie","childNodes","se","replaceChild","ne","class","ae","le","classList","contains","oe","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","ce","container","he","ue","focus","preventScroll","classNames","tabFocus","de","me","audio","video","playsinline","api","ui","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","isHTML5","media","canPlayType","textTracks","touch","transitions","reducedMotion","matchMedia","pe","removeEventListener","ge","passive","capture","eventListeners","fe","be","ye","ve","CustomEvent","detail","plyr","we","Te","ready","ke","Ce","Ae","abs","Se","CSS","supports","Ee","Pe","Me","Ne","ratio","embed","videoWidth","videoHeight","xe","isVideo","wrapper","aspectRatio","paddingBottom","isVimeo","vimeo","premium","offsetWidth","parseInt","fullscreen","active","transform","videoFixedRatio","padding","Ie","Le","mime","quality","forced","getSources","speed","onChange","currentTime","paused","preload","readyState","playbackRate","once","play","load","blankVideo","debug","log","$e","Oe","toLowerCase","je","De","innerHTML","qe","html5","youtube","He","i18n","seekTime","title","Re","localStorage","getItem","setItem","storage","removeItem","Fe","XMLHttpRequest","responseText","response","status","responseType","send","Ve","getElementById","insertAdjacentElement","catch","Be","trunc","Ue","We","iconUrl","location","host","top","svg4everybody","cors","controls","selectors","buttons","pause","restart","rewind","fastForward","mute","settings","captions","progress","inputs","seek","volume","buffer","duration","seekTooltip","tooltip","toggleNativeControls","getIconUrl","iconPrefix","createElementNS","focusable","setAttributeNS","menu","badge","toggle","label","icon","labelPressed","iconPressed","control","createIcon","createLabel","autocomplete","role","updateRangeFill","setup","played","time","stopPropagation","showMenuPanel","nextElementSibling","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","checked","currentTrack","bindMenuItemShortcuts","formatTime","setRange","muted","pressed","nodeValue","buffered","setProperty","tooltips","pageX","markers","points","insertAdjacentHTML","invertTime","updateTimeDisplay","seeking","updateProgress","displayDuration","setMarkers","updateSeekTooltip","panels","getLabel","Ye","toggleMenuButton","checkMenu","createBadge","sort","createMenuItem","updateSetting","getTracks","toggled","language","minimumSpeed","maximumSpeed","popup","composedPath","position","opacity","removeAttribute","scrollWidth","scrollHeight","getMenuSize","propertyName","download","createButton","createProgress","createRange","createTime","setQualityMenu","setSpeedMenu","home","href","urls","isEmbed","provider","getQualityOptions","loadSprite","random","seektime","findElements","controlPressed","labels","mediaSession","metadata","MediaMetadata","mediaMetadata","artist","album","artwork","createDocumentFragment","marker","tip","ze","Ke","URLSearchParams","isYouTube","setCaptionsMenu","protocol","createObjectURL","languages","userLanguage","currentTrackNode","mode","updateCues","setLanguage","findTrack","enableTextTrack","getCurrentTrack","activeCues","getCueAsHTML","caption","Qe","autoplay","autopause","toggleInvert","clickToPlay","hideControls","resetOnEnd","disableContextMenu","selected","keyboard","focused","fallback","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","exitFullscreen","frameTitle","menuBack","normal","all","advertisement","qualityBadge","2160","1440","1080","720","576","480","sdk","googleIMA","events","editable","embedContainer","poster","posterEnabled","ads","playing","stopped","loading","hover","cues","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","attributes","hash","publisherId","tagUrl","byline","portrait","transparent","customControls","referrerPolicy","rel","showinfo","iv_load_policy","modestbranding","noCookie","Xe","Je","Ge","Ze","et","tt","error","st","player","scrollPosition","scrollX","scrollY","scrollTo","overflow","head","cleanupViewport","activeElement","shiftKey","forceFallback","native","requestFullscreen","webkitEnterFullscreen","toggleFallback","prefix","property","navigationUI","webkitExitFullscreen","cancelFullScreen","exit","enter","closest","parentElement","trapFocus","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","getRootNode","fullscreenElement","nt","onload","onerror","inject","updateVolume","timeUpdate","durationUpdate","checkPlaying","setTitle","setPoster","setMediaMetadata","reject","togglePoster","toggleControls","clearTimeout","timers","lastSeekTime","getPropertyValue","removeProperty","timeStamp","focusTimer","lastKeyDown","handleKey","toggleMenu","firstTouch","setTabFocus","margin","clientWidth","innerWidth","clientHeight","innerHeight","resized","checkLoading","isAudio","ended","togglePlay","setDownloadUrl","forward","toggleCaptions","currentTarget","hasAttribute","loaded","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","deltaX","deltaY","sign","increaseVolume","lastKey","altKey","ctrlKey","metaKey","decreaseVolume","usingNative","globalThis","ot","success","async","numRetries","relList","as","onbeforeload","sheet","cssText","defaultPrevented","returnPromise","isDefined","rt","ct","hasPlayed","ht","Vimeo","sidedock","gesture","$2","thumbnail_url","Player","disableTextTrack","stop","setVolume","setCurrentTime","setPlaybackRate","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","setAutopause","getVideoTitle","getCurrentTime","getDuration","getTextTracks","on","firstChild","getPaused","seconds","percent","build","ut","dt","mt","YT","onYouTubeIframeAPIReady","videoId","playerVars","hl","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","2","5","100","101","150","getPlaybackRate","getTitle","playVideo","pauseVideo","stopVideo","seekTo","getAvailablePlaybackRates","clearInterval","buffering","setInterval","getVideoLoadedFraction","lastBuffered","unMute","pt","google","ima","trigger","manager","destroy","displayContainer","startSafetyTimer","managerPromise","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","loader","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","requestAds","AdsRequest","adTagUrl","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","countdownTimer","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","cuePoints","getCuePoints","AdEvent","onAdEvent","getAd","getAdData","LOADED","pollCountdown","isLinear","STARTED","ALL_ADS_COMPLETED","loadAds","contentComplete","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","LOG","adError","getMessage","cancel","addCuePoints","discardAdBreak","resize","ViewMode","NORMAL","initialize","initialized","zIndex","safetyTimer","AV_PUBLISHERID","AV_CHANNELID","AV_URL","cb","AV_WIDTH","AV_HEIGHT","AV_CDIM2","ft","bt","startTime","endTime","yt","vt","getThumbnails","determineContainerAutoSizing","thumbnails","getThumbnail","frames","urlPrefix","substring","mousePosX","thumb","showImageAtCurrentTime","toggleThumbContainer","button","mouseDown","toggleScrubbingContainer","lastTime","scrubbing","setScrubbingContainerSize","setThumbContainerSizeAndPos","findIndex","loadedImages","showingThumb","loadImage","currentImageElement","dataset","filename","showImage","removeOldImages","loadingImage","usingSprites","showingThumbFilename","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","deleting","thumbContainerHeight","sizeSpecifiedInCSS","thumbAspectRatio","setThumbContainerPos","lastMouseMoveTime","currentScrubbingImageElement","currentThumbnailImageElement","wt","cancelRequests","check","crossorigin","addStyleHook","insertElements","tracks","Tt","webkitShowPlaybackTargetPicker","unload","failed","jQuery","WeakMap","className","searchParams","tabindex","migrateStyles","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","change","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","kt","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","propertyIsEnumerable","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","aFunction","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","promise","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","reaction","exited","handler","_h","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","capability","$$reject","remaining","$index","alreadyCalled","race","SHARED","copyright","Declaration","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","isTargetAlreadyObserved","_observationTargets","item","_registerInstance","entry","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","_parseRootMargin","opt_rootMargin","marginString","margins","unit","_monitoringIntersections","_monitoringInterval","addEvent","_domObserver","characterData","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","getEmptyRect","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getParentNode","atRoot","parentRect","parentComputedStyle","computeRectIntersection","bottom","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","opt_options","throttle","rootMargin","performance","timeout","timer","opt_useCapture","attachEvent","detatchEvent","rect1","rect2","isMaybe","Any","Nil","Maybe","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","expProto","SAFE_CLOSING","riter","skipClosing","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","auth","urlGenerate","aParsedUrl","aPath","part","up","aRoot","aPathUrl","aRootUrl","joined","level","supportsNullProto","isProtoString","mappingA","mappingB","onlyCompareOriginal","onlyCompareGenerated","strcmp","aStr1","aStr2","$at","iterated","_t","point","builtinExec","shared","_warning","_warning2","Result","processor","messages","lastPlugin","postcssPlugin","warning","warnings","escapeStringRegexp","ansiStyles","stripAnsi","hasAnsi","supportsColor","defineProps","isSimpleWindowsTerm","Chalk","closeRe","_styles","applyStyle","argsLen","nestedStyles","originalDim","hasColor","stripColor","webpackPolyfill","deprecate","paths","$includes","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","fastKey","getWeak","onFreeze","NEED","_mapGenerator","_mapGenerator2","_stringify2","_stringify3","_result","_result2","_parse","_parse2","isPromise","LazyResult","stringified","syntax","sync","handleError","postcssVersion","pluginName","pluginVer","runtimeVer","asyncTick","plugins","processing","stringifier","ansiRegex","_cssSyntaxError","_cssSyntaxError2","_previousMap","_previousMap2","sequence","Input","mapResolve","origin","valueOf","_arrayLikeToArray","arr2","dict","Dict","DESCRIPTORS","gOPS","$assign","getSymbols","isEnum","vendor","unprefixed","$find","__g","extend","mixins","Struct","expected","structs","script","required","mounted","$el","$emit","emitPlayerEvent","beforeDestroy","hideYouTubeDOMError","computed","compiledTemplate","injectStyle","defaultExport","isFunctionalTemplate","isShadowMode","createInjector","createInjectorSSR","createInjectorShadow","__vue_script__","__file","__vue_render__","_vm","$createElement","_self","__vue_staticRenderFns__","__vue_inject_styles__","__vue_scope_id__","__vue_module_identifier__","__vue_is_functional_template__","VuePlyr","Components","VuePlyrPlugin","install","Vue","component","use","windowNames","getWindowNames","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","tokens","ignore","ignoreErrors","nextOffset","escaped","escapePos","unclosed","what","Tuple","def","tag","stat","FProto","nameRE","macrotask","Observer","WebKitMutationObserver","flush","standalone","createTextNode","isStruct","Irreducible","__e","Attributes","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","_k","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","buggy","isFinite","Warning","positionBy","opt","word","hiddenKeys","_stringifier","_stringifier2","_tokenize","_tokenize2","HIGHLIGHT_THEME","getTokenType","nextToken","terminalHighlight","token","swap","ary","randomIntInRange","low","high","doQuickSort","comparator","pivotIndex","pivot","intToCharMap","charCode","bigA","bigZ","littleA","littleZ","zero","nine","plus","slash","littleOffset","numberOffset","UNSCOPABLES","cloned","Node","overrides","moveTo","newParent","moveBefore","otherNode","moveAfter","fixed","defaultType","positionInside","removeSelf","cleanStyles","cssFontSizeKeywords","isSize","emptyObject","freeze","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isPlainObject","isValidArrayIndex","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","remove$2","hasOwn","cached","cache","hit","camelizeRE","camelize","hyphenateRE","hyphenate","polyfillBind","boundFn","_length","nativeBind","bind$1","_from","noop","no","genStaticKeys$1","modules","staticKeys","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","getTime","keysA","keysB","looseIndexOf","called","hasChanged","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","parsePath","segments","hasProto","inBrowser","UA","isIE9","isIOS","_isServer","isFF","nativeWatch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","Ctor","_Set","hasSymbol","Reflect","ownKeys","Set","currentInstance","setCurrentInstance","vm","_scope","off","VNode","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","vnode","uid$2","Dep","subs","addSub","sub","removeSub","depend","info","addDep","targetStack","pushTarget","popTarget","pop","arrayProto","arrayMethods","methodsToPatch","inserted","ob","__ob__","observeArray","dep","arrayKeys","NO_INIITIAL_VALUE","shouldObserve","toggleObserving","mockDep","shallow","mock","vmCount","defineReactive","ssrMockReactivity","isRef","__v_skip","customSetter","getter","childOb","dependArray","newVal","isReadonly","_isVue","del","shallowReactive","makeReactive","__v_isReadonly","__v_isRef","proxyWithRefUnwrap","oldValue","normalizeEvent","createFnInvoker","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","cur","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","merged","extractPropsFromVNodeData","propOptions","attrs","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","createElement$1","normalizationType","alwaysNormalize","_createElement","scopedSlots","pre","resolveAsset","createComponent","applyNS","registerDeepBindings","force","traverse","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","$scopedSlots","$slots","slot","resolveFilter","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","domProps","camelizedKey","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic$1","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","prependModifier","symbol","installRenderHelpers","_o","_l","_q","_m","_f","_b","_u","_g","_p","resolveSlots","slots","name_1","name_2","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","normalized","initSetup","_setupContext","createSetupContext","setupResult","_props","_setupState","__sfc","_setupProxy","initAttrsProxy","initSlotsProxy","expose","exposed","_attrsProxy","syncSetupAttrs","$attrs","changed","defineProxyAttr","_slotsProxy","syncSetupSlots","initRender","_vnode","parentVnode","_parentVnode","renderContext","_renderChildren","$parent","parentData","_parentListeners","target$1","currentRenderingInstance","renderMixin","$nextTick","_render","_isMounted","ensureCtor","comp","base","toStringTag","createAsyncPlaceholder","resolveAsyncComponent","baseCtor","errorComp","resolved","owner","owners","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","renderCompleted","$forceUpdate","reject_1","res_1","delay","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","add$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i_1","cbs","activeInstance","setActiveInstance","prevActiveInstance","initLifecycle","abstract","$children","$refs","_provided","_watcher","_inactive","_directInactive","_isDestroyed","_isBeingDestroyed","lifecycleMixin","_update","hydrating","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","$destroy","callHook$1","_data","mountComponent","updateComponent","watcherOptions","Watcher","preWatchers","_preWatchers","updateChildComponent","propsData","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","$listeners","propKeys","_propKeys","validateProp","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","setContext","handlers","activatedChildren","waiting","flushing","index$1","resetSchedulerState","currentFlushTimestamp","getNow","performance_1","createEvent","sortCompareFn","post","flushSchedulerQueue","watcher","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueActivatedComponent","queueWatcher","noRecurse","WATCHER","activeEffectScope","EffectScope","detached","effects","cleanups","scopes","currentEffectScope","fromParent","teardown","recordEffectScope","effect","scope","resolveProvided","parentProvides","hooks","errorCaptured","globalHandleError","_handled","logError","timerFunc","isUsingMicroTask","callbacks","pending","flushCallbacks","copies","p_1","counter_1","observer","textNode_1","_resolve","createLifeCycle","hookName","injectHook","mergeLifecycleHook","seenObjects","_traverse","seen","isA","isFrozen","depId","uid$1","expOrFn","isRenderWatcher","deep","user","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","evaluate","onStop","sharedPropertyDefinition","sourceKey","initState","initProps$1","initMethods","initData","initComputed$1","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","$delete","immediate","initProvide","provideOption","provide","provided","initInjections","resolveInject","provideKey","provideDefault","initMixin$1","_init","_uid","_isComponent","initInternalComponent","mergeOptions","resolveConstructorOptions","$mount","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","components","modified","latest","sealed","sealedOptions","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","cloneAndMarkFunctionalResult","vnodes","getComponentName","__name","componentVNodeHooks","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","oldVnode","insert","hooksToMerge","_base","cid","model","transformModel","nativeOn","installComponentHooks","inlineTemplate","toMerge","_merged","mergeHook","f1","f2","warn$2","strats","mergeData","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives$1","dirs","directives","extends","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","getType","functionTypeCheckRE","isSameType","expectedTypes","initUse","installedPlugins","_installedPlugins","initMixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","Comp","initAssetRegisters","definition","_getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","created","destroyed","updated","builtInComponents","initGlobalAPI","configDef","delete","observable","acceptValue","attr","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","namespaceMap","svg","math","isHTMLTag","isSVG","isPreTag","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","query","multiple","namespace","createComment","newNode","referenceNode","setTextContent","textContent","setStyleScope","nodeOps","ref","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","activate","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","rm","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","i_5","hydrate","postpatch","invokeInsertHook","initial","i_6","isRenderedModule","inVPre","hasChildNodes","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i_8","i_9","insert_1","i_10","directives$1","updateDirectives","oldDir","dir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","__ieph","blocker_1","stopImmediatePropagation","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","chr","expressionPos","expressionEndPos","klass$1","validDivisionCharRE","parseFilters","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","msg","range","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","addHandler","middle","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","baseValueExpression","valueExpression","assignment","genAssignmentCode","parseModel","eof","isStringStart","parseString","parseBracket","inBracket","stringQuote","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","model$1","_warn","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","needCompositionGuard","normalizeEvents","event_1","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","updateDOMListeners","svgContainer","updateDOMProps","oldProps","_value","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","normalizedName","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","style$1","whitespaceRE$1","addClass","removeClass","tar","resolveTransition","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","onEnd","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","modules$1","vmodel","directive","binding","_vOptions","setSelected","getValue","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","option","selectedIndex","initEvent","locateNode","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","el_1","WebkitTransform","transitionDuration","_moveCb","_hasMove","newPos","oldPos","dx","dy","platformComponents","defaultTagRE","regexEscapeRE","buildRegex","delimiters","parseText","tagRE","tokenValue","rawTokens","transformNode$1","classBinding","genData$2","klass","transformNode","genData","styleBinding","genData$1","decoder","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","attribute","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","parseHTML","lastTag","stack","expectHTML","endTagLength_1","stackedTag_1","reStackedTag","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","curIndex","startTagMatch","parseStartTag","handleStartTag","state_1","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE","decodeHTMLCached","emptySlotScopeToken","createASTElement","makeAttrsMap","template","currentParent","preserveWhitespace","whitespaceOption","whitespace","inPre","closeElement","trimEndingWhitespace","processElement","if","elseif","else","addIfCondition","forbidden","processIfConditions","slotScope","slotTarget","lastNode","comments","outputSourceRange","guardIESVGBug","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","isTextTag","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","checkInFor","parseFor","inMatch","for","alias","iteratorMatch","iterator1","iterator2","findPrevElement","ifConditions","slotTargetDynamic","slotBinding","getSlotName","name_3","slotContainer_1","slotName","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","ret_1","ieNSBug","ieNSPrefix","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","genStaticKeysCached","genStaticKeys","optimize","markStatic","markStaticRoots","static","staticInFor","staticRoot","isDirectChildOfTemplateFor","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","space","down","keyNames","genGuard","modifierCode","prevent","ctrl","alt","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","modifiers_1","keyModifier","genKeyFilter","genFilterCode","keyVal","keyCode","keyName","wrapListeners","wrapData","baseDirectives","cloak","CodegenState","dataGenFns","maybeComponent","onceId","ast","state","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","bindings","__isScriptSetup","checkBindingType","genChildren","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","parent_2","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","normalizationType_1","getNormalizationType","gen_1","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","componentName","dynamicProps","createFunction","errors","createCompileToFunctionFn","compile","compiled","fnGenErrors","createCompilerCreator","baseCompile","finalOptions","tips","compileToFunctions","div","createCompiler","getShouldDecode","idToTemplate","mount","getOuterHTML","outerHTML","matchOperatorsRe","toResult","Processor","prevMap","PromiseCapability","$$resolve","isUnion","union","Union","dispatch","_Container$prototype$","_Container$prototype$2","recursiveSearch","aLow","aHigh","aHaystack","aCompare","mid","non","ltrim","rtrim","exporter","ALIAS","FORCE","Arr","Bool","Dat","Err","Func","Num","Obj","Str","declare","subtype","unquote","globalKeywords","systemFontKeywords","fontWeightKeywords","fontStyleKeywords","fontStretchKeywords","cssListHelpers","SystemFont","system","Font","variant","weight","stretch","lineHeight","parseLineHeight","font","isLocked","$iterators","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","_defineProperty","promiseCapability","toAbsoluteIndex","IS_INCLUDES","fromIndex","isBoolean","$trim","NUMBER","$Number","BROKEN_COF","TRIM","argument","third","radix","maxCode","NaN","digits","px","addToUnscopables","Arguments","arrayIndexOf","_lazyResult","_lazyResult2","symbols","normalizeArray","allowAboveRoot","basename","matchedSlash","xs","resolvedPath","resolvedAbsolute","cwd","trailingSlash","fromParts","toParts","samePartsLength","outputParts","delimiter","hasRoot","ext","extname","startDot","startPart","preDotState","_processor","_processor2","_atRule","_atRule2","_vendor","_vendor2","_rule","_rule2","_root","_root2","initializer","creator","transformer","atRule","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","browser","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","chdir","umask","Parser","emptyRule","other","endFile","bracket","brackets","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","spacesAndCommentsFromStart","precheckMissedSemicolon","stringFrom","spacesFromEnd","_type","checkMissedSemicolon","unnamedAtrule","unexpectedClose","unclosedBlock","clean","lastTokenType","doubleColon","founded","forbiddenField","fragment","viewBox","loadreadystatechange","xhr","onreadystatechange","cachedDocument","_cachedDocument","implementation","createHTMLDocument","_cachedTarget","_embeds","rawopts","oninterval","uses","getSVGAncestor","attributeName","polyfill","validate","srcSplit","requests","numberOfSvgUseElementsToBypass","newerIEUA","webkitUA","olderEdgeUA","edgeUA","inIframe","nodeName","generatedPositionAfter","lineA","lineB","columnA","columnB","_sorted","_last","aThisArg","aMapping","letter"],"mappings":"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","file":"js/chunk-vendors.js","sourcesContent":["'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\nmodule.exports = false;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap)\n : new BasicSourceMapConsumer(sourceMap);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n if (source != null && sourceRoot != null) {\n source = util.join(sourceRoot, source);\n }\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: Optional. the column number in the original source.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n if (this.sourceRoot != null) {\n needle.source = util.relative(this.sourceRoot, needle.source);\n }\n if (!this._sources.has(needle.source)) {\n return [];\n }\n needle.source = this._sources.indexOf(needle.source);\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The only parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._sources.toArray().map(function (s) {\n return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;\n }, this);\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n if (this.sourceRoot != null) {\n source = util.join(this.sourceRoot, source);\n }\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n if (this.sourceRoot != null) {\n aSource = util.relative(this.sourceRoot, aSource);\n }\n\n if (this._sources.has(aSource)) {\n return this.sourcesContent[this._sources.indexOf(aSource)];\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = aSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + aSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + aSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n if (this.sourceRoot != null) {\n source = util.relative(this.sourceRoot, source);\n }\n if (!this._sources.has(source)) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n source = this._sources.indexOf(source);\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The only parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = JSON.parse(aSourceMap.replace(/^\\)\\]\\}'/, ''));\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'))\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source.\n * - column: The column number in the generated source.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null.\n * - column: The column number in the original source, or null.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source.\n * - column: The column number in the original source.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null.\n * - column: The column number in the generated source, or null.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if (section.consumer.sourceRoot !== null) {\n source = util.join(section.consumer.sourceRoot, source);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar forbidNewOperator = require('./forbidNewOperator');\nvar isString = require('./isString');\nvar isObject = require('./isObject');\n\nfunction getDefaultName(map) {\n return Object.keys(map).map(function (k) { return assert.stringify(k); }).join(' | ');\n}\n\nfunction enums(map, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isObject(map), function () { return 'Invalid argument map ' + assert.stringify(map) + ' supplied to enums(map, [name]) combinator (expected a dictionary of String -> String | Number)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to enums(map, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(map);\n\n function Enums(value, path) {\n\n if (process.env.NODE_ENV !== 'production') {\n forbidNewOperator(this, Enums);\n path = path || [displayName];\n assert(Enums.is(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/') + ' (expected one of ' + assert.stringify(Object.keys(map)) + ')'; });\n }\n\n return value;\n }\n\n Enums.meta = {\n kind: 'enums',\n map: map,\n name: name,\n identity: true\n };\n\n Enums.displayName = displayName;\n\n Enums.is = function (x) {\n return map.hasOwnProperty(x);\n };\n\n return Enums;\n}\n\nenums.of = function (keys, name) {\n keys = isString(keys) ? keys.split(' ') : keys;\n var value = {};\n keys.forEach(function (k) {\n value[k] = k;\n });\n return enums(value, name);\n};\n\nenums.getDefaultName = getDefaultName;\nmodule.exports = enums;\n\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\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 var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","'use strict';\nvar argv = process.argv;\n\nvar terminator = argv.indexOf('--');\nvar hasFlag = function (flag) {\n\tflag = '--' + flag;\n\tvar pos = argv.indexOf(flag);\n\treturn pos !== -1 && (terminator !== -1 ? pos < terminator : true);\n};\n\nmodule.exports = (function () {\n\tif ('FORCE_COLOR' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (hasFlag('no-color') ||\n\t\thasFlag('no-colors') ||\n\t\thasFlag('color=false')) {\n\t\treturn false;\n\t}\n\n\tif (hasFlag('color') ||\n\t\thasFlag('colors') ||\n\t\thasFlag('color=true') ||\n\t\thasFlag('color=always')) {\n\t\treturn true;\n\t}\n\n\tif (process.stdout && !process.stdout.isTTY) {\n\t\treturn false;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\treturn true;\n\t}\n\n\tif ('COLORTERM' in process.env) {\n\t\treturn true;\n\t}\n\n\tif (process.env.TERM === 'dumb') {\n\t\treturn false;\n\t}\n\n\tif (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n})();\n","/*! npm.im/object-fit-images 3.2.4 */\n'use strict';\n\nvar OFI = 'bfred-it:object-fit-images';\nvar propRegex = /(object-fit|object-position)\\s*:\\s*([-.\\w\\s%]+)/g;\nvar testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image();\nvar supportsObjectFit = 'object-fit' in testImg.style;\nvar supportsObjectPosition = 'object-position' in testImg.style;\nvar supportsOFI = 'background-size' in testImg.style;\nvar supportsCurrentSrc = typeof testImg.currentSrc === 'string';\nvar nativeGetAttribute = testImg.getAttribute;\nvar nativeSetAttribute = testImg.setAttribute;\nvar autoModeEnabled = false;\n\nfunction createPlaceholder(w, h) {\n\treturn (\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='\" + w + \"' height='\" + h + \"'%3E%3C/svg%3E\");\n}\n\nfunction polyfillCurrentSrc(el) {\n\tif (el.srcset && !supportsCurrentSrc && window.picturefill) {\n\t\tvar pf = window.picturefill._;\n\t\t// parse srcset with picturefill where currentSrc isn't available\n\t\tif (!el[pf.ns] || !el[pf.ns].evaled) {\n\t\t\t// force synchronous srcset parsing\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\tif (!el[pf.ns].curSrc) {\n\t\t\t// force picturefill to parse srcset\n\t\t\tel[pf.ns].supported = false;\n\t\t\tpf.fillImg(el, {reselect: true});\n\t\t}\n\n\t\t// retrieve parsed currentSrc, if any\n\t\tel.currentSrc = el[pf.ns].curSrc || el.src;\n\t}\n}\n\nfunction getStyle(el) {\n\tvar style = getComputedStyle(el).fontFamily;\n\tvar parsed;\n\tvar props = {};\n\twhile ((parsed = propRegex.exec(style)) !== null) {\n\t\tprops[parsed[1]] = parsed[2];\n\t}\n\treturn props;\n}\n\nfunction setPlaceholder(img, width, height) {\n\t// Default: fill width, no height\n\tvar placeholder = createPlaceholder(width || 1, height || 0);\n\n\t// Only set placeholder if it's different\n\tif (nativeGetAttribute.call(img, 'src') !== placeholder) {\n\t\tnativeSetAttribute.call(img, 'src', placeholder);\n\t}\n}\n\nfunction onImageReady(img, callback) {\n\t// naturalWidth is only available when the image headers are loaded,\n\t// this loop will poll it every 100ms.\n\tif (img.naturalWidth) {\n\t\tcallback(img);\n\t} else {\n\t\tsetTimeout(onImageReady, 100, img, callback);\n\t}\n}\n\nfunction fixOne(el) {\n\tvar style = getStyle(el);\n\tvar ofi = el[OFI];\n\tstyle['object-fit'] = style['object-fit'] || 'fill'; // default value\n\n\t// Avoid running where unnecessary, unless OFI had already done its deed\n\tif (!ofi.img) {\n\t\t// fill is the default behavior so no action is necessary\n\t\tif (style['object-fit'] === 'fill') {\n\t\t\treturn;\n\t\t}\n\n\t\t// Where object-fit is supported and object-position isn't (Safari < 10)\n\t\tif (\n\t\t\t!ofi.skipTest && // unless user wants to apply regardless of browser support\n\t\t\tsupportsObjectFit && // if browser already supports object-fit\n\t\t\t!style['object-position'] // unless object-position is used\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// keep a clone in memory while resetting the original to a blank\n\tif (!ofi.img) {\n\t\tofi.img = new Image(el.width, el.height);\n\t\tofi.img.srcset = nativeGetAttribute.call(el, \"data-ofi-srcset\") || el.srcset;\n\t\tofi.img.src = nativeGetAttribute.call(el, \"data-ofi-src\") || el.src;\n\n\t\t// preserve for any future cloneNode calls\n\t\t// https://github.com/bfred-it/object-fit-images/issues/53\n\t\tnativeSetAttribute.call(el, \"data-ofi-src\", el.src);\n\t\tif (el.srcset) {\n\t\t\tnativeSetAttribute.call(el, \"data-ofi-srcset\", el.srcset);\n\t\t}\n\n\t\tsetPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height);\n\n\t\t// remove srcset because it overrides src\n\t\tif (el.srcset) {\n\t\t\tel.srcset = '';\n\t\t}\n\t\ttry {\n\t\t\tkeepSrcUsable(el);\n\t\t} catch (err) {\n\t\t\tif (window.console) {\n\t\t\t\tconsole.warn('https://bit.ly/ofi-old-browser');\n\t\t\t}\n\t\t}\n\t}\n\n\tpolyfillCurrentSrc(ofi.img);\n\n\tel.style.backgroundImage = \"url(\\\"\" + ((ofi.img.currentSrc || ofi.img.src).replace(/\"/g, '\\\\\"')) + \"\\\")\";\n\tel.style.backgroundPosition = style['object-position'] || 'center';\n\tel.style.backgroundRepeat = 'no-repeat';\n\tel.style.backgroundOrigin = 'content-box';\n\n\tif (/scale-down/.test(style['object-fit'])) {\n\t\tonImageReady(ofi.img, function () {\n\t\t\tif (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) {\n\t\t\t\tel.style.backgroundSize = 'contain';\n\t\t\t} else {\n\t\t\t\tel.style.backgroundSize = 'auto';\n\t\t\t}\n\t\t});\n\t} else {\n\t\tel.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%');\n\t}\n\n\tonImageReady(ofi.img, function (img) {\n\t\tsetPlaceholder(el, img.naturalWidth, img.naturalHeight);\n\t});\n}\n\nfunction keepSrcUsable(el) {\n\tvar descriptors = {\n\t\tget: function get(prop) {\n\t\t\treturn el[OFI].img[prop ? prop : 'src'];\n\t\t},\n\t\tset: function set(value, prop) {\n\t\t\tel[OFI].img[prop ? prop : 'src'] = value;\n\t\t\tnativeSetAttribute.call(el, (\"data-ofi-\" + prop), value); // preserve for any future cloneNode\n\t\t\tfixOne(el);\n\t\t\treturn value;\n\t\t}\n\t};\n\tObject.defineProperty(el, 'src', descriptors);\n\tObject.defineProperty(el, 'currentSrc', {\n\t\tget: function () { return descriptors.get('currentSrc'); }\n\t});\n\tObject.defineProperty(el, 'srcset', {\n\t\tget: function () { return descriptors.get('srcset'); },\n\t\tset: function (ss) { return descriptors.set(ss, 'srcset'); }\n\t});\n}\n\nfunction hijackAttributes() {\n\tfunction getOfiImageMaybe(el, name) {\n\t\treturn el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el;\n\t}\n\tif (!supportsObjectPosition) {\n\t\tHTMLImageElement.prototype.getAttribute = function (name) {\n\t\t\treturn nativeGetAttribute.call(getOfiImageMaybe(this, name), name);\n\t\t};\n\n\t\tHTMLImageElement.prototype.setAttribute = function (name, value) {\n\t\t\treturn nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value));\n\t\t};\n\t}\n}\n\nfunction fix(imgs, opts) {\n\tvar startAutoMode = !autoModeEnabled && !imgs;\n\topts = opts || {};\n\timgs = imgs || 'img';\n\n\tif ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) {\n\t\treturn false;\n\t}\n\n\t// use imgs as a selector or just select all images\n\tif (imgs === 'img') {\n\t\timgs = document.getElementsByTagName('img');\n\t} else if (typeof imgs === 'string') {\n\t\timgs = document.querySelectorAll(imgs);\n\t} else if (!('length' in imgs)) {\n\t\timgs = [imgs];\n\t}\n\n\t// apply fix to all\n\tfor (var i = 0; i < imgs.length; i++) {\n\t\timgs[i][OFI] = imgs[i][OFI] || {\n\t\t\tskipTest: opts.skipTest\n\t\t};\n\t\tfixOne(imgs[i]);\n\t}\n\n\tif (startAutoMode) {\n\t\tdocument.body.addEventListener('load', function (e) {\n\t\t\tif (e.target.tagName === 'IMG') {\n\t\t\t\tfix(e.target, {\n\t\t\t\t\tskipTest: opts.skipTest\n\t\t\t\t});\n\t\t\t}\n\t\t}, true);\n\t\tautoModeEnabled = true;\n\t\timgs = 'img'; // reset to a generic selector for watchMQ\n\t}\n\n\t// if requested, watch media queries for object-fit change\n\tif (opts.watchMQ) {\n\t\twindow.addEventListener('resize', fix.bind(null, imgs, {\n\t\t\tskipTest: opts.skipTest\n\t\t}));\n\t}\n}\n\nfix.supportsObjectFit = supportsObjectFit;\nfix.supportsObjectPosition = supportsObjectPosition;\n\nhijackAttributes();\n\nmodule.exports = fix;\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\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.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar getTypeName = require('./getTypeName');\nvar isIdentity = require('./isIdentity');\nvar create = require('./create');\nvar is = require('./is');\nvar isArray = require('./isArray');\n\nfunction getDefaultName(type) {\n return 'Array<' + getTypeName(type) + '>';\n}\n\nfunction list(type, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(type), function () { return 'Invalid argument type ' + assert.stringify(type) + ' supplied to list(type, [name]) combinator (expected a type)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to list(type, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(type);\n var typeNameCache = getTypeName(type);\n var identity = isIdentity(type); // the list is identity iif type is identity\n\n function List(value, path) {\n\n if (process.env.NODE_ENV === 'production') {\n if (identity) {\n return value; // just trust the input if elements must not be hydrated\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n path = path || [displayName];\n assert(isArray(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/') + ' (expected an array of ' + typeNameCache + ')'; });\n }\n\n var idempotent = true; // will remain true if I can reutilise the input\n var ret = []; // make a temporary copy, will be discarded if idempotent remains true\n for (var i = 0, len = value.length; i < len; i++ ) {\n var actual = value[i];\n var instance = create(type, actual, ( process.env.NODE_ENV !== 'production' ? path.concat(i + ': ' + typeNameCache) : null ));\n idempotent = idempotent && ( actual === instance );\n ret.push(instance);\n }\n\n if (idempotent) { // implements idempotency\n ret = value;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(ret);\n }\n\n return ret;\n }\n\n List.meta = {\n kind: 'list',\n type: type,\n name: name,\n identity: identity\n };\n\n List.displayName = displayName;\n\n List.is = function (x) {\n return isArray(x) && x.every(function (e) {\n return is(e, type);\n });\n };\n\n List.update = function (instance, patch) {\n return List(assert.update(instance, patch));\n };\n\n return List;\n}\n\nlist.getDefaultName = getDefaultName;\nmodule.exports = list;\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var isNil = require('./isNil');\nvar isString = require('./isString');\n\nmodule.exports = function isTypeName(name) {\n return isNil(name) || isString(name);\n};","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var irreducible = require('./irreducible');\nvar isNumber = require('./isNumber');\n\nmodule.exports = irreducible('Number', isNumber);\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isType = require('./isType');\nvar isNil = require('./isNil');\nvar mixin = require('./mixin');\nvar getTypeName = require('./getTypeName');\n\n// All the .declare-d types should be clearly different from each other thus they should have\n// different names when a name was not explicitly provided.\nvar nextDeclareUniqueId = 1;\n\nmodule.exports = function declare(name) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isTypeName(name), function () { return 'Invalid argument name ' + name + ' supplied to declare([name]) (expected a string)'; });\n }\n\n var type;\n\n function Declare(value, path) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!isNil(type), function () { return 'Type declared but not defined, don\\'t forget to call .define on every declared type'; });\n }\n return type(value, path);\n }\n\n Declare.define = function (spec) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isType(spec), function () { return 'Invalid argument type ' + assert.stringify(spec) + ' supplied to define(type) (expected a type)'; });\n assert(isNil(type), function () { return 'Declare.define(type) can only be invoked once'; });\n assert(isNil(spec.meta.name) && Object.keys(spec.prototype).length === 0, function () { return 'Invalid argument type ' + assert.stringify(spec) + ' supplied to define(type) (expected a fresh, unnamed type)'; });\n }\n\n type = spec;\n mixin(Declare, type, true); // true because it overwrites Declare.displayName\n if (name) {\n type.displayName = Declare.displayName = name;\n Declare.meta.name = name;\n }\n // ensure identity is still false\n Declare.meta.identity = false;\n Declare.prototype = type.prototype;\n return Declare;\n };\n\n Declare.displayName = name || ( getTypeName(Declare) + \"$\" + nextDeclareUniqueId++ );\n // in general I can't say if this type will be an identity, for safety setting to false\n Declare.meta = { identity: false };\n Declare.prototype = null;\n return Declare;\n};\n","'use strict';\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar defaultRaw = {\n colon: ': ',\n indent: ' ',\n beforeDecl: '\\n',\n beforeRule: '\\n',\n beforeOpen: ' ',\n beforeClose: '\\n',\n beforeComment: '\\n',\n after: '\\n',\n emptyBody: '',\n commentLeft: ' ',\n commentRight: ' '\n};\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1);\n}\n\nvar Stringifier = function () {\n function Stringifier(builder) {\n _classCallCheck(this, Stringifier);\n\n this.builder = builder;\n }\n\n Stringifier.prototype.stringify = function stringify(node, semicolon) {\n this[node.type](node, semicolon);\n };\n\n Stringifier.prototype.root = function root(node) {\n this.body(node);\n if (node.raws.after) this.builder(node.raws.after);\n };\n\n Stringifier.prototype.comment = function comment(node) {\n var left = this.raw(node, 'left', 'commentLeft');\n var right = this.raw(node, 'right', 'commentRight');\n this.builder('/*' + left + node.text + right + '*/', node);\n };\n\n Stringifier.prototype.decl = function decl(node, semicolon) {\n var between = this.raw(node, 'between', 'colon');\n var string = node.prop + between + this.rawValue(node, 'value');\n\n if (node.important) {\n string += node.raws.important || ' !important';\n }\n\n if (semicolon) string += ';';\n this.builder(string, node);\n };\n\n Stringifier.prototype.rule = function rule(node) {\n this.block(node, this.rawValue(node, 'selector'));\n };\n\n Stringifier.prototype.atrule = function atrule(node, semicolon) {\n var name = '@' + node.name;\n var params = node.params ? this.rawValue(node, 'params') : '';\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName;\n } else if (params) {\n name += ' ';\n }\n\n if (node.nodes) {\n this.block(node, name + params);\n } else {\n var end = (node.raws.between || '') + (semicolon ? ';' : '');\n this.builder(name + params + end, node);\n }\n };\n\n Stringifier.prototype.body = function body(node) {\n var last = node.nodes.length - 1;\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break;\n last -= 1;\n }\n\n var semicolon = this.raw(node, 'semicolon');\n for (var i = 0; i < node.nodes.length; i++) {\n var child = node.nodes[i];\n var before = this.raw(child, 'before');\n if (before) this.builder(before);\n this.stringify(child, last !== i || semicolon);\n }\n };\n\n Stringifier.prototype.block = function block(node, start) {\n var between = this.raw(node, 'between', 'beforeOpen');\n this.builder(start + between + '{', node, 'start');\n\n var after = void 0;\n if (node.nodes && node.nodes.length) {\n this.body(node);\n after = this.raw(node, 'after');\n } else {\n after = this.raw(node, 'after', 'emptyBody');\n }\n\n if (after) this.builder(after);\n this.builder('}', node, 'end');\n };\n\n Stringifier.prototype.raw = function raw(node, own, detect) {\n var value = void 0;\n if (!detect) detect = own;\n\n // Already had\n if (own) {\n value = node.raws[own];\n if (typeof value !== 'undefined') return value;\n }\n\n var parent = node.parent;\n\n // Hack for first rule in CSS\n if (detect === 'before') {\n if (!parent || parent.type === 'root' && parent.first === node) {\n return '';\n }\n }\n\n // Floating child without parent\n if (!parent) return defaultRaw[detect];\n\n // Detect style by other nodes\n var root = node.root();\n if (!root.rawCache) root.rawCache = {};\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect];\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect);\n } else {\n var method = 'raw' + capitalize(detect);\n if (this[method]) {\n value = this[method](root, node);\n } else {\n root.walk(function (i) {\n value = i.raws[own];\n if (typeof value !== 'undefined') return false;\n });\n }\n }\n\n if (typeof value === 'undefined') value = defaultRaw[detect];\n\n root.rawCache[detect] = value;\n return value;\n };\n\n Stringifier.prototype.rawSemicolon = function rawSemicolon(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawEmptyBody = function rawEmptyBody(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawIndent = function rawIndent(root) {\n if (root.raws.indent) return root.raws.indent;\n var value = void 0;\n root.walk(function (i) {\n var p = i.parent;\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n var parts = i.raws.before.split('\\n');\n value = parts[parts.length - 1];\n value = value.replace(/[^\\s]/g, '');\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeComment = function rawBeforeComment(root, node) {\n var value = void 0;\n root.walkComments(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeDecl = function rawBeforeDecl(root, node) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n });\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule');\n }\n return value;\n };\n\n Stringifier.prototype.rawBeforeRule = function rawBeforeRule(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeClose = function rawBeforeClose(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after;\n if (value.indexOf('\\n') !== -1) {\n value = value.replace(/[^\\n]+$/, '');\n }\n return false;\n }\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawBeforeOpen = function rawBeforeOpen(root) {\n var value = void 0;\n root.walk(function (i) {\n if (i.type !== 'decl') {\n value = i.raws.between;\n if (typeof value !== 'undefined') return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.rawColon = function rawColon(root) {\n var value = void 0;\n root.walkDecls(function (i) {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '');\n return false;\n }\n });\n return value;\n };\n\n Stringifier.prototype.beforeAfter = function beforeAfter(node, detect) {\n var value = void 0;\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl');\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment');\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule');\n } else {\n value = this.raw(node, null, 'beforeClose');\n }\n\n var buf = node.parent;\n var depth = 0;\n while (buf && buf.type !== 'root') {\n depth += 1;\n buf = buf.parent;\n }\n\n if (value.indexOf('\\n') !== -1) {\n var indent = this.raw(node, null, 'indent');\n if (indent.length) {\n for (var step = 0; step < depth; step++) {\n value += indent;\n }\n }\n }\n\n return value;\n };\n\n Stringifier.prototype.rawValue = function rawValue(node, prop) {\n var value = node[prop];\n var raw = node.raws[prop];\n if (raw && raw.value === value) {\n return raw.raw;\n } else {\n return value;\n }\n };\n\n return Stringifier;\n}();\n\nexports.default = Stringifier;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmaWVyLmVzNiJdLCJuYW1lcyI6WyJkZWZhdWx0UmF3IiwiY29sb24iLCJpbmRlbnQiLCJiZWZvcmVEZWNsIiwiYmVmb3JlUnVsZSIsImJlZm9yZU9wZW4iLCJiZWZvcmVDbG9zZSIsImJlZm9yZUNvbW1lbnQiLCJhZnRlciIsImVtcHR5Qm9keSIsImNvbW1lbnRMZWZ0IiwiY29tbWVudFJpZ2h0IiwiY2FwaXRhbGl6ZSIsInN0ciIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJTdHJpbmdpZmllciIsImJ1aWxkZXIiLCJzdHJpbmdpZnkiLCJub2RlIiwic2VtaWNvbG9uIiwidHlwZSIsInJvb3QiLCJib2R5IiwicmF3cyIsImNvbW1lbnQiLCJsZWZ0IiwicmF3IiwicmlnaHQiLCJ0ZXh0IiwiZGVjbCIsImJldHdlZW4iLCJzdHJpbmciLCJwcm9wIiwicmF3VmFsdWUiLCJpbXBvcnRhbnQiLCJydWxlIiwiYmxvY2siLCJhdHJ1bGUiLCJuYW1lIiwicGFyYW1zIiwiYWZ0ZXJOYW1lIiwibm9kZXMiLCJlbmQiLCJsYXN0IiwibGVuZ3RoIiwiaSIsImNoaWxkIiwiYmVmb3JlIiwic3RhcnQiLCJvd24iLCJkZXRlY3QiLCJ2YWx1ZSIsInBhcmVudCIsImZpcnN0IiwicmF3Q2FjaGUiLCJiZWZvcmVBZnRlciIsIm1ldGhvZCIsIndhbGsiLCJyYXdTZW1pY29sb24iLCJyYXdFbXB0eUJvZHkiLCJyYXdJbmRlbnQiLCJwIiwicGFydHMiLCJzcGxpdCIsInJlcGxhY2UiLCJyYXdCZWZvcmVDb21tZW50Iiwid2Fsa0NvbW1lbnRzIiwiaW5kZXhPZiIsInJhd0JlZm9yZURlY2wiLCJ3YWxrRGVjbHMiLCJyYXdCZWZvcmVSdWxlIiwicmF3QmVmb3JlQ2xvc2UiLCJyYXdCZWZvcmVPcGVuIiwicmF3Q29sb24iLCJidWYiLCJkZXB0aCIsInN0ZXAiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQU1BLGFBQWE7QUFDZkMsV0FBZSxJQURBO0FBRWZDLFlBQWUsTUFG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VDtBQUNBRCxrQkFBTUEsSUFBSXRCLE1BQVY7QUFDSDs7QUFFRCxZQUFLRCxNQUFNZ0IsT0FBTixDQUFjLElBQWQsTUFBd0IsQ0FBQyxDQUE5QixFQUFrQztBQUM5QixnQkFBSWxFLFNBQVMsS0FBS3lCLEdBQUwsQ0FBU1IsSUFBVCxFQUFlLElBQWYsRUFBcUIsUUFBckIsQ0FBYjtBQUNBLGdCQUFLakIsT0FBTzJDLE1BQVosRUFBcUI7QUFDakIscUJBQU0sSUFBSWdDLE9BQU8sQ0FBakIsRUFBb0JBLE9BQU9ELEtBQTNCLEVBQWtDQyxNQUFsQztBQUEyQ3pCLDZCQUFTbEQsTUFBVDtBQUEzQztBQUNIO0FBQ0o7O0FBRUQsZUFBT2tELEtBQVA7QUFDSCxLOzswQkFFRGxCLFEscUJBQVNmLEksRUFBTWMsSSxFQUFNO0FBQ2pCLFlBQUltQixRQUFRakMsS0FBS2MsSUFBTCxDQUFaO0FBQ0EsWUFBSU4sTUFBUVIsS0FBS0ssSUFBTCxDQUFVUyxJQUFWLENBQVo7QUFDQSxZQUFLTixPQUFPQSxJQUFJeUIsS0FBSixLQUFjQSxLQUExQixFQUFrQztBQUM5QixtQkFBT3pCLElBQUlBLEdBQVg7QUFDSCxTQUZELE1BRU87QUFDSCxtQkFBT3lCLEtBQVA7QUFDSDtBQUNKLEs7Ozs7O2tCQUlVcEMsVyIsImZpbGUiOiJzdHJpbmdpZmllci5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRlZmF1bHRSYXcgPSB7XG4gICAgY29sb246ICAgICAgICAgJzogJyxcbiAgICBpbmRlbnQ6ICAgICAgICAnICAgICcsXG4gICAgYmVmb3JlRGVjbDogICAgJ1xcbicsXG4gICAgYmVmb3JlUnVsZTogICAgJ1xcbicsXG4gICAgYmVmb3JlT3BlbjogICAgJyAnLFxuICAgIGJlZm9yZUNsb3NlOiAgICdcXG4nLFxuICAgIGJlZm9yZUNvbW1lbnQ6ICdcXG4nLFxuICAgIGFmdGVyOiAgICAgICAgICdcXG4nLFxuICAgIGVtcHR5Qm9keTogICAgICcnLFxuICAgIGNvbW1lbnRMZWZ0OiAgICcgJyxcbiAgICBjb21tZW50UmlnaHQ6ICAnICdcbn07XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyKSB7XG4gICAgcmV0dXJuIHN0clswXS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xufVxuXG5jbGFzcyBTdHJpbmdpZmllciB7XG5cbiAgICBjb25zdHJ1Y3RvcihidWlsZGVyKSB7XG4gICAgICAgIHRoaXMuYnVpbGRlciA9IGJ1aWxkZXI7XG4gICAgfVxuXG4gICAgc3RyaW5naWZ5KG5vZGUsIHNlbWljb2xvbikge1xuICAgICAgICB0aGlzW25vZGUudHlwZV0obm9kZSwgc2VtaWNvbG9uKTtcbiAgICB9XG5cbiAgICByb290KG5vZGUpIHtcbiAgICAgICAgdGhpcy5ib2R5KG5vZGUpO1xuICAgICAgICBpZiAoIG5vZGUucmF3cy5hZnRlciApIHRoaXMuYnVpbGRlcihub2RlLnJhd3MuYWZ0ZXIpO1xuICAgIH1cblxuICAgIGNvbW1lbnQobm9kZSkge1xuICAgICAgICBsZXQgbGVmdCAgPSB0aGlzLnJhdyhub2RlLCAnbGVmdCcsICAnY29tbWVudExlZnQnKTtcbiAgICAgICAgbGV0IHJpZ2h0ID0gdGhpcy5yYXcobm9kZSwgJ3JpZ2h0JywgJ2NvbW1lbnRSaWdodCcpO1xuICAgICAgICB0aGlzLmJ1aWxkZXIoJy8qJyArIGxlZnQgKyBub2RlLnRleHQgKyByaWdodCArICcqLycsIG5vZGUpO1xuICAgIH1cblxuICAgIGRlY2wobm9kZSwgc2VtaWNvbG9uKSB7XG4gICAgICAgIGxldCBiZXR3ZWVuID0gdGhpcy5yYXcobm9kZSwgJ2JldHdlZW4nLCAnY29sb24nKTtcbiAgICAgICAgbGV0IHN0cmluZyAgPSBub2RlLnByb3AgKyBiZXR3ZWVuICsgdGhpcy5yYXdWYWx1ZShub2RlLCAndmFsdWUnKTtcblxuICAgICAgICBpZiAoIG5vZGUuaW1wb3J0YW50ICkge1xuICAgICAgICAgICAgc3RyaW5nICs9IG5vZGUucmF3cy5pbXBvcnRhbnQgfHwgJyAhaW1wb3J0YW50JztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggc2VtaWNvbG9uICkgc3RyaW5nICs9ICc7JztcbiAgICAgICAgdGhpcy5idWlsZGVyKHN0cmluZywgbm9kZSk7XG4gICAgfVxuXG4gICAgcnVsZShub2RlKSB7XG4gICAgICAgIHRoaXMuYmxvY2sobm9kZSwgdGhpcy5yYXdWYWx1ZShub2RlLCAnc2VsZWN0b3InKSk7XG4gICAgfVxuXG4gICAgYXRydWxlKG5vZGUsIHNlbWljb2xvbikge1xuICAgICAgICBsZXQgbmFtZSAgID0gJ0AnICsgbm9kZS5uYW1lO1xuICAgICAgICBsZXQgcGFyYW1zID0gbm9kZS5wYXJhbXMgPyB0aGlzLnJhd1ZhbHVlKG5vZGUsICdwYXJhbXMnKSA6ICcnO1xuXG4gICAgICAgIGlmICggdHlwZW9mIG5vZGUucmF3cy5hZnRlck5hbWUgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgbmFtZSArPSBub2RlLnJhd3MuYWZ0ZXJOYW1lO1xuICAgICAgICB9IGVsc2UgaWYgKCBwYXJhbXMgKSB7XG4gICAgICAgICAgICBuYW1lICs9ICcgJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggbm9kZS5ub2RlcyApIHtcbiAgICAgICAgICAgIHRoaXMuYmxvY2sobm9kZSwgbmFtZSArIHBhcmFtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZW5kID0gKG5vZGUucmF3cy5iZXR3ZWVuIHx8ICcnKSArIChzZW1pY29sb24gPyAnOycgOiAnJyk7XG4gICAgICAgICAgICB0aGlzLmJ1aWxkZXIobmFtZSArIHBhcmFtcyArIGVuZCwgbm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib2R5KG5vZGUpIHtcbiAgICAgICAgbGV0IGxhc3QgPSBub2RlLm5vZGVzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlICggbGFzdCA+IDAgKSB7XG4gICAgICAgICAgICBpZiAoIG5vZGUubm9kZXNbbGFzdF0udHlwZSAhPT0gJ2NvbW1lbnQnICkgYnJlYWs7XG4gICAgICAgICAgICBsYXN0IC09IDE7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc2VtaWNvbG9uID0gdGhpcy5yYXcobm9kZSwgJ3NlbWljb2xvbicpO1xuICAgICAgICBmb3IgKCBsZXQgaSA9IDA7IGkgPCBub2RlLm5vZGVzLmxlbmd0aDsgaSsrICkge1xuICAgICAgICAgICAgbGV0IGNoaWxkICA9IG5vZGUubm9kZXNbaV07XG4gICAgICAgICAgICBsZXQgYmVmb3JlID0gdGhpcy5yYXcoY2hpbGQsICdiZWZvcmUnKTtcbiAgICAgICAgICAgIGlmICggYmVmb3JlICkgdGhpcy5idWlsZGVyKGJlZm9yZSk7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ2lmeShjaGlsZCwgbGFzdCAhPT0gaSB8fCBzZW1pY29sb24pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmxvY2sobm9kZSwgc3RhcnQpIHtcbiAgICAgICAgbGV0IGJldHdlZW4gPSB0aGlzLnJhdyhub2RlLCAnYmV0d2VlbicsICdiZWZvcmVPcGVuJyk7XG4gICAgICAgIHRoaXMuYnVpbGRlcihzdGFydCArIGJldHdlZW4gKyAneycsIG5vZGUsICdzdGFydCcpO1xuXG4gICAgICAgIGxldCBhZnRlcjtcbiAgICAgICAgaWYgKCBub2RlLm5vZGVzICYmIG5vZGUubm9kZXMubGVuZ3RoICkge1xuICAgICAgICAgICAgdGhpcy5ib2R5KG5vZGUpO1xuICAgICAgICAgICAgYWZ0ZXIgPSB0aGlzLnJhdyhub2RlLCAnYWZ0ZXInKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFmdGVyID0gdGhpcy5yYXcobm9kZSwgJ2FmdGVyJywgJ2VtcHR5Qm9keScpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCBhZnRlciApIHRoaXMuYnVpbGRlcihhZnRlcik7XG4gICAgICAgIHRoaXMuYnVpbGRlcignfScsIG5vZGUsICdlbmQnKTtcbiAgICB9XG5cbiAgICByYXcobm9kZSwgb3duLCBkZXRlY3QpIHtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICBpZiAoICFkZXRlY3QgKSBkZXRlY3QgPSBvd247XG5cbiAgICAgICAgLy8gQWxyZWFkeSBoYWRcbiAgICAgICAgaWYgKCBvd24gKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG5vZGUucmF3c1tvd25dO1xuICAgICAgICAgICAgaWYgKCB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICkgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhcmVudCA9IG5vZGUucGFyZW50O1xuXG4gICAgICAgIC8vIEhhY2sgZm9yIGZpcnN0IHJ1bGUgaW4gQ1NTXG4gICAgICAgIGlmICggZGV0ZWN0ID09PSAnYmVmb3JlJyApIHtcbiAgICAgICAgICAgIGlmICggIXBhcmVudCB8fCBwYXJlbnQudHlwZSA9PT0gJ3Jvb3QnICYmIHBhcmVudC5maXJzdCA9PT0gbm9kZSApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGbG9hdGluZyBjaGlsZCB3aXRob3V0IHBhcmVudFxuICAgICAgICBpZiAoICFwYXJlbnQgKSByZXR1cm4gZGVmYXVsdFJhd1tkZXRlY3RdO1xuXG4gICAgICAgIC8vIERldGVjdCBzdHlsZSBieSBvdGhlciBub2Rlc1xuICAgICAgICBsZXQgcm9vdCA9IG5vZGUucm9vdCgpO1xuICAgICAgICBpZiAoICFyb290LnJhd0NhY2hlICkgcm9vdC5yYXdDYWNoZSA9IHsgfTtcbiAgICAgICAgaWYgKCB0eXBlb2Ygcm9vdC5yYXdDYWNoZVtkZXRlY3RdICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgIHJldHVybiByb290LnJhd0NhY2hlW2RldGVjdF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIGRldGVjdCA9PT0gJ2JlZm9yZScgfHwgZGV0ZWN0ID09PSAnYWZ0ZXInICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmVmb3JlQWZ0ZXIobm9kZSwgZGV0ZWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBtZXRob2QgPSAncmF3JyArIGNhcGl0YWxpemUoZGV0ZWN0KTtcbiAgICAgICAgICAgIGlmICggdGhpc1ttZXRob2RdICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpc1ttZXRob2RdKHJvb3QsIG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByb290LndhbGsoIGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGkucmF3c1tvd25dO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgKSB2YWx1ZSA9IGRlZmF1bHRSYXdbZGV0ZWN0XTtcblxuICAgICAgICByb290LnJhd0NhY2hlW2RldGVjdF0gPSB2YWx1ZTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJhd1NlbWljb2xvbihyb290KSB7XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgcm9vdC53YWxrKCBpID0+IHtcbiAgICAgICAgICAgIGlmICggaS5ub2RlcyAmJiBpLm5vZGVzLmxlbmd0aCAmJiBpLmxhc3QudHlwZSA9PT0gJ2RlY2wnICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLnNlbWljb2xvbjtcbiAgICAgICAgICAgICAgICBpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmF3RW1wdHlCb2R5KHJvb3QpIHtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICByb290LndhbGsoIGkgPT4ge1xuICAgICAgICAgICAgaWYgKCBpLm5vZGVzICYmIGkubm9kZXMubGVuZ3RoID09PSAwICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLmFmdGVyO1xuICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyApIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByYXdJbmRlbnQocm9vdCkge1xuICAgICAgICBpZiAoIHJvb3QucmF3cy5pbmRlbnQgKSByZXR1cm4gcm9vdC5yYXdzLmluZGVudDtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICByb290LndhbGsoIGkgPT4ge1xuICAgICAgICAgICAgbGV0IHAgPSBpLnBhcmVudDtcbiAgICAgICAgICAgIGlmICggcCAmJiBwICE9PSByb290ICYmIHAucGFyZW50ICYmIHAucGFyZW50ID09PSByb290ICkge1xuICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIGkucmF3cy5iZWZvcmUgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcGFydHMgPSBpLnJhd3MuYmVmb3JlLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcc10vZywgJycpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHJhd0JlZm9yZUNvbW1lbnQocm9vdCwgbm9kZSkge1xuICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgIHJvb3Qud2Fsa0NvbW1lbnRzKCBpID0+IHtcbiAgICAgICAgICAgIGlmICggdHlwZW9mIGkucmF3cy5iZWZvcmUgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLmJlZm9yZTtcbiAgICAgICAgICAgICAgICBpZiAoIHZhbHVlLmluZGV4T2YoJ1xcbicpICE9PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcbl0rJC8sICcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJhdyhub2RlLCBudWxsLCAnYmVmb3JlRGVjbCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByYXdCZWZvcmVEZWNsKHJvb3QsIG5vZGUpIHtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICByb290LndhbGtEZWNscyggaSA9PiB7XG4gICAgICAgICAgICBpZiAoIHR5cGVvZiBpLnJhd3MuYmVmb3JlICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGkucmF3cy5iZWZvcmU7XG4gICAgICAgICAgICAgICAgaWYgKCB2YWx1ZS5pbmRleE9mKCdcXG4nKSAhPT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cXG5dKyQvLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICggdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5yYXcobm9kZSwgbnVsbCwgJ2JlZm9yZVJ1bGUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmF3QmVmb3JlUnVsZShyb290KSB7XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgcm9vdC53YWxrKCBpID0+IHtcbiAgICAgICAgICAgIGlmICggaS5ub2RlcyAmJiAoaS5wYXJlbnQgIT09IHJvb3QgfHwgcm9vdC5maXJzdCAhPT0gaSkgKSB7XG4gICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgaS5yYXdzLmJlZm9yZSAhPT0gJ3VuZGVmaW5lZCcgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLmJlZm9yZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB2YWx1ZS5pbmRleE9mKCdcXG4nKSAhPT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teXFxuXSskLywgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmF3QmVmb3JlQ2xvc2Uocm9vdCkge1xuICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgIHJvb3Qud2FsayggaSA9PiB7XG4gICAgICAgICAgICBpZiAoIGkubm9kZXMgJiYgaS5ub2Rlcy5sZW5ndGggPiAwICkge1xuICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIGkucmF3cy5hZnRlciAhPT0gJ3VuZGVmaW5lZCcgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLmFmdGVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIHZhbHVlLmluZGV4T2YoJ1xcbicpICE9PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cXG5dKyQvLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByYXdCZWZvcmVPcGVuKHJvb3QpIHtcbiAgICAgICAgbGV0IHZhbHVlO1xuICAgICAgICByb290LndhbGsoIGkgPT4ge1xuICAgICAgICAgICAgaWYgKCBpLnR5cGUgIT09ICdkZWNsJyApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGkucmF3cy5iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyApIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByYXdDb2xvbihyb290KSB7XG4gICAgICAgIGxldCB2YWx1ZTtcbiAgICAgICAgcm9vdC53YWxrRGVjbHMoIGkgPT4ge1xuICAgICAgICAgICAgaWYgKCB0eXBlb2YgaS5yYXdzLmJldHdlZW4gIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gaS5yYXdzLmJldHdlZW4ucmVwbGFjZSgvW15cXHM6XS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIGJlZm9yZUFmdGVyKG5vZGUsIGRldGVjdCkge1xuICAgICAgICBsZXQgdmFsdWU7XG4gICAgICAgIGlmICggbm9kZS50eXBlID09PSAnZGVjbCcgKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMucmF3KG5vZGUsIG51bGwsICdiZWZvcmVEZWNsJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoIG5vZGUudHlwZSA9PT0gJ2NvbW1lbnQnICkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJhdyhub2RlLCBudWxsLCAnYmVmb3JlQ29tbWVudCcpO1xuICAgICAgICB9IGVsc2UgaWYgKCBkZXRlY3QgPT09ICdiZWZvcmUnICkge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJhdyhub2RlLCBudWxsLCAnYmVmb3JlUnVsZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSB0aGlzLnJhdyhub2RlLCBudWxsLCAnYmVmb3JlQ2xvc2UnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBidWYgICA9IG5vZGUucGFyZW50O1xuICAgICAgICBsZXQgZGVwdGggPSAwO1xuICAgICAgICB3aGlsZSAoIGJ1ZiAmJiBidWYudHlwZSAhPT0gJ3Jvb3QnICkge1xuICAgICAgICAgICAgZGVwdGggKz0gMTtcbiAgICAgICAgICAgIGJ1ZiA9IGJ1Zi5wYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIHZhbHVlLmluZGV4T2YoJ1xcbicpICE9PSAtMSApIHtcbiAgICAgICAgICAgIGxldCBpbmRlbnQgPSB0aGlzLnJhdyhub2RlLCBudWxsLCAnaW5kZW50Jyk7XG4gICAgICAgICAgICBpZiAoIGluZGVudC5sZW5ndGggKSB7XG4gICAgICAgICAgICAgICAgZm9yICggbGV0IHN0ZXAgPSAwOyBzdGVwIDwgZGVwdGg7IHN0ZXArKyApIHZhbHVlICs9IGluZGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICByYXdWYWx1ZShub2RlLCBwcm9wKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5vZGVbcHJvcF07XG4gICAgICAgIGxldCByYXcgICA9IG5vZGUucmF3c1twcm9wXTtcbiAgICAgICAgaWYgKCByYXcgJiYgcmF3LnZhbHVlID09PSB2YWx1ZSApIHtcbiAgICAgICAgICAgIHJldHVybiByYXcucmF3O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ2lmaWVyO1xuIl19\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","'use strict';\n\nvar postcss = require('postcss');\nvar parseCssFont = require('parse-css-font');\nvar quote = require('quote');\n\nvar quoteIfNecessary = function (family) {\n if (/[^^]\\s[^$]/.test(family)) {\n return quote(family);\n }\n return family;\n};\n\nvar getLastPropertyDecl = function (parent, name) {\n\n var decl;\n\n parent.walkDecls(name, function (currentDecl) {\n decl = currentDecl;\n });\n\n return decl;\n};\n\nvar declWalker = function (decl) {\n\n var parent = decl.parent;\n\n var objFit = decl.value;\n\n var existingFont = getLastPropertyDecl(parent, /font|font-family/);\n var objPosition = getLastPropertyDecl(parent, 'object-position');\n\n var value = [\n 'object-fit:' + objFit\n ];\n if (objPosition) {\n value.push('object-position:' + objPosition.value);\n }\n\n var props = {\n prop: 'font-family',\n value: quote(value.join(';'))\n };\n\n // keep existing font-family\n var fontFamily;\n if (existingFont) {\n if (existingFont.prop === 'font') {\n fontFamily = parseCssFont(existingFont.value).family;\n fontFamily = fontFamily.map(quoteIfNecessary).join(', ');\n } else {\n fontFamily = existingFont.value;\n }\n }\n if (fontFamily) {\n props.value += ', ' + fontFamily;\n\n if (existingFont.prop === 'font') {\n existingFont.cloneAfter(props);\n } else {\n existingFont.replaceWith(props);\n }\n } else {\n decl.cloneBefore(props);\n }\n\n};\n\nmodule.exports = postcss.plugin('postcss-object-fit-images', function (opts) {\n\n opts = opts || {};\n\n return function (css) {\n css.walkDecls('object-fit', declWalker);\n };\n});\n","var isNil = require('./isNil');\nvar assert = require('./assert');\n\n// safe mixin, cannot override props unless specified\nmodule.exports = function mixin(target, source, overwrite) {\n if (isNil(source)) { return target; }\n for (var k in source) {\n if (source.hasOwnProperty(k)) {\n if (overwrite !== true) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!target.hasOwnProperty(k), function () { return 'Invalid call to mixin(target, source, [overwrite]): cannot overwrite property \"' + k + '\" of target object'; });\n }\n }\n target[k] = source[k];\n }\n }\n return target;\n};","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\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};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = 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 invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(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 (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _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\nvar _jsBase = require('js-base64');\n\nvar _sourceMap = require('source-map');\n\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\n\nvar _fs = require('fs');\n\nvar _fs2 = _interopRequireDefault(_fs);\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\n/**\n * Source map information from input CSS.\n * For example, source map after Sass compiler.\n *\n * This class will automatically find source map in input CSS or in file system\n * near input file (according `from` option).\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.sass.css' });\n * root.input.map //=> PreviousMap\n */\nvar PreviousMap = function () {\n\n /**\n * @param {string} css - input CSS source\n * @param {processOptions} [opts] - {@link Processor#process} options\n */\n function PreviousMap(css, opts) {\n _classCallCheck(this, PreviousMap);\n\n this.loadAnnotation(css);\n /**\n * @member {boolean} - Was source map inlined by data-uri to input CSS.\n */\n this.inline = this.startWith(this.annotation, 'data:');\n\n var prev = opts.map ? opts.map.prev : undefined;\n var text = this.loadMap(opts.from, prev);\n if (text) this.text = text;\n }\n\n /**\n * Create a instance of `SourceMapGenerator` class\n * from the `source-map` library to work with source map information.\n *\n * It is lazy method, so it will create object only on first call\n * and then it will use cache.\n *\n * @return {SourceMapGenerator} object with source map information\n */\n\n\n PreviousMap.prototype.consumer = function consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new _sourceMap2.default.SourceMapConsumer(this.text);\n }\n return this.consumerCache;\n };\n\n /**\n * Does source map contains `sourcesContent` with input source text.\n *\n * @return {boolean} Is `sourcesContent` present\n */\n\n\n PreviousMap.prototype.withContent = function withContent() {\n return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0);\n };\n\n PreviousMap.prototype.startWith = function startWith(string, start) {\n if (!string) return false;\n return string.substr(0, start.length) === start;\n };\n\n PreviousMap.prototype.loadAnnotation = function loadAnnotation(css) {\n var match = css.match(/\\/\\*\\s*# sourceMappingURL=(.*)\\s*\\*\\//);\n if (match) this.annotation = match[1].trim();\n };\n\n PreviousMap.prototype.decodeInline = function decodeInline(text) {\n var utfd64 = 'data:application/json;charset=utf-8;base64,';\n var utf64 = 'data:application/json;charset=utf8;base64,';\n var b64 = 'data:application/json;base64,';\n var uri = 'data:application/json,';\n\n if (this.startWith(text, uri)) {\n return decodeURIComponent(text.substr(uri.length));\n } else if (this.startWith(text, b64)) {\n return _jsBase.Base64.decode(text.substr(b64.length));\n } else if (this.startWith(text, utf64)) {\n return _jsBase.Base64.decode(text.substr(utf64.length));\n } else if (this.startWith(text, utfd64)) {\n return _jsBase.Base64.decode(text.substr(utfd64.length));\n } else {\n var encoding = text.match(/data:application\\/json;([^,]+),/)[1];\n throw new Error('Unsupported source map encoding ' + encoding);\n }\n };\n\n PreviousMap.prototype.loadMap = function loadMap(file, prev) {\n if (prev === false) return false;\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev;\n } else if (typeof prev === 'function') {\n var prevPath = prev(file);\n if (prevPath && _fs2.default.existsSync && _fs2.default.existsSync(prevPath)) {\n return _fs2.default.readFileSync(prevPath, 'utf-8').toString().trim();\n } else {\n throw new Error('Unable to load previous source map: ' + prevPath.toString());\n }\n } else if (prev instanceof _sourceMap2.default.SourceMapConsumer) {\n return _sourceMap2.default.SourceMapGenerator.fromSourceMap(prev).toString();\n } else if (prev instanceof _sourceMap2.default.SourceMapGenerator) {\n return prev.toString();\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev);\n } else {\n throw new Error('Unsupported previous source map format: ' + prev.toString());\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation);\n } else if (this.annotation) {\n var map = this.annotation;\n if (file) map = _path2.default.join(_path2.default.dirname(file), map);\n\n this.root = _path2.default.dirname(map);\n if (_fs2.default.existsSync && _fs2.default.existsSync(map)) {\n return _fs2.default.readFileSync(map, 'utf-8').toString().trim();\n } else {\n return false;\n }\n }\n };\n\n PreviousMap.prototype.isMap = function isMap(map) {\n if ((typeof map === 'undefined' ? 'undefined' : _typeof(map)) !== 'object') return false;\n return typeof map.mappings === 'string' || typeof map._mappings === 'string';\n };\n\n return PreviousMap;\n}();\n\nexports.default = PreviousMap;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByZXZpb3VzLW1hcC5lczYiXSwibmFtZXMiOlsiUHJldmlvdXNNYXAiLCJjc3MiLCJvcHRzIiwibG9hZEFubm90YXRpb24iLCJpbmxpbmUiLCJzdGFydFdpdGgiLCJhbm5vdGF0aW9uIiwicHJldiIsIm1hcCIsInVuZGVmaW5lZCIsInRleHQiLCJsb2FkTWFwIiwiZnJvbSIsImNvbnN1bWVyIiwiY29uc3VtZXJDYWNoZSIsIlNvdXJjZU1hcENvbnN1bWVyIiwid2l0aENvbnRlbnQiLCJzb3VyY2VzQ29udGVudCIsImxlbmd0aCIsInN0cmluZyIsInN0YXJ0Iiwic3Vic3RyIiwibWF0Y2giLCJ0cmltIiwiZGVjb2RlSW5saW5lIiwidXRmZDY0IiwidXRmNjQiLCJiNjQiLCJ1cmkiLCJkZWNvZGVVUklDb21wb25lbnQiLCJkZWNvZGUiLCJlbmNvZGluZyIsIkVycm9yIiwiZmlsZSIsInByZXZQYXRoIiwiZXhpc3RzU3luYyIsInJlYWRGaWxlU3luYyIsInRvU3RyaW5nIiwiU291cmNlTWFwR2VuZXJhdG9yIiwiZnJvbVNvdXJjZU1hcCIsImlzTWFwIiwiSlNPTiIsInN0cmluZ2lmeSIsImpvaW4iLCJkaXJuYW1lIiwicm9vdCIsIm1hcHBpbmdzIiwiX21hcHBpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7O0lBV01BLFc7O0FBRUY7Ozs7QUFJQSx5QkFBWUMsR0FBWixFQUFpQkMsSUFBakIsRUFBdUI7QUFBQTs7QUFDbkIsYUFBS0MsY0FBTCxDQUFvQkYsR0FBcEI7QUFDQTs7O0FBR0EsYUFBS0csTUFBTCxHQUFjLEtBQUtDLFNBQUwsQ0FBZSxLQUFLQyxVQUFwQixFQUFnQyxPQUFoQyxDQUFkOztBQUVBLFlBQUlDLE9BQU9MLEtBQUtNLEdBQUwsR0FBV04sS0FBS00sR0FBTCxDQUFTRCxJQUFwQixHQUEyQkUsU0FBdEM7QUFDQSxZQUFJQyxPQUFPLEtBQUtDLE9BQUwsQ0FBYVQsS0FBS1UsSUFBbEIsRUFBd0JMLElBQXhCLENBQVg7QUFDQSxZQUFLRyxJQUFMLEVBQVksS0FBS0EsSUFBTCxHQUFZQSxJQUFaO0FBQ2Y7O0FBRUQ7Ozs7Ozs7Ozs7OzBCQVNBRyxRLHVCQUFXO0FBQ1AsWUFBSyxDQUFDLEtBQUtDLGFBQVgsRUFBMkI7QUFDdkIsaUJBQUtBLGFBQUwsR0FBcUIsSUFBSSxvQkFBUUMsaUJBQVosQ0FBOEIsS0FBS0wsSUFBbkMsQ0FBckI7QUFDSDtBQUNELGVBQU8sS0FBS0ksYUFBWjtBQUNILEs7O0FBRUQ7Ozs7Ozs7MEJBS0FFLFcsMEJBQWM7QUFDVixlQUFPLENBQUMsRUFBRSxLQUFLSCxRQUFMLEdBQWdCSSxjQUFoQixJQUNBLEtBQUtKLFFBQUwsR0FBZ0JJLGNBQWhCLENBQStCQyxNQUEvQixHQUF3QyxDQUQxQyxDQUFSO0FBRUgsSzs7MEJBRURiLFMsc0JBQVVjLE0sRUFBUUMsSyxFQUFPO0FBQ3JCLFlBQUssQ0FBQ0QsTUFBTixFQUFlLE9BQU8sS0FBUDtBQUNmLGVBQU9BLE9BQU9FLE1BQVAsQ0FBYyxDQUFkLEVBQWlCRCxNQUFNRixNQUF2QixNQUFtQ0UsS0FBMUM7QUFDSCxLOzswQkFFRGpCLGMsMkJBQWVGLEcsRUFBSztBQUNoQixZQUFJcUIsUUFBUXJCLElBQUlxQixLQUFKLENBQVUsdUNBQVYsQ0FBWjtBQUNBLFlBQUtBLEtBQUwsRUFBYSxLQUFLaEIsVUFBTCxHQUFrQmdCLE1BQU0sQ0FBTixFQUFTQyxJQUFULEVBQWxCO0FBQ2hCLEs7OzBCQUVEQyxZLHlCQUFhZCxJLEVBQU07QUFDZixZQUFJZSxTQUFTLDZDQUFiO0FBQ0EsWUFBSUMsUUFBUyw0Q0FBYjtBQUNBLFlBQUlDLE1BQVMsK0JBQWI7QUFDQSxZQUFJQyxNQUFTLHdCQUFiOztBQUVBLFlBQUssS0FBS3ZCLFNBQUwsQ0FBZUssSUFBZixFQUFxQmtCLEdBQXJCLENBQUwsRUFBaUM7QUFDN0IsbUJBQU9DLG1CQUFvQm5CLEtBQUtXLE1BQUwsQ0FBWU8sSUFBSVYsTUFBaEIsQ0FBcEIsQ0FBUDtBQUVILFNBSEQsTUFHTyxJQUFLLEtBQUtiLFNBQUwsQ0FBZUssSUFBZixFQUFxQmlCLEdBQXJCLENBQUwsRUFBaUM7QUFDcEMsbUJBQU8sZUFBT0csTUFBUCxDQUFlcEIsS0FBS1csTUFBTCxDQUFZTSxJQUFJVCxNQUFoQixDQUFmLENBQVA7QUFFSCxTQUhNLE1BR0EsSUFBSyxLQUFLYixTQUFMLENBQWVLLElBQWYsRUFBcUJnQixLQUFyQixDQUFMLEVBQW1DO0FBQ3RDLG1CQUFPLGVBQU9JLE1BQVAsQ0FBZXBCLEtBQUtXLE1BQUwsQ0FBWUssTUFBTVIsTUFBbEIsQ0FBZixDQUFQO0FBRUgsU0FITSxNQUdBLElBQUssS0FBS2IsU0FBTCxDQUFlSyxJQUFmLEVBQXFCZSxNQUFyQixDQUFMLEVBQW9DO0FBQ3ZDLG1CQUFPLGVBQU9LLE1BQVAsQ0FBZXBCLEtBQUtXLE1BQUwsQ0FBWUksT0FBT1AsTUFBbkIsQ0FBZixDQUFQO0FBRUgsU0FITSxNQUdBO0FBQ0gsZ0JBQUlhLFdBQVdyQixLQUFLWSxLQUFMLENBQVcsaUNBQVgsRUFBOEMsQ0FBOUMsQ0FBZjtBQUNBLGtCQUFNLElBQUlVLEtBQUosQ0FBVSxxQ0FBcUNELFFBQS9DLENBQU47QUFDSDtBQUNKLEs7OzBCQUVEcEIsTyxvQkFBUXNCLEksRUFBTTFCLEksRUFBTTtBQUNoQixZQUFLQSxTQUFTLEtBQWQsRUFBc0IsT0FBTyxLQUFQOztBQUV0QixZQUFLQSxJQUFMLEVBQVk7QUFDUixnQkFBSyxPQUFPQSxJQUFQLEtBQWdCLFFBQXJCLEVBQWdDO0FBQzVCLHVCQUFPQSxJQUFQO0FBQ0gsYUFGRCxNQUVPLElBQUssT0FBT0EsSUFBUCxLQUFnQixVQUFyQixFQUFrQztBQUNyQyxvQkFBSTJCLFdBQVczQixLQUFLMEIsSUFBTCxDQUFmO0FBQ0Esb0JBQUtDLFlBQVksYUFBR0MsVUFBZixJQUE2QixhQUFHQSxVQUFILENBQWNELFFBQWQsQ0FBbEMsRUFBNEQ7QUFDeEQsMkJBQU8sYUFBR0UsWUFBSCxDQUFnQkYsUUFBaEIsRUFBMEIsT0FBMUIsRUFBbUNHLFFBQW5DLEdBQThDZCxJQUE5QyxFQUFQO0FBQ0gsaUJBRkQsTUFFTztBQUNILDBCQUFNLElBQUlTLEtBQUosQ0FBVSx5Q0FDaEJFLFNBQVNHLFFBQVQsRUFETSxDQUFOO0FBRUg7QUFDSixhQVJNLE1BUUEsSUFBSzlCLGdCQUFnQixvQkFBUVEsaUJBQTdCLEVBQWlEO0FBQ3BELHVCQUFPLG9CQUFRdUIsa0JBQVIsQ0FDRkMsYUFERSxDQUNZaEMsSUFEWixFQUNrQjhCLFFBRGxCLEVBQVA7QUFFSCxhQUhNLE1BR0EsSUFBSzlCLGdCQUFnQixvQkFBUStCLGtCQUE3QixFQUFrRDtBQUNyRCx1QkFBTy9CLEtBQUs4QixRQUFMLEVBQVA7QUFDSCxhQUZNLE1BRUEsSUFBSyxLQUFLRyxLQUFMLENBQVdqQyxJQUFYLENBQUwsRUFBd0I7QUFDM0IsdUJBQU9rQyxLQUFLQyxTQUFMLENBQWVuQyxJQUFmLENBQVA7QUFDSCxhQUZNLE1BRUE7QUFDSCxzQkFBTSxJQUFJeUIsS0FBSixDQUFVLDZDQUNaekIsS0FBSzhCLFFBQUwsRUFERSxDQUFOO0FBRUg7QUFFSixTQXZCRCxNQXVCTyxJQUFLLEtBQUtqQyxNQUFWLEVBQW1CO0FBQ3RCLG1CQUFPLEtBQUtvQixZQUFMLENBQWtCLEtBQUtsQixVQUF2QixDQUFQO0FBRUgsU0FITSxNQUdBLElBQUssS0FBS0EsVUFBVixFQUF1QjtBQUMxQixnQkFBSUUsTUFBTSxLQUFLRixVQUFmO0FBQ0EsZ0JBQUsyQixJQUFMLEVBQVl6QixNQUFNLGVBQUttQyxJQUFMLENBQVUsZUFBS0MsT0FBTCxDQUFhWCxJQUFiLENBQVYsRUFBOEJ6QixHQUE5QixDQUFOOztBQUVaLGlCQUFLcUMsSUFBTCxHQUFZLGVBQUtELE9BQUwsQ0FBYXBDLEdBQWIsQ0FBWjtBQUNBLGdCQUFLLGFBQUcyQixVQUFILElBQWlCLGFBQUdBLFVBQUgsQ0FBYzNCLEdBQWQsQ0FBdEIsRUFBMkM7QUFDdkMsdUJBQU8sYUFBRzRCLFlBQUgsQ0FBZ0I1QixHQUFoQixFQUFxQixPQUFyQixFQUE4QjZCLFFBQTlCLEdBQXlDZCxJQUF6QyxFQUFQO0FBQ0gsYUFGRCxNQUVPO0FBQ0gsdUJBQU8sS0FBUDtBQUNIO0FBQ0o7QUFDSixLOzswQkFFRGlCLEssa0JBQU1oQyxHLEVBQUs7QUFDUCxZQUFLLFFBQU9BLEdBQVAseUNBQU9BLEdBQVAsT0FBZSxRQUFwQixFQUErQixPQUFPLEtBQVA7QUFDL0IsZUFBTyxPQUFPQSxJQUFJc0MsUUFBWCxLQUF3QixRQUF4QixJQUNBLE9BQU90QyxJQUFJdUMsU0FBWCxLQUF5QixRQURoQztBQUVILEs7Ozs7O2tCQUdVL0MsVyIsImZpbGUiOiJwcmV2aW91cy1tYXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlNjQgfSBmcm9tICdqcy1iYXNlNjQnO1xuaW1wb3J0ICAgbW96aWxsYSAgZnJvbSAnc291cmNlLW1hcCc7XG5pbXBvcnQgICBwYXRoICAgICBmcm9tICdwYXRoJztcbmltcG9ydCAgIGZzICAgICAgIGZyb20gJ2ZzJztcblxuLyoqXG4gKiBTb3VyY2UgbWFwIGluZm9ybWF0aW9uIGZyb20gaW5wdXQgQ1NTLlxuICogRm9yIGV4YW1wbGUsIHNvdXJjZSBtYXAgYWZ0ZXIgU2FzcyBjb21waWxlci5cbiAqXG4gKiBUaGlzIGNsYXNzIHdpbGwgYXV0b21hdGljYWxseSBmaW5kIHNvdXJjZSBtYXAgaW4gaW5wdXQgQ1NTIG9yIGluIGZpbGUgc3lzdGVtXG4gKiBuZWFyIGlucHV0IGZpbGUgKGFjY29yZGluZyBgZnJvbWAgb3B0aW9uKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoY3NzLCB7IGZyb206ICdhLnNhc3MuY3NzJyB9KTtcbiAqIHJvb3QuaW5wdXQubWFwIC8vPT4gUHJldmlvdXNNYXBcbiAqL1xuY2xhc3MgUHJldmlvdXNNYXAge1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9ICAgICAgICAgY3NzICAgIC0gaW5wdXQgQ1NTIHNvdXJjZVxuICAgICAqIEBwYXJhbSB7cHJvY2Vzc09wdGlvbnN9IFtvcHRzXSAtIHtAbGluayBQcm9jZXNzb3IjcHJvY2Vzc30gb3B0aW9uc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNzcywgb3B0cykge1xuICAgICAgICB0aGlzLmxvYWRBbm5vdGF0aW9uKGNzcyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtib29sZWFufSAtIFdhcyBzb3VyY2UgbWFwIGlubGluZWQgYnkgZGF0YS11cmkgdG8gaW5wdXQgQ1NTLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pbmxpbmUgPSB0aGlzLnN0YXJ0V2l0aCh0aGlzLmFubm90YXRpb24sICdkYXRhOicpO1xuXG4gICAgICAgIGxldCBwcmV2ID0gb3B0cy5tYXAgPyBvcHRzLm1hcC5wcmV2IDogdW5kZWZpbmVkO1xuICAgICAgICBsZXQgdGV4dCA9IHRoaXMubG9hZE1hcChvcHRzLmZyb20sIHByZXYpO1xuICAgICAgICBpZiAoIHRleHQgKSB0aGlzLnRleHQgPSB0ZXh0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIGluc3RhbmNlIG9mIGBTb3VyY2VNYXBHZW5lcmF0b3JgIGNsYXNzXG4gICAgICogZnJvbSB0aGUgYHNvdXJjZS1tYXBgIGxpYnJhcnkgdG8gd29yayB3aXRoIHNvdXJjZSBtYXAgaW5mb3JtYXRpb24uXG4gICAgICpcbiAgICAgKiBJdCBpcyBsYXp5IG1ldGhvZCwgc28gaXQgd2lsbCBjcmVhdGUgb2JqZWN0IG9ubHkgb24gZmlyc3QgY2FsbFxuICAgICAqIGFuZCB0aGVuIGl0IHdpbGwgdXNlIGNhY2hlLlxuICAgICAqXG4gICAgICogQHJldHVybiB7U291cmNlTWFwR2VuZXJhdG9yfSBvYmplY3Qgd2l0aCBzb3VyY2UgbWFwIGluZm9ybWF0aW9uXG4gICAgICovXG4gICAgY29uc3VtZXIoKSB7XG4gICAgICAgIGlmICggIXRoaXMuY29uc3VtZXJDYWNoZSApIHtcbiAgICAgICAgICAgIHRoaXMuY29uc3VtZXJDYWNoZSA9IG5ldyBtb3ppbGxhLlNvdXJjZU1hcENvbnN1bWVyKHRoaXMudGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY29uc3VtZXJDYWNoZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEb2VzIHNvdXJjZSBtYXAgY29udGFpbnMgYHNvdXJjZXNDb250ZW50YCB3aXRoIGlucHV0IHNvdXJjZSB0ZXh0LlxuICAgICAqXG4gICAgICogQHJldHVybiB7Ym9vbGVhbn0gSXMgYHNvdXJjZXNDb250ZW50YCBwcmVzZW50XG4gICAgICovXG4gICAgd2l0aENvbnRlbnQoKSB7XG4gICAgICAgIHJldHVybiAhISh0aGlzLmNvbnN1bWVyKCkuc291cmNlc0NvbnRlbnQgJiZcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3VtZXIoKS5zb3VyY2VzQ29udGVudC5sZW5ndGggPiAwKTtcbiAgICB9XG5cbiAgICBzdGFydFdpdGgoc3RyaW5nLCBzdGFydCkge1xuICAgICAgICBpZiAoICFzdHJpbmcgKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBzdHJpbmcuc3Vic3RyKDAsIHN0YXJ0Lmxlbmd0aCkgPT09IHN0YXJ0O1xuICAgIH1cblxuICAgIGxvYWRBbm5vdGF0aW9uKGNzcykge1xuICAgICAgICBsZXQgbWF0Y2ggPSBjc3MubWF0Y2goL1xcL1xcKlxccyojIHNvdXJjZU1hcHBpbmdVUkw9KC4qKVxccypcXCpcXC8vKTtcbiAgICAgICAgaWYgKCBtYXRjaCApIHRoaXMuYW5ub3RhdGlvbiA9IG1hdGNoWzFdLnRyaW0oKTtcbiAgICB9XG5cbiAgICBkZWNvZGVJbmxpbmUodGV4dCkge1xuICAgICAgICBsZXQgdXRmZDY0ID0gJ2RhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCwnO1xuICAgICAgICBsZXQgdXRmNjQgID0gJ2RhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zjg7YmFzZTY0LCc7XG4gICAgICAgIGxldCBiNjQgICAgPSAnZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnO1xuICAgICAgICBsZXQgdXJpICAgID0gJ2RhdGE6YXBwbGljYXRpb24vanNvbiwnO1xuXG4gICAgICAgIGlmICggdGhpcy5zdGFydFdpdGgodGV4dCwgdXJpKSApIHtcbiAgICAgICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQoIHRleHQuc3Vic3RyKHVyaS5sZW5ndGgpICk7XG5cbiAgICAgICAgfSBlbHNlIGlmICggdGhpcy5zdGFydFdpdGgodGV4dCwgYjY0KSApIHtcbiAgICAgICAgICAgIHJldHVybiBCYXNlNjQuZGVjb2RlKCB0ZXh0LnN1YnN0cihiNjQubGVuZ3RoKSApO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoIHRoaXMuc3RhcnRXaXRoKHRleHQsIHV0ZjY0KSApIHtcbiAgICAgICAgICAgIHJldHVybiBCYXNlNjQuZGVjb2RlKCB0ZXh0LnN1YnN0cih1dGY2NC5sZW5ndGgpICk7XG5cbiAgICAgICAgfSBlbHNlIGlmICggdGhpcy5zdGFydFdpdGgodGV4dCwgdXRmZDY0KSApIHtcbiAgICAgICAgICAgIHJldHVybiBCYXNlNjQuZGVjb2RlKCB0ZXh0LnN1YnN0cih1dGZkNjQubGVuZ3RoKSApO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZW5jb2RpbmcgPSB0ZXh0Lm1hdGNoKC9kYXRhOmFwcGxpY2F0aW9uXFwvanNvbjsoW14sXSspLC8pWzFdO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBzb3VyY2UgbWFwIGVuY29kaW5nICcgKyBlbmNvZGluZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkTWFwKGZpbGUsIHByZXYpIHtcbiAgICAgICAgaWYgKCBwcmV2ID09PSBmYWxzZSApIHJldHVybiBmYWxzZTtcblxuICAgICAgICBpZiAoIHByZXYgKSB7XG4gICAgICAgICAgICBpZiAoIHR5cGVvZiBwcmV2ID09PSAnc3RyaW5nJyApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHR5cGVvZiBwcmV2ID09PSAnZnVuY3Rpb24nICkge1xuICAgICAgICAgICAgICAgIGxldCBwcmV2UGF0aCA9IHByZXYoZmlsZSk7XG4gICAgICAgICAgICAgICAgaWYgKCBwcmV2UGF0aCAmJiBmcy5leGlzdHNTeW5jICYmIGZzLmV4aXN0c1N5bmMocHJldlBhdGgpICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHByZXZQYXRoLCAndXRmLTgnKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBsb2FkIHByZXZpb3VzIHNvdXJjZSBtYXA6ICcgK1xuICAgICAgICAgICAgICAgICAgICBwcmV2UGF0aC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBwcmV2IGluc3RhbmNlb2YgbW96aWxsYS5Tb3VyY2VNYXBDb25zdW1lciApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbW96aWxsYS5Tb3VyY2VNYXBHZW5lcmF0b3JcbiAgICAgICAgICAgICAgICAgICAgLmZyb21Tb3VyY2VNYXAocHJldikudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHByZXYgaW5zdGFuY2VvZiBtb3ppbGxhLlNvdXJjZU1hcEdlbmVyYXRvciApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldi50b1N0cmluZygpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggdGhpcy5pc01hcChwcmV2KSApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocHJldik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgcHJldmlvdXMgc291cmNlIG1hcCBmb3JtYXQ6ICcgK1xuICAgICAgICAgICAgICAgICAgICBwcmV2LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gZWxzZSBpZiAoIHRoaXMuaW5saW5lICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVjb2RlSW5saW5lKHRoaXMuYW5ub3RhdGlvbik7XG5cbiAgICAgICAgfSBlbHNlIGlmICggdGhpcy5hbm5vdGF0aW9uICkge1xuICAgICAgICAgICAgbGV0IG1hcCA9IHRoaXMuYW5ub3RhdGlvbjtcbiAgICAgICAgICAgIGlmICggZmlsZSApIG1hcCA9IHBhdGguam9pbihwYXRoLmRpcm5hbWUoZmlsZSksIG1hcCk7XG5cbiAgICAgICAgICAgIHRoaXMucm9vdCA9IHBhdGguZGlybmFtZShtYXApO1xuICAgICAgICAgICAgaWYgKCBmcy5leGlzdHNTeW5jICYmIGZzLmV4aXN0c1N5bmMobWFwKSApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKG1hcCwgJ3V0Zi04JykudG9TdHJpbmcoKS50cmltKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzTWFwKG1hcCkge1xuICAgICAgICBpZiAoIHR5cGVvZiBtYXAgIT09ICdvYmplY3QnICkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHlwZW9mIG1hcC5tYXBwaW5ncyA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgICAgIHR5cGVvZiBtYXAuX21hcHBpbmdzID09PSAnc3RyaW5nJztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFByZXZpb3VzTWFwO1xuIl19\n","var assert = require('./assert');\nvar isObject = require('./isObject');\nvar isFunction = require('./isFunction');\nvar isArray = require('./isArray');\nvar isNumber = require('./isNumber');\nvar mixin = require('./mixin');\n\nfunction getShallowCopy(x) {\n if (isArray(x)) {\n return x.concat();\n }\n if (x instanceof Date || x instanceof RegExp) {\n return x;\n }\n if (isObject(x)) {\n return mixin({}, x);\n }\n return x;\n}\n\nfunction update(instance, patch) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isObject(patch), function () { return 'Invalid argument patch ' + assert.stringify(patch) + ' supplied to function update(instance, patch): expected an object containing commands'; });\n }\n\n var value = getShallowCopy(instance);\n var isChanged = false;\n for (var k in patch) {\n if (patch.hasOwnProperty(k)) {\n if (update.commands.hasOwnProperty(k)) {\n value = update.commands[k](patch[k], value);\n isChanged = true;\n }\n else {\n var newValue = update(value[k], patch[k]);\n isChanged = isChanged || ( newValue !== value[k] );\n value[k] = newValue;\n }\n }\n }\n return isChanged ? value : instance;\n}\n\n// built-in commands\n\nfunction $apply(f, value) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(f), 'Invalid argument f supplied to immutability helper { $apply: f } (expected a function)');\n }\n return f(value);\n}\n\nfunction $push(elements, arr) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(elements), 'Invalid argument elements supplied to immutability helper { $push: elements } (expected an array)');\n assert(isArray(arr), 'Invalid value supplied to immutability helper $push (expected an array)');\n }\n return arr.concat(elements);\n}\n\nfunction $remove(keys, obj) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(keys), 'Invalid argument keys supplied to immutability helper { $remove: keys } (expected an array)');\n assert(isObject(obj), 'Invalid value supplied to immutability helper $remove (expected an object)');\n }\n for (var i = 0, len = keys.length; i < len; i++ ) {\n delete obj[keys[i]];\n }\n return obj;\n}\n\nfunction $set(value) {\n return value;\n}\n\nfunction $splice(splices, arr) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(splices) && splices.every(isArray), 'Invalid argument splices supplied to immutability helper { $splice: splices } (expected an array of arrays)');\n assert(isArray(arr), 'Invalid value supplied to immutability helper $splice (expected an array)');\n }\n return splices.reduce(function (acc, splice) {\n acc.splice.apply(acc, splice);\n return acc;\n }, arr);\n}\n\nfunction $swap(config, arr) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isObject(config), 'Invalid argument config supplied to immutability helper { $swap: config } (expected an object)');\n assert(isNumber(config.from), 'Invalid argument config.from supplied to immutability helper { $swap: config } (expected a number)');\n assert(isNumber(config.to), 'Invalid argument config.to supplied to immutability helper { $swap: config } (expected a number)');\n assert(isArray(arr), 'Invalid value supplied to immutability helper $swap (expected an array)');\n }\n var element = arr[config.to];\n arr[config.to] = arr[config.from];\n arr[config.from] = element;\n return arr;\n}\n\nfunction $unshift(elements, arr) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(elements), 'Invalid argument elements supplied to immutability helper {$unshift: elements} (expected an array)');\n assert(isArray(arr), 'Invalid value supplied to immutability helper $unshift (expected an array)');\n }\n return elements.concat(arr);\n}\n\nfunction $merge(obj, value) {\n return mixin(mixin({}, value), obj, true);\n}\n\nupdate.commands = {\n $apply: $apply,\n $push: $push,\n $remove: $remove,\n $set: $set,\n $splice: $splice,\n $swap: $swap,\n $unshift: $unshift,\n $merge: $merge\n};\n\nmodule.exports = update;\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\n\nexports.__esModule = true;\nexports.default = warnOnce;\nvar printed = {};\n\nfunction warnOnce(message) {\n if (printed[message]) return;\n printed[message] = true;\n\n if (typeof console !== 'undefined' && console.warn) console.warn(message);\n}\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndhcm4tb25jZS5lczYiXSwibmFtZXMiOlsid2Fybk9uY2UiLCJwcmludGVkIiwibWVzc2FnZSIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7a0JBRXdCQSxRO0FBRnhCLElBQUlDLFVBQVUsRUFBZDs7QUFFZSxTQUFTRCxRQUFULENBQWtCRSxPQUFsQixFQUEyQjtBQUN0QyxRQUFLRCxRQUFRQyxPQUFSLENBQUwsRUFBd0I7QUFDeEJELFlBQVFDLE9BQVIsSUFBbUIsSUFBbkI7O0FBRUEsUUFBSyxPQUFPQyxPQUFQLEtBQW1CLFdBQW5CLElBQWtDQSxRQUFRQyxJQUEvQyxFQUFzREQsUUFBUUMsSUFBUixDQUFhRixPQUFiO0FBQ3pEIiwiZmlsZSI6Indhcm4tb25jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImxldCBwcmludGVkID0geyB9O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3YXJuT25jZShtZXNzYWdlKSB7XG4gICAgaWYgKCBwcmludGVkW21lc3NhZ2VdICkgcmV0dXJuO1xuICAgIHByaW50ZWRbbWVzc2FnZV0gPSB0cnVlO1xuXG4gICAgaWYgKCB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uc29sZS53YXJuICkgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xufVxuIl19\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\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 (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _container = require('./container');\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Represents a CSS rule: a selector followed by a declaration block.\n *\n * @extends Container\n *\n * @example\n * const root = postcss.parse('a{}');\n * const rule = root.first;\n * rule.type //=> 'rule'\n * rule.toString() //=> 'a{}'\n */\nvar Rule = function (_Container) {\n _inherits(Rule, _Container);\n\n function Rule(defaults) {\n _classCallCheck(this, Rule);\n\n var _this = _possibleConstructorReturn(this, _Container.call(this, defaults));\n\n _this.type = 'rule';\n if (!_this.nodes) _this.nodes = [];\n return _this;\n }\n\n /**\n * An array containing the rule’s individual selectors.\n * Groups of selectors are split at commas.\n *\n * @type {string[]}\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n *\n * rule.selector //=> 'a, b'\n * rule.selectors //=> ['a', 'b']\n *\n * rule.selectors = ['a', 'strong'];\n * rule.selector //=> 'a, strong'\n */\n\n\n _createClass(Rule, [{\n key: 'selectors',\n get: function get() {\n return _list2.default.comma(this.selector);\n },\n set: function set(values) {\n var match = this.selector ? this.selector.match(/,\\s*/) : null;\n var sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen');\n this.selector = values.join(sep);\n }\n }, {\n key: '_selector',\n get: function get() {\n (0, _warnOnce2.default)('Rule#_selector is deprecated. Use Rule#raws.selector');\n return this.raws.selector;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Rule#_selector is deprecated. Use Rule#raws.selector');\n this.raws.selector = val;\n }\n\n /**\n * @memberof Rule#\n * @member {string} selector - the rule’s full selector represented\n * as a string\n *\n * @example\n * const root = postcss.parse('a, b { }');\n * const rule = root.first;\n * rule.selector //=> 'a, b'\n */\n\n /**\n * @memberof Rule#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n *\n * PostCSS cleans selectors from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '', between: ' ', after: '\\n' }\n */\n\n }]);\n\n return Rule;\n}(_container2.default);\n\nexports.default = Rule;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGUuZXM2Il0sIm5hbWVzIjpbIlJ1bGUiLCJkZWZhdWx0cyIsInR5cGUiLCJub2RlcyIsImNvbW1hIiwic2VsZWN0b3IiLCJ2YWx1ZXMiLCJtYXRjaCIsInNlcCIsInJhdyIsImpvaW4iLCJyYXdzIiwidmFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVBOzs7Ozs7Ozs7OztJQVdNQSxJOzs7QUFFRixrQkFBWUMsUUFBWixFQUFzQjtBQUFBOztBQUFBLHFEQUNsQixzQkFBTUEsUUFBTixDQURrQjs7QUFFbEIsY0FBS0MsSUFBTCxHQUFZLE1BQVo7QUFDQSxZQUFLLENBQUMsTUFBS0MsS0FBWCxFQUFtQixNQUFLQSxLQUFMLEdBQWEsRUFBYjtBQUhEO0FBSXJCOztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFnQmdCO0FBQ1osbUJBQU8sZUFBS0MsS0FBTCxDQUFXLEtBQUtDLFFBQWhCLENBQVA7QUFDSCxTOzBCQUVhQyxNLEVBQVE7QUFDbEIsZ0JBQUlDLFFBQVEsS0FBS0YsUUFBTCxHQUFnQixLQUFLQSxRQUFMLENBQWNFLEtBQWQsQ0FBb0IsTUFBcEIsQ0FBaEIsR0FBOEMsSUFBMUQ7QUFDQSxnQkFBSUMsTUFBUUQsUUFBUUEsTUFBTSxDQUFOLENBQVIsR0FBbUIsTUFBTSxLQUFLRSxHQUFMLENBQVMsU0FBVCxFQUFvQixZQUFwQixDQUFyQztBQUNBLGlCQUFLSixRQUFMLEdBQWdCQyxPQUFPSSxJQUFQLENBQVlGLEdBQVosQ0FBaEI7QUFDSDs7OzRCQUVlO0FBQ1osb0NBQVMsc0RBQVQ7QUFDQSxtQkFBTyxLQUFLRyxJQUFMLENBQVVOLFFBQWpCO0FBQ0gsUzswQkFFYU8sRyxFQUFLO0FBQ2Ysb0NBQVMsc0RBQVQ7QUFDQSxpQkFBS0QsSUFBTCxDQUFVTixRQUFWLEdBQXFCTyxHQUFyQjtBQUNIOztBQUVEOzs7Ozs7Ozs7OztBQVdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBOEJXWixJIiwiZmlsZSI6InJ1bGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29udGFpbmVyIGZyb20gJy4vY29udGFpbmVyJztcbmltcG9ydCB3YXJuT25jZSAgZnJvbSAnLi93YXJuLW9uY2UnO1xuaW1wb3J0IGxpc3QgICAgICBmcm9tICcuL2xpc3QnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBDU1MgcnVsZTogYSBzZWxlY3RvciBmb2xsb3dlZCBieSBhIGRlY2xhcmF0aW9uIGJsb2NrLlxuICpcbiAqIEBleHRlbmRzIENvbnRhaW5lclxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYXt9Jyk7XG4gKiBjb25zdCBydWxlID0gcm9vdC5maXJzdDtcbiAqIHJ1bGUudHlwZSAgICAgICAvLz0+ICdydWxlJ1xuICogcnVsZS50b1N0cmluZygpIC8vPT4gJ2F7fSdcbiAqL1xuY2xhc3MgUnVsZSBleHRlbmRzIENvbnRhaW5lciB7XG5cbiAgICBjb25zdHJ1Y3RvcihkZWZhdWx0cykge1xuICAgICAgICBzdXBlcihkZWZhdWx0cyk7XG4gICAgICAgIHRoaXMudHlwZSA9ICdydWxlJztcbiAgICAgICAgaWYgKCAhdGhpcy5ub2RlcyApIHRoaXMubm9kZXMgPSBbXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBjb250YWluaW5nIHRoZSBydWxl4oCZcyBpbmRpdmlkdWFsIHNlbGVjdG9ycy5cbiAgICAgKiBHcm91cHMgb2Ygc2VsZWN0b3JzIGFyZSBzcGxpdCBhdCBjb21tYXMuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nW119XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhLCBiIHsgfScpO1xuICAgICAqIGNvbnN0IHJ1bGUgPSByb290LmZpcnN0O1xuICAgICAqXG4gICAgICogcnVsZS5zZWxlY3RvciAgLy89PiAnYSwgYidcbiAgICAgKiBydWxlLnNlbGVjdG9ycyAvLz0+IFsnYScsICdiJ11cbiAgICAgKlxuICAgICAqIHJ1bGUuc2VsZWN0b3JzID0gWydhJywgJ3N0cm9uZyddO1xuICAgICAqIHJ1bGUuc2VsZWN0b3IgLy89PiAnYSwgc3Ryb25nJ1xuICAgICAqL1xuICAgIGdldCBzZWxlY3RvcnMoKSB7XG4gICAgICAgIHJldHVybiBsaXN0LmNvbW1hKHRoaXMuc2VsZWN0b3IpO1xuICAgIH1cblxuICAgIHNldCBzZWxlY3RvcnModmFsdWVzKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IHRoaXMuc2VsZWN0b3IgPyB0aGlzLnNlbGVjdG9yLm1hdGNoKC8sXFxzKi8pIDogbnVsbDtcbiAgICAgICAgbGV0IHNlcCAgID0gbWF0Y2ggPyBtYXRjaFswXSA6ICcsJyArIHRoaXMucmF3KCdiZXR3ZWVuJywgJ2JlZm9yZU9wZW4nKTtcbiAgICAgICAgdGhpcy5zZWxlY3RvciA9IHZhbHVlcy5qb2luKHNlcCk7XG4gICAgfVxuXG4gICAgZ2V0IF9zZWxlY3RvcigpIHtcbiAgICAgICAgd2Fybk9uY2UoJ1J1bGUjX3NlbGVjdG9yIGlzIGRlcHJlY2F0ZWQuIFVzZSBSdWxlI3Jhd3Muc2VsZWN0b3InKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3cy5zZWxlY3RvcjtcbiAgICB9XG5cbiAgICBzZXQgX3NlbGVjdG9yKHZhbCkge1xuICAgICAgICB3YXJuT25jZSgnUnVsZSNfc2VsZWN0b3IgaXMgZGVwcmVjYXRlZC4gVXNlIFJ1bGUjcmF3cy5zZWxlY3RvcicpO1xuICAgICAgICB0aGlzLnJhd3Muc2VsZWN0b3IgPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIFJ1bGUjXG4gICAgICogQG1lbWJlciB7c3RyaW5nfSBzZWxlY3RvciAtIHRoZSBydWxl4oCZcyBmdWxsIHNlbGVjdG9yIHJlcHJlc2VudGVkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIGEgc3RyaW5nXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhLCBiIHsgfScpO1xuICAgICAqIGNvbnN0IHJ1bGUgPSByb290LmZpcnN0O1xuICAgICAqIHJ1bGUuc2VsZWN0b3IgLy89PiAnYSwgYidcbiAgICAgKi9cblxuICAgIC8qKlxuICAgICAqIEBtZW1iZXJvZiBSdWxlI1xuICAgICAqIEBtZW1iZXIge29iamVjdH0gcmF3cyAtIEluZm9ybWF0aW9uIHRvIGdlbmVyYXRlIGJ5dGUtdG8tYnl0ZSBlcXVhbFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUgc3RyaW5nIGFzIGl0IHdhcyBpbiB0aGUgb3JpZ2luIGlucHV0LlxuICAgICAqXG4gICAgICogRXZlcnkgcGFyc2VyIHNhdmVzIGl0cyBvd24gcHJvcGVydGllcyxcbiAgICAgKiBidXQgdGhlIGRlZmF1bHQgQ1NTIHBhcnNlciB1c2VzOlxuICAgICAqXG4gICAgICogKiBgYmVmb3JlYDogdGhlIHNwYWNlIHN5bWJvbHMgYmVmb3JlIHRoZSBub2RlLiBJdCBhbHNvIHN0b3JlcyBgKmBcbiAgICAgKiAgIGFuZCBgX2Agc3ltYm9scyBiZWZvcmUgdGhlIGRlY2xhcmF0aW9uIChJRSBoYWNrKS5cbiAgICAgKiAqIGBhZnRlcmA6IHRoZSBzcGFjZSBzeW1ib2xzIGFmdGVyIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBub2RlXG4gICAgICogICB0byB0aGUgZW5kIG9mIHRoZSBub2RlLlxuICAgICAqICogYGJldHdlZW5gOiB0aGUgc3ltYm9scyBiZXR3ZWVuIHRoZSBwcm9wZXJ0eSBhbmQgdmFsdWVcbiAgICAgKiAgIGZvciBkZWNsYXJhdGlvbnMsIHNlbGVjdG9yIGFuZCBge2AgZm9yIHJ1bGVzLCBvciBsYXN0IHBhcmFtZXRlclxuICAgICAqICAgYW5kIGB7YCBmb3IgYXQtcnVsZXMuXG4gICAgICogKiBgc2VtaWNvbG9uYDogY29udGFpbnMgdHJ1ZSBpZiB0aGUgbGFzdCBjaGlsZCBoYXNcbiAgICAgKiAgIGFuIChvcHRpb25hbCkgc2VtaWNvbG9uLlxuICAgICAqXG4gICAgICogUG9zdENTUyBjbGVhbnMgc2VsZWN0b3JzIGZyb20gY29tbWVudHMgYW5kIGV4dHJhIHNwYWNlcyxcbiAgICAgKiBidXQgaXQgc3RvcmVzIG9yaWdpbiBjb250ZW50IGluIHJhd3MgcHJvcGVydGllcy5cbiAgICAgKiBBcyBzdWNoLCBpZiB5b3UgZG9u4oCZdCBjaGFuZ2UgYSBkZWNsYXJhdGlvbuKAmXMgdmFsdWUsXG4gICAgICogUG9zdENTUyB3aWxsIHVzZSB0aGUgcmF3IHZhbHVlIHdpdGggY29tbWVudHMuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhIHtcXG4gIGNvbG9yOmJsYWNrXFxufScpXG4gICAgICogcm9vdC5maXJzdC5maXJzdC5yYXdzIC8vPT4geyBiZWZvcmU6ICcnLCBiZXR3ZWVuOiAnICcsIGFmdGVyOiAnXFxuJyB9XG4gICAgICovXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUnVsZTtcbiJdfQ==\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('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, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\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) {\n var SYMBOL = wks(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 re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\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 }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(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 );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(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 rxfn.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 rxfn.call(string, this); }\n );\n }\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(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 (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","module.exports = function isString(x) {\n return typeof x === 'string';\n};","/*\n * base64.js\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n */\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? module.exports = factory(global)\n : typeof define === 'function' && define.amd\n ? define(factory) : factory(global)\n}((\n typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global\n: this\n), function(global) {\n 'use strict';\n // existing version for noConflict()\n global = global || {};\n var _Base64 = global.Base64;\n var version = \"2.6.4\";\n // constants\n var b64chars\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var b64tab = function(bin) {\n var t = {};\n for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n return t;\n }(b64chars);\n var fromCharCode = String.fromCharCode;\n // encoder stuff\n var cb_utob = function(c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))\n + fromCharCode(0x80 | (cc & 0x3f)))\n : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n } else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))\n + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n var utob = function(u) {\n return u.replace(re_utob, cb_utob);\n };\n var cb_encode = function(ccc) {\n var padlen = [0, 2, 1][ccc.length % 3],\n ord = ccc.charCodeAt(0) << 16\n | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)\n | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),\n chars = [\n b64chars.charAt( ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n };\n var btoa = global.btoa && typeof global.btoa == 'function'\n ? function(b){ return global.btoa(b) } : function(b) {\n if (b.match(/[^\\x00-\\xFF]/)) throw new RangeError(\n 'The string contains invalid characters.'\n );\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n var _encode = function(u) {\n return btoa(utob(String(u)));\n };\n var mkUriSafe = function (b64) {\n return b64.replace(/[+\\/]/g, function(m0) {\n return m0 == '+' ? '-' : '_';\n }).replace(/=/g, '');\n };\n var encode = function(u, urisafe) {\n return urisafe ? mkUriSafe(_encode(u)) : _encode(u);\n };\n var encodeURI = function(u) { return encode(u, true) };\n var fromUint8Array;\n if (global.Uint8Array) fromUint8Array = function(a, urisafe) {\n // return btoa(fromCharCode.apply(null, a));\n var b64 = '';\n for (var i = 0, l = a.length; i < l; i += 3) {\n var a0 = a[i], a1 = a[i+1], a2 = a[i+2];\n var ord = a0 << 16 | a1 << 8 | a2;\n b64 += b64chars.charAt( ord >>> 18)\n + b64chars.charAt((ord >>> 12) & 63)\n + ( typeof a1 != 'undefined'\n ? b64chars.charAt((ord >>> 6) & 63) : '=')\n + ( typeof a2 != 'undefined'\n ? b64chars.charAt( ord & 63) : '=');\n }\n return urisafe ? mkUriSafe(b64) : b64;\n };\n // decoder stuff\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function(cccc) {\n switch(cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)),\n offset = cp - 0x10000;\n return (fromCharCode((offset >>> 10) + 0xD800)\n + fromCharCode((offset & 0x3FF) + 0xDC00));\n case 3:\n return fromCharCode(\n ((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2))\n );\n default:\n return fromCharCode(\n ((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1))\n );\n }\n };\n var btou = function(b) {\n return b.replace(re_btou, cb_btou);\n };\n var cb_decode = function(cccc) {\n var len = cccc.length,\n padlen = len % 4,\n n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)\n | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)\n | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)\n | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n chars = [\n fromCharCode( n >>> 16),\n fromCharCode((n >>> 8) & 0xff),\n fromCharCode( n & 0xff)\n ];\n chars.length -= [0, 0, 2, 1][padlen];\n return chars.join('');\n };\n var _atob = global.atob && typeof global.atob == 'function'\n ? function(a){ return global.atob(a) } : function(a){\n return a.replace(/\\S{1,4}/g, cb_decode);\n };\n var atob = function(a) {\n return _atob(String(a).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n };\n var _decode = function(a) { return btou(_atob(a)) };\n var _fromURI = function(a) {\n return String(a).replace(/[-_]/g, function(m0) {\n return m0 == '-' ? '+' : '/'\n }).replace(/[^A-Za-z0-9\\+\\/]/g, '');\n };\n var decode = function(a){\n return _decode(_fromURI(a));\n };\n var toUint8Array;\n if (global.Uint8Array) toUint8Array = function(a) {\n return Uint8Array.from(atob(_fromURI(a)), function(c) {\n return c.charCodeAt(0);\n });\n };\n var noConflict = function() {\n var Base64 = global.Base64;\n global.Base64 = _Base64;\n return Base64;\n };\n // export Base64\n global.Base64 = {\n VERSION: version,\n atob: atob,\n btoa: btoa,\n fromBase64: decode,\n toBase64: encode,\n utob: utob,\n encode: encode,\n encodeURI: encodeURI,\n btou: btou,\n decode: decode,\n noConflict: noConflict,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n };\n // if ES5 is available, make Base64.extendString() available\n if (typeof Object.defineProperty === 'function') {\n var noEnum = function(v){\n return {value:v,enumerable:false,writable:true,configurable:true};\n };\n global.Base64.extendString = function () {\n Object.defineProperty(\n String.prototype, 'fromBase64', noEnum(function () {\n return decode(this)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64', noEnum(function (urisafe) {\n return encode(this, urisafe)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64URI', noEnum(function () {\n return encode(this, true)\n }));\n };\n }\n //\n // export Base64 to the namespace\n //\n if (global['Meteor']) { // Meteor.js\n Base64 = global.Base64;\n }\n // module.exports and AMD are mutually exclusive.\n // module.exports has precedence.\n if (typeof module !== 'undefined' && module.exports) {\n module.exports.Base64 = global.Base64;\n }\n else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function(){ return global.Base64 });\n }\n // that's it!\n return {Base64: global.Base64}\n}));\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, 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(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\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 var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 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[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // 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] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\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 = defined(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 !== $split);\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});\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","'use strict';\n\nexports.__esModule = true;\nexports.default = parse;\n\nvar _parser = require('./parser');\n\nvar _parser2 = _interopRequireDefault(_parser);\n\nvar _input = require('./input');\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(css, opts) {\n if (opts && opts.safe) {\n throw new Error('Option safe was removed. ' + 'Use parser: require(\"postcss-safe-parser\")');\n }\n\n var input = new _input2.default(css, opts);\n\n var parser = new _parser2.default(input);\n try {\n parser.tokenize();\n parser.loop();\n } catch (e) {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse SCSS with ' + 'the standard CSS parser; ' + 'try again with the postcss-scss parser';\n } else if (/\\.sass/i.test(opts.from)) {\n e.message += '\\nYou tried to parse Sass with ' + 'the standard CSS parser; ' + 'try again with the postcss-sass parser';\n } else if (/\\.less$/i.test(opts.from)) {\n e.message += '\\nYou tried to parse Less with ' + 'the standard CSS parser; ' + 'try again with the postcss-less parser';\n }\n }\n throw e;\n }\n\n return parser.root;\n}\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlLmVzNiJdLCJuYW1lcyI6WyJwYXJzZSIsImNzcyIsIm9wdHMiLCJzYWZlIiwiRXJyb3IiLCJpbnB1dCIsInBhcnNlciIsInRva2VuaXplIiwibG9vcCIsImUiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJtZXNzYWdlIiwicm9vdCJdLCJtYXBwaW5ncyI6Ijs7O2tCQUd3QkEsSzs7QUFIeEI7Ozs7QUFDQTs7Ozs7O0FBRWUsU0FBU0EsS0FBVCxDQUFlQyxHQUFmLEVBQW9CQyxJQUFwQixFQUEwQjtBQUNyQyxRQUFLQSxRQUFRQSxLQUFLQyxJQUFsQixFQUF5QjtBQUNyQixjQUFNLElBQUlDLEtBQUosQ0FBVSw4QkFDQSw0Q0FEVixDQUFOO0FBRUg7O0FBRUQsUUFBSUMsUUFBUSxvQkFBVUosR0FBVixFQUFlQyxJQUFmLENBQVo7O0FBRUEsUUFBSUksU0FBUyxxQkFBV0QsS0FBWCxDQUFiO0FBQ0EsUUFBSTtBQUNBQyxlQUFPQyxRQUFQO0FBQ0FELGVBQU9FLElBQVA7QUFDSCxLQUhELENBR0UsT0FBT0MsQ0FBUCxFQUFVO0FBQ1IsWUFBS0EsRUFBRUMsSUFBRixLQUFXLGdCQUFYLElBQStCUixJQUEvQixJQUF1Q0EsS0FBS1MsSUFBakQsRUFBd0Q7QUFDcEQsZ0JBQUssV0FBV0MsSUFBWCxDQUFnQlYsS0FBS1MsSUFBckIsQ0FBTCxFQUFrQztBQUM5QkYsa0JBQUVJLE9BQUYsSUFBYSxvQ0FDQSwyQkFEQSxHQUVBLHdDQUZiO0FBR0gsYUFKRCxNQUlPLElBQUssVUFBVUQsSUFBVixDQUFlVixLQUFLUyxJQUFwQixDQUFMLEVBQWlDO0FBQ3BDRixrQkFBRUksT0FBRixJQUFhLG9DQUNBLDJCQURBLEdBRUEsd0NBRmI7QUFHSCxhQUpNLE1BSUEsSUFBSyxXQUFXRCxJQUFYLENBQWdCVixLQUFLUyxJQUFyQixDQUFMLEVBQWtDO0FBQ3JDRixrQkFBRUksT0FBRixJQUFhLG9DQUNBLDJCQURBLEdBRUEsd0NBRmI7QUFHSDtBQUNKO0FBQ0QsY0FBTUosQ0FBTjtBQUNIOztBQUVELFdBQU9ILE9BQU9RLElBQWQ7QUFDSCIsImZpbGUiOiJwYXJzZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZXIgZnJvbSAnLi9wYXJzZXInO1xuaW1wb3J0IElucHV0ICBmcm9tICcuL2lucHV0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcGFyc2UoY3NzLCBvcHRzKSB7XG4gICAgaWYgKCBvcHRzICYmIG9wdHMuc2FmZSApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcHRpb24gc2FmZSB3YXMgcmVtb3ZlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnVXNlIHBhcnNlcjogcmVxdWlyZShcInBvc3Rjc3Mtc2FmZS1wYXJzZXJcIiknKTtcbiAgICB9XG5cbiAgICBsZXQgaW5wdXQgPSBuZXcgSW5wdXQoY3NzLCBvcHRzKTtcblxuICAgIGxldCBwYXJzZXIgPSBuZXcgUGFyc2VyKGlucHV0KTtcbiAgICB0cnkge1xuICAgICAgICBwYXJzZXIudG9rZW5pemUoKTtcbiAgICAgICAgcGFyc2VyLmxvb3AoKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmICggZS5uYW1lID09PSAnQ3NzU3ludGF4RXJyb3InICYmIG9wdHMgJiYgb3B0cy5mcm9tICkge1xuICAgICAgICAgICAgaWYgKCAvXFwuc2NzcyQvaS50ZXN0KG9wdHMuZnJvbSkgKSB7XG4gICAgICAgICAgICAgICAgZS5tZXNzYWdlICs9ICdcXG5Zb3UgdHJpZWQgdG8gcGFyc2UgU0NTUyB3aXRoICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHN0YW5kYXJkIENTUyBwYXJzZXI7ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ5IGFnYWluIHdpdGggdGhlIHBvc3Rjc3Mtc2NzcyBwYXJzZXInO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggL1xcLnNhc3MvaS50ZXN0KG9wdHMuZnJvbSkgKSB7XG4gICAgICAgICAgICAgICAgZS5tZXNzYWdlICs9ICdcXG5Zb3UgdHJpZWQgdG8gcGFyc2UgU2FzcyB3aXRoICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHN0YW5kYXJkIENTUyBwYXJzZXI7ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ5IGFnYWluIHdpdGggdGhlIHBvc3Rjc3Mtc2FzcyBwYXJzZXInO1xuICAgICAgICAgICAgfSBlbHNlIGlmICggL1xcLmxlc3MkL2kudGVzdChvcHRzLmZyb20pICkge1xuICAgICAgICAgICAgICAgIGUubWVzc2FnZSArPSAnXFxuWW91IHRyaWVkIHRvIHBhcnNlIExlc3Mgd2l0aCAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBzdGFuZGFyZCBDU1MgcGFyc2VyOyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyeSBhZ2FpbiB3aXRoIHRoZSBwb3N0Y3NzLWxlc3MgcGFyc2VyJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZXIucm9vdDtcbn1cbiJdfQ==\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\n\nfunction assembleStyles () {\n\tvar styles = {\n\t\tmodifiers: {\n\t\t\treset: [0, 0],\n\t\t\tbold: [1, 22], // 21 isn't widely supported and 22 does the same thing\n\t\t\tdim: [2, 22],\n\t\t\titalic: [3, 23],\n\t\t\tunderline: [4, 24],\n\t\t\tinverse: [7, 27],\n\t\t\thidden: [8, 28],\n\t\t\tstrikethrough: [9, 29]\n\t\t},\n\t\tcolors: {\n\t\t\tblack: [30, 39],\n\t\t\tred: [31, 39],\n\t\t\tgreen: [32, 39],\n\t\t\tyellow: [33, 39],\n\t\t\tblue: [34, 39],\n\t\t\tmagenta: [35, 39],\n\t\t\tcyan: [36, 39],\n\t\t\twhite: [37, 39],\n\t\t\tgray: [90, 39]\n\t\t},\n\t\tbgColors: {\n\t\t\tbgBlack: [40, 49],\n\t\t\tbgRed: [41, 49],\n\t\t\tbgGreen: [42, 49],\n\t\t\tbgYellow: [43, 49],\n\t\t\tbgBlue: [44, 49],\n\t\t\tbgMagenta: [45, 49],\n\t\t\tbgCyan: [46, 49],\n\t\t\tbgWhite: [47, 49]\n\t\t}\n\t};\n\n\t// fix humans\n\tstyles.colors.grey = styles.colors.gray;\n\n\tObject.keys(styles).forEach(function (groupName) {\n\t\tvar group = styles[groupName];\n\n\t\tObject.keys(group).forEach(function (styleName) {\n\t\t\tvar style = group[styleName];\n\n\t\t\tstyles[styleName] = group[styleName] = {\n\t\t\t\topen: '\\u001b[' + style[0] + 'm',\n\t\t\t\tclose: '\\u001b[' + style[1] + 'm'\n\t\t\t};\n\t\t});\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false\n\t\t});\n\t});\n\n\treturn styles;\n}\n\nObject.defineProperty(module, 'exports', {\n\tenumerable: true,\n\tget: assembleStyles\n});\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar FunctionType = require('./Function');\nvar isArray = require('./isArray');\nvar list = require('./list');\nvar isObject = require('./isObject');\nvar create = require('./create');\nvar isNil = require('./isNil');\nvar isBoolean = require('./isBoolean');\nvar tuple = require('./tuple');\nvar getFunctionName = require('./getFunctionName');\nvar getTypeName = require('./getTypeName');\n\nfunction getDefaultName(domain, codomain) {\n return '(' + domain.map(getTypeName).join(', ') + ') => ' + getTypeName(codomain);\n}\n\nfunction isInstrumented(f) {\n return FunctionType.is(f) && isObject(f.instrumentation);\n}\n\nfunction func(domain, codomain, name) {\n\n domain = isArray(domain) ? domain : [domain]; // handle handy syntax for unary functions\n\n if (process.env.NODE_ENV !== 'production') {\n assert(list(FunctionType).is(domain), function () { return 'Invalid argument domain ' + assert.stringify(domain) + ' supplied to func(domain, codomain, [name]) combinator (expected an array of types)'; });\n assert(FunctionType.is(codomain), function () { return 'Invalid argument codomain ' + assert.stringify(codomain) + ' supplied to func(domain, codomain, [name]) combinator (expected a type)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to func(domain, codomain, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(domain, codomain);\n\n function FuncType(value, curried) {\n\n if (!isInstrumented(value)) { // automatically instrument the function\n return FuncType.of(value, curried);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(FuncType.is(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + displayName; });\n }\n\n return value;\n }\n\n FuncType.meta = {\n kind: 'func',\n domain: domain,\n codomain: codomain,\n name: name,\n identity: true\n };\n\n FuncType.displayName = displayName;\n\n FuncType.is = function (x) {\n return isInstrumented(x) &&\n x.instrumentation.domain.length === domain.length &&\n x.instrumentation.domain.every(function (type, i) {\n return type === domain[i];\n }) &&\n x.instrumentation.codomain === codomain;\n };\n\n FuncType.of = function (f, curried) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(FunctionType.is(f), function () { return 'Invalid argument f supplied to func.of ' + displayName + ' (expected a function)'; });\n assert(isNil(curried) || isBoolean(curried), function () { return 'Invalid argument curried ' + assert.stringify(curried) + ' supplied to func.of ' + displayName + ' (expected a boolean)'; });\n }\n\n if (FuncType.is(f)) { // makes FuncType.of idempotent\n return f;\n }\n\n function fn() {\n var args = Array.prototype.slice.call(arguments);\n var len = curried ?\n args.length :\n domain.length;\n var argsType = tuple(domain.slice(0, len));\n\n args = argsType(args); // type check arguments\n\n if (len === domain.length) {\n return create(codomain, f.apply(this, args));\n }\n else {\n var g = Function.prototype.bind.apply(f, [this].concat(args));\n var newdomain = func(domain.slice(len), codomain);\n return newdomain.of(g, curried);\n }\n }\n\n fn.instrumentation = {\n domain: domain,\n codomain: codomain,\n f: f\n };\n\n fn.displayName = getFunctionName(f);\n\n return fn;\n\n };\n\n return FuncType;\n\n}\n\nfunc.getDefaultName = getDefaultName;\nmodule.exports = func;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var reg = /[\\'\\\"]/\n\nmodule.exports = function unquote(str) {\n if (!str) {\n return ''\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1)\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1)\n }\n return str\n}\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _supportsColor = require('supports-color');\n\nvar _supportsColor2 = _interopRequireDefault(_supportsColor);\n\nvar _chalk = require('chalk');\n\nvar _chalk2 = _interopRequireDefault(_chalk);\n\nvar _terminalHighlight = require('./terminal-highlight');\n\nvar _terminalHighlight2 = _interopRequireDefault(_terminalHighlight);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\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\n/**\n * The CSS parser throws this error for broken CSS.\n *\n * Custom parsers can throw this error for broken custom syntax using\n * the {@link Node#error} method.\n *\n * PostCSS will use the input source map to detect the original error location.\n * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS,\n * PostCSS will show the original position in the Sass file.\n *\n * If you need the position in the PostCSS input\n * (e.g., to debug the previous compiler), use `error.input.file`.\n *\n * @example\n * // Catching and checking syntax error\n * try {\n * postcss.parse('a{')\n * } catch (error) {\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n * }\n *\n * @example\n * // Raising error from plugin\n * throw node.error('Unknown variable', { plugin: 'postcss-vars' });\n */\nvar CssSyntaxError = function () {\n\n /**\n * @param {string} message - error message\n * @param {number} [line] - source line of the error\n * @param {number} [column] - source column of the error\n * @param {string} [source] - source code of the broken file\n * @param {string} [file] - absolute path to the broken file\n * @param {string} [plugin] - PostCSS plugin name, if error came from plugin\n */\n function CssSyntaxError(message, line, column, source, file, plugin) {\n _classCallCheck(this, CssSyntaxError);\n\n /**\n * @member {string} - Always equal to `'CssSyntaxError'`. You should\n * always check error type\n * by `error.name === 'CssSyntaxError'` instead of\n * `error instanceof CssSyntaxError`, because\n * npm could have several PostCSS versions.\n *\n * @example\n * if ( error.name === 'CssSyntaxError' ) {\n * error //=> CssSyntaxError\n * }\n */\n this.name = 'CssSyntaxError';\n /**\n * @member {string} - Error message.\n *\n * @example\n * error.message //=> 'Unclosed block'\n */\n this.reason = message;\n\n if (file) {\n /**\n * @member {string} - Absolute path to the broken file.\n *\n * @example\n * error.file //=> 'a.sass'\n * error.input.file //=> 'a.css'\n */\n this.file = file;\n }\n if (source) {\n /**\n * @member {string} - Source code of the broken file.\n *\n * @example\n * error.source //=> 'a { b {} }'\n * error.input.column //=> 'a b { }'\n */\n this.source = source;\n }\n if (plugin) {\n /**\n * @member {string} - Plugin name, if error came from plugin.\n *\n * @example\n * error.plugin //=> 'postcss-vars'\n */\n this.plugin = plugin;\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n /**\n * @member {number} - Source line of the error.\n *\n * @example\n * error.line //=> 2\n * error.input.line //=> 4\n */\n this.line = line;\n /**\n * @member {number} - Source column of the error.\n *\n * @example\n * error.column //=> 1\n * error.input.column //=> 4\n */\n this.column = column;\n }\n\n this.setMessage();\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError);\n }\n }\n\n CssSyntaxError.prototype.setMessage = function setMessage() {\n /**\n * @member {string} - Full error text in the GNU error format\n * with plugin, file, line and column.\n *\n * @example\n * error.message //=> 'a.css:1:1: Unclosed block'\n */\n this.message = this.plugin ? this.plugin + ': ' : '';\n this.message += this.file ? this.file : '';\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column;\n }\n this.message += ': ' + this.reason;\n };\n\n /**\n * Returns a few lines of CSS source that caused the error.\n *\n * If the CSS has an input source map without `sourceContent`,\n * this method will return an empty string.\n *\n * @param {boolean} [color] whether arrow will be colored red by terminal\n * color codes. By default, PostCSS will detect\n * color support by `process.stdout.isTTY`\n * and `process.env.NODE_DISABLE_COLORS`.\n *\n * @example\n * error.showSourceCode() //=> \" 4 | }\n * // 5 | a {\n * // > 6 | bad\n * // | ^\n * // 7 | }\n * // 8 | b {\"\n *\n * @return {string} few lines of CSS source that caused the error\n */\n\n\n CssSyntaxError.prototype.showSourceCode = function showSourceCode(color) {\n var _this = this;\n\n if (!this.source) return '';\n\n var css = this.source;\n if (typeof color === 'undefined') color = _supportsColor2.default;\n if (color) css = (0, _terminalHighlight2.default)(css);\n\n var lines = css.split(/\\r?\\n/);\n var start = Math.max(this.line - 3, 0);\n var end = Math.min(this.line + 2, lines.length);\n\n var maxWidth = String(end).length;\n var colors = new _chalk2.default.constructor({ enabled: true });\n\n function mark(text) {\n if (color) {\n return colors.red.bold(text);\n } else {\n return text;\n }\n }\n function aside(text) {\n if (color) {\n return colors.gray(text);\n } else {\n return text;\n }\n }\n\n return lines.slice(start, end).map(function (line, index) {\n var number = start + 1 + index;\n var gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ';\n if (number === _this.line) {\n var spacing = aside(gutter.replace(/\\d/g, ' ')) + line.slice(0, _this.column - 1).replace(/[^\\t]/g, ' ');\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^');\n } else {\n return ' ' + aside(gutter) + line;\n }\n }).join('\\n');\n };\n\n /**\n * Returns error position, message and source code of the broken part.\n *\n * @example\n * error.toString() //=> \"CssSyntaxError: app.css:1:1: Unclosed block\n * // > 1 | a {\n * // | ^\"\n *\n * @return {string} error position, message and source code\n */\n\n\n CssSyntaxError.prototype.toString = function toString() {\n var code = this.showSourceCode();\n if (code) {\n code = '\\n\\n' + code + '\\n';\n }\n return this.name + ': ' + this.message + code;\n };\n\n _createClass(CssSyntaxError, [{\n key: 'generated',\n get: function get() {\n (0, _warnOnce2.default)('CssSyntaxError#generated is deprecated. Use input instead.');\n return this.input;\n }\n\n /**\n * @memberof CssSyntaxError#\n * @member {Input} input - Input object with PostCSS internal information\n * about input file. If input has source map\n * from previous tool, PostCSS will use origin\n * (for example, Sass) source. You can use this\n * object to get PostCSS input source.\n *\n * @example\n * error.input.file //=> 'a.css'\n * error.file //=> 'a.sass'\n */\n\n }]);\n\n return CssSyntaxError;\n}();\n\nexports.default = CssSyntaxError;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy1zeW50YXgtZXJyb3IuZXM2Il0sIm5hbWVzIjpbIkNzc1N5bnRheEVycm9yIiwibWVzc2FnZSIsImxpbmUiLCJjb2x1bW4iLCJzb3VyY2UiLCJmaWxlIiwicGx1Z2luIiwibmFtZSIsInJlYXNvbiIsInNldE1lc3NhZ2UiLCJFcnJvciIsImNhcHR1cmVTdGFja1RyYWNlIiwic2hvd1NvdXJjZUNvZGUiLCJjb2xvciIsImNzcyIsImxpbmVzIiwic3BsaXQiLCJzdGFydCIsIk1hdGgiLCJtYXgiLCJlbmQiLCJtaW4iLCJsZW5ndGgiLCJtYXhXaWR0aCIsIlN0cmluZyIsImNvbG9ycyIsImNvbnN0cnVjdG9yIiwiZW5hYmxlZCIsIm1hcmsiLCJ0ZXh0IiwicmVkIiwiYm9sZCIsImFzaWRlIiwiZ3JheSIsInNsaWNlIiwibWFwIiwiaW5kZXgiLCJudW1iZXIiLCJndXR0ZXIiLCJzcGFjaW5nIiwicmVwbGFjZSIsImpvaW4iLCJ0b1N0cmluZyIsImNvZGUiLCJpbnB1dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7O0FBQ0E7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTJCTUEsYzs7QUFFRjs7Ozs7Ozs7QUFRQSw0QkFBWUMsT0FBWixFQUFxQkMsSUFBckIsRUFBMkJDLE1BQTNCLEVBQW1DQyxNQUFuQyxFQUEyQ0MsSUFBM0MsRUFBaURDLE1BQWpELEVBQXlEO0FBQUE7O0FBQ3JEOzs7Ozs7Ozs7Ozs7QUFZQSxhQUFLQyxJQUFMLEdBQWMsZ0JBQWQ7QUFDQTs7Ozs7O0FBTUEsYUFBS0MsTUFBTCxHQUFjUCxPQUFkOztBQUVBLFlBQUtJLElBQUwsRUFBWTtBQUNSOzs7Ozs7O0FBT0EsaUJBQUtBLElBQUwsR0FBWUEsSUFBWjtBQUNIO0FBQ0QsWUFBS0QsTUFBTCxFQUFjO0FBQ1Y7Ozs7Ozs7QUFPQSxpQkFBS0EsTUFBTCxHQUFjQSxNQUFkO0FBQ0g7QUFDRCxZQUFLRSxNQUFMLEVBQWM7QUFDVjs7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TCxHQUFjLENBQTVCLEVBQStCcUMsT0FBL0IsQ0FBdUMsUUFBdkMsRUFBaUQsR0FBakQsQ0FGSjtBQUdBLHVCQUFPWixLQUFLLEdBQUwsSUFBWUksTUFBTU0sTUFBTixDQUFaLEdBQTRCcEMsSUFBNUIsR0FBbUMsS0FBbkMsR0FDQXFDLE9BREEsR0FDVVgsS0FBSyxHQUFMLENBRGpCO0FBRUgsYUFORCxNQU1PO0FBQ0gsdUJBQU8sTUFBTUksTUFBTU0sTUFBTixDQUFOLEdBQXNCcEMsSUFBN0I7QUFDSDtBQUNKLFNBWk0sRUFZSnVDLElBWkksQ0FZQyxJQVpELENBQVA7QUFhSCxLOztBQUVEOzs7Ozs7Ozs7Ozs7NkJBVUFDLFEsdUJBQVc7QUFDUCxZQUFJQyxPQUFPLEtBQUsvQixjQUFMLEVBQVg7QUFDQSxZQUFLK0IsSUFBTCxFQUFZO0FBQ1JBLG1CQUFPLFNBQVNBLElBQVQsR0FBZ0IsSUFBdkI7QUFDSDtBQUNELGVBQU8sS0FBS3BDLElBQUwsR0FBWSxJQUFaLEdBQW1CLEtBQUtOLE9BQXhCLEdBQWtDMEMsSUFBekM7QUFDSCxLOzs7OzRCQUVlO0FBQ1osb0NBQVMsNERBQVQ7QUFDQSxtQkFBTyxLQUFLQyxLQUFaO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFlVzVDLGMiLCJmaWxlIjoiY3NzLXN5bnRheC1lcnJvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdXBwb3J0c0NvbG9yIGZyb20gJ3N1cHBvcnRzLWNvbG9yJztcbmltcG9ydCBjaGFsayAgICAgICAgIGZyb20gJ2NoYWxrJztcblxuaW1wb3J0IHRlcm1pbmFsSGlnaGxpZ2h0IGZyb20gJy4vdGVybWluYWwtaGlnaGxpZ2h0JztcbmltcG9ydCB3YXJuT25jZSAgICAgICAgICBmcm9tICcuL3dhcm4tb25jZSc7XG5cbi8qKlxuICogVGhlIENTUyBwYXJzZXIgdGhyb3dzIHRoaXMgZXJyb3IgZm9yIGJyb2tlbiBDU1MuXG4gKlxuICogQ3VzdG9tIHBhcnNlcnMgY2FuIHRocm93IHRoaXMgZXJyb3IgZm9yIGJyb2tlbiBjdXN0b20gc3ludGF4IHVzaW5nXG4gKiB0aGUge0BsaW5rIE5vZGUjZXJyb3J9IG1ldGhvZC5cbiAqXG4gKiBQb3N0Q1NTIHdpbGwgdXNlIHRoZSBpbnB1dCBzb3VyY2UgbWFwIHRvIGRldGVjdCB0aGUgb3JpZ2luYWwgZXJyb3IgbG9jYXRpb24uXG4gKiBJZiB5b3Ugd3JvdGUgYSBTYXNzIGZpbGUsIGNvbXBpbGVkIGl0IHRvIENTUyBhbmQgdGhlbiBwYXJzZWQgaXQgd2l0aCBQb3N0Q1NTLFxuICogUG9zdENTUyB3aWxsIHNob3cgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIGluIHRoZSBTYXNzIGZpbGUuXG4gKlxuICogSWYgeW91IG5lZWQgdGhlIHBvc2l0aW9uIGluIHRoZSBQb3N0Q1NTIGlucHV0XG4gKiAoZS5nLiwgdG8gZGVidWcgdGhlIHByZXZpb3VzIGNvbXBpbGVyKSwgdXNlIGBlcnJvci5pbnB1dC5maWxlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2F0Y2hpbmcgYW5kIGNoZWNraW5nIHN5bnRheCBlcnJvclxuICogdHJ5IHtcbiAqICAgcG9zdGNzcy5wYXJzZSgnYXsnKVxuICogfSBjYXRjaCAoZXJyb3IpIHtcbiAqICAgaWYgKCBlcnJvci5uYW1lID09PSAnQ3NzU3ludGF4RXJyb3InICkge1xuICogICAgIGVycm9yIC8vPT4gQ3NzU3ludGF4RXJyb3JcbiAqICAgfVxuICogfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBSYWlzaW5nIGVycm9yIGZyb20gcGx1Z2luXG4gKiB0aHJvdyBub2RlLmVycm9yKCdVbmtub3duIHZhcmlhYmxlJywgeyBwbHVnaW46ICdwb3N0Y3NzLXZhcnMnIH0pO1xuICovXG5jbGFzcyBDc3NTeW50YXhFcnJvciB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAgLSBlcnJvciBtZXNzYWdlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtsaW5lXSAgIC0gc291cmNlIGxpbmUgb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb2x1bW5dIC0gc291cmNlIGNvbHVtbiBvZiB0aGUgZXJyb3JcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3NvdXJjZV0gLSBzb3VyY2UgY29kZSBvZiB0aGUgYnJva2VuIGZpbGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2ZpbGVdICAgLSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBicm9rZW4gZmlsZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcGx1Z2luXSAtIFBvc3RDU1MgcGx1Z2luIG5hbWUsIGlmIGVycm9yIGNhbWUgZnJvbSBwbHVnaW5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihtZXNzYWdlLCBsaW5lLCBjb2x1bW4sIHNvdXJjZSwgZmlsZSwgcGx1Z2luKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IC0gQWx3YXlzIGVxdWFsIHRvIGAnQ3NzU3ludGF4RXJyb3InYC4gWW91IHNob3VsZFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgYWx3YXlzIGNoZWNrIGVycm9yIHR5cGVcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgIGJ5IGBlcnJvci5uYW1lID09PSAnQ3NzU3ludGF4RXJyb3InYCBpbnN0ZWFkIG9mXG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICBgZXJyb3IgaW5zdGFuY2VvZiBDc3NTeW50YXhFcnJvcmAsIGJlY2F1c2VcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgIG5wbSBjb3VsZCBoYXZlIHNldmVyYWwgUG9zdENTUyB2ZXJzaW9ucy5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogaWYgKCBlcnJvci5uYW1lID09PSAnQ3NzU3ludGF4RXJyb3InICkge1xuICAgICAgICAgKiAgIGVycm9yIC8vPT4gQ3NzU3ludGF4RXJyb3JcbiAgICAgICAgICogfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5uYW1lICAgPSAnQ3NzU3ludGF4RXJyb3InO1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIEVycm9yIG1lc3NhZ2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqIGVycm9yLm1lc3NhZ2UgLy89PiAnVW5jbG9zZWQgYmxvY2snXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnJlYXNvbiA9IG1lc3NhZ2U7XG5cbiAgICAgICAgaWYgKCBmaWxlICkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgYnJva2VuIGZpbGUuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICAgICAqIGVycm9yLmZpbGUgICAgICAgLy89PiAnYS5zYXNzJ1xuICAgICAgICAgICAgICogZXJyb3IuaW5wdXQuZmlsZSAvLz0+ICdhLmNzcydcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5maWxlID0gZmlsZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHNvdXJjZSApIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIFNvdXJjZSBjb2RlIG9mIHRoZSBicm9rZW4gZmlsZS5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogZXJyb3Iuc291cmNlICAgICAgIC8vPT4gJ2EgeyBiIHt9IH0nXG4gICAgICAgICAgICAgKiBlcnJvci5pbnB1dC5jb2x1bW4gLy89PiAnYSBiIHsgfSdcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCBwbHVnaW4gKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBtZW1iZXIge3N0cmluZ30gLSBQbHVnaW4gbmFtZSwgaWYgZXJyb3IgY2FtZSBmcm9tIHBsdWdpbi5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogZXJyb3IucGx1Z2luIC8vPT4gJ3Bvc3Rjc3MtdmFycydcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5wbHVnaW4gPSBwbHVnaW47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCB0eXBlb2YgbGluZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbHVtbiAhPT0gJ3VuZGVmaW5lZCcgKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBtZW1iZXIge251bWJlcn0gLSBTb3VyY2UgbGluZSBvZiB0aGUgZXJyb3IuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICAgICAqIGVycm9yLmxpbmUgICAgICAgLy89PiAyXG4gICAgICAgICAgICAgKiBlcnJvci5pbnB1dC5saW5lIC8vPT4gNFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmxpbmUgICA9IGxpbmU7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEBtZW1iZXIge251bWJlcn0gLSBTb3VyY2UgY29sdW1uIG9mIHRoZSBlcnJvci5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogZXJyb3IuY29sdW1uICAgICAgIC8vPT4gMVxuICAgICAgICAgICAgICogZXJyb3IuaW5wdXQuY29sdW1uIC8vPT4gNFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0TWVzc2FnZSgpO1xuXG4gICAgICAgIGlmICggRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UgKSB7XG4gICAgICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBDc3NTeW50YXhFcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRNZXNzYWdlKCkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIEZ1bGwgZXJyb3IgdGV4dCBpbiB0aGUgR05VIGVycm9yIGZvcm1hdFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aCBwbHVnaW4sIGZpbGUsIGxpbmUgYW5kIGNvbHVtbi5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogZXJyb3IubWVzc2FnZSAvLz0+ICdhLmNzczoxOjE6IFVuY2xvc2VkIGJsb2NrJ1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tZXNzYWdlICA9IHRoaXMucGx1Z2luID8gdGhpcy5wbHVnaW4gKyAnOiAnIDogJyc7XG4gICAgICAgIHRoaXMubWVzc2FnZSArPSB0aGlzLmZpbGUgPyB0aGlzLmZpbGUgOiAnPGNzcyBpbnB1dD4nO1xuICAgICAgICBpZiAoIHR5cGVvZiB0aGlzLmxpbmUgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlICs9ICc6JyArIHRoaXMubGluZSArICc6JyArIHRoaXMuY29sdW1uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWVzc2FnZSArPSAnOiAnICsgdGhpcy5yZWFzb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGZldyBsaW5lcyBvZiBDU1Mgc291cmNlIHRoYXQgY2F1c2VkIHRoZSBlcnJvci5cbiAgICAgKlxuICAgICAqIElmIHRoZSBDU1MgaGFzIGFuIGlucHV0IHNvdXJjZSBtYXAgd2l0aG91dCBgc291cmNlQ29udGVudGAsXG4gICAgICogdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbY29sb3JdIHdoZXRoZXIgYXJyb3cgd2lsbCBiZSBjb2xvcmVkIHJlZCBieSB0ZXJtaW5hbFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciBjb2Rlcy4gQnkgZGVmYXVsdCwgUG9zdENTUyB3aWxsIGRldGVjdFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciBzdXBwb3J0IGJ5IGBwcm9jZXNzLnN0ZG91dC5pc1RUWWBcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGBwcm9jZXNzLmVudi5OT0RFX0RJU0FCTEVfQ09MT1JTYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogZXJyb3Iuc2hvd1NvdXJjZUNvZGUoKSAvLz0+IFwiICA0IHwgfVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICA1IHwgYSB7XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICA+IDYgfCAgIGJhZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgIHwgICBeXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIDcgfCB9XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgIDggfCBiIHtcIlxuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBmZXcgbGluZXMgb2YgQ1NTIHNvdXJjZSB0aGF0IGNhdXNlZCB0aGUgZXJyb3JcbiAgICAgKi9cbiAgICBzaG93U291cmNlQ29kZShjb2xvcikge1xuICAgICAgICBpZiAoICF0aGlzLnNvdXJjZSApIHJldHVybiAnJztcblxuICAgICAgICBsZXQgY3NzID0gdGhpcy5zb3VyY2U7XG4gICAgICAgIGlmICggdHlwZW9mIGNvbG9yID09PSAndW5kZWZpbmVkJyApIGNvbG9yID0gc3VwcG9ydHNDb2xvcjtcbiAgICAgICAgaWYgKCBjb2xvciApIGNzcyA9IHRlcm1pbmFsSGlnaGxpZ2h0KGNzcyk7XG5cbiAgICAgICAgbGV0IGxpbmVzID0gY3NzLnNwbGl0KC9cXHI/XFxuLyk7XG4gICAgICAgIGxldCBzdGFydCA9IE1hdGgubWF4KHRoaXMubGluZSAtIDMsIDApO1xuICAgICAgICBsZXQgZW5kICAgPSBNYXRoLm1pbih0aGlzLmxpbmUgKyAyLCBsaW5lcy5sZW5ndGgpO1xuXG4gICAgICAgIGxldCBtYXhXaWR0aCA9IFN0cmluZyhlbmQpLmxlbmd0aDtcbiAgICAgICAgbGV0IGNvbG9ycyA9IG5ldyBjaGFsay5jb25zdHJ1Y3Rvcih7IGVuYWJsZWQ6IHRydWUgfSk7XG5cbiAgICAgICAgZnVuY3Rpb24gbWFyayh0ZXh0KSB7XG4gICAgICAgICAgICBpZiAoIGNvbG9yICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2xvcnMucmVkLmJvbGQodGV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFzaWRlKHRleHQpIHtcbiAgICAgICAgICAgIGlmICggY29sb3IgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbG9ycy5ncmF5KHRleHQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaW5lcy5zbGljZShzdGFydCwgZW5kKS5tYXAoIChsaW5lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbGV0IG51bWJlciA9IHN0YXJ0ICsgMSArIGluZGV4O1xuICAgICAgICAgICAgbGV0IGd1dHRlciA9ICcgJyArICgnICcgKyBudW1iZXIpLnNsaWNlKC1tYXhXaWR0aCkgKyAnIHwgJztcbiAgICAgICAgICAgIGlmICggbnVtYmVyID09PSB0aGlzLmxpbmUgKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNwYWNpbmcgPVxuICAgICAgICAgICAgICAgICAgICBhc2lkZShndXR0ZXIucmVwbGFjZSgvXFxkL2csICcgJykpICtcbiAgICAgICAgICAgICAgICAgICAgbGluZS5zbGljZSgwLCB0aGlzLmNvbHVtbiAtIDEpLnJlcGxhY2UoL1teXFx0XS9nLCAnICcpO1xuICAgICAgICAgICAgICAgIHJldHVybiBtYXJrKCc+JykgKyBhc2lkZShndXR0ZXIpICsgbGluZSArICdcXG4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgIHNwYWNpbmcgKyBtYXJrKCdeJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiAnICcgKyBhc2lkZShndXR0ZXIpICsgbGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkuam9pbignXFxuJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBlcnJvciBwb3NpdGlvbiwgbWVzc2FnZSBhbmQgc291cmNlIGNvZGUgb2YgdGhlIGJyb2tlbiBwYXJ0LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBlcnJvci50b1N0cmluZygpIC8vPT4gXCJDc3NTeW50YXhFcnJvcjogYXBwLmNzczoxOjE6IFVuY2xvc2VkIGJsb2NrXG4gICAgICogICAgICAgICAgICAgICAgICAvLyAgICA+IDEgfCBhIHtcbiAgICAgKiAgICAgICAgICAgICAgICAgIC8vICAgICAgICB8IF5cIlxuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBlcnJvciBwb3NpdGlvbiwgbWVzc2FnZSBhbmQgc291cmNlIGNvZGVcbiAgICAgKi9cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgbGV0IGNvZGUgPSB0aGlzLnNob3dTb3VyY2VDb2RlKCk7XG4gICAgICAgIGlmICggY29kZSApIHtcbiAgICAgICAgICAgIGNvZGUgPSAnXFxuXFxuJyArIGNvZGUgKyAnXFxuJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgJzogJyArIHRoaXMubWVzc2FnZSArIGNvZGU7XG4gICAgfVxuXG4gICAgZ2V0IGdlbmVyYXRlZCgpIHtcbiAgICAgICAgd2Fybk9uY2UoJ0Nzc1N5bnRheEVycm9yI2dlbmVyYXRlZCBpcyBkZXByZWNhdGVkLiBVc2UgaW5wdXQgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIENzc1N5bnRheEVycm9yI1xuICAgICAqIEBtZW1iZXIge0lucHV0fSBpbnB1dCAtIElucHV0IG9iamVjdCB3aXRoIFBvc3RDU1MgaW50ZXJuYWwgaW5mb3JtYXRpb25cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBhYm91dCBpbnB1dCBmaWxlLiBJZiBpbnB1dCBoYXMgc291cmNlIG1hcFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gcHJldmlvdXMgdG9vbCwgUG9zdENTUyB3aWxsIHVzZSBvcmlnaW5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yIGV4YW1wbGUsIFNhc3MpIHNvdXJjZS4gWW91IGNhbiB1c2UgdGhpc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCB0byBnZXQgUG9zdENTUyBpbnB1dCBzb3VyY2UuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGVycm9yLmlucHV0LmZpbGUgLy89PiAnYS5jc3MnXG4gICAgICogZXJyb3IuZmlsZSAgICAgICAvLz0+ICdhLnNhc3MnXG4gICAgICovXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3NzU3ludGF4RXJyb3I7XG4iXX0=\n","!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.quote=e()}}(function(){var define,module,exports;module={exports:(exports={})};\nfunction emptyQuotes(options) {\n return options.quotes + options.quotes;\n}\n\nfunction quoteString(options, str) {\n if (str === '') {\n return emptyQuotes(options);\n }\n if (str[0] !== options.quotes) {\n str = options.quotes + str;\n }\n if (str[str.length - 1] !== options.quotes) {\n str += options.quotes;\n }\n return str;\n}\n\nfunction quoteOptions(options, str) {\n if (arguments.length === 1) {\n str = options;\n options = { quotes: '\"' };\n }\n\n if (typeof str === 'string') {\n return quoteString(options, str);\n }\n\n if (typeof str === 'undefined' || str === null) {\n return emptyQuotes(options);\n }\n\n return str;\n}\n\nfunction quote(str) {\n if (typeof str === 'object') {\n return quoteOptions.bind(null, str);\n }\n return quoteOptions(str);\n}\n\nmodule.exports = quote;\n\nreturn module.exports;});","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar forbidNewOperator = require('./forbidNewOperator');\nvar isIdentity = require('./isIdentity');\nvar create = require('./create');\nvar is = require('./is');\nvar getTypeName = require('./getTypeName');\nvar getFunctionName = require('./getFunctionName');\n\nfunction getDefaultName(type, predicate) {\n return '{' + getTypeName(type) + ' | ' + getFunctionName(predicate) + '}';\n}\n\nfunction refinement(type, predicate, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(type), function () { return 'Invalid argument type ' + assert.stringify(type) + ' supplied to refinement(type, predicate, [name]) combinator (expected a type)'; });\n assert(isFunction(predicate), function () { return 'Invalid argument predicate supplied to refinement(type, predicate, [name]) combinator (expected a function)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to refinement(type, predicate, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(type, predicate);\n var identity = isIdentity(type);\n\n function Refinement(value, path) {\n\n if (process.env.NODE_ENV !== 'production') {\n forbidNewOperator(this, Refinement);\n path = path || [displayName];\n }\n\n var x = create(type, value, path);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(predicate(x), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/'); });\n }\n\n return x;\n }\n\n Refinement.meta = {\n kind: 'subtype',\n type: type,\n predicate: predicate,\n name: name,\n identity: identity\n };\n\n Refinement.displayName = displayName;\n\n Refinement.is = function (x) {\n return is(x, type) && predicate(x);\n };\n\n Refinement.update = function (instance, patch) {\n return Refinement(assert.update(instance, patch));\n };\n\n return Refinement;\n}\n\nrefinement.getDefaultName = getDefaultName;\nmodule.exports = refinement;\n","var isFunction = require('./isFunction');\nvar isNil = require('./isNil');\nvar fail = require('./fail');\nvar stringify = require('./stringify');\n\nfunction assert(guard, message) {\n if (guard !== true) {\n if (isFunction(message)) { // handle lazy messages\n message = message();\n }\n else if (isNil(message)) { // use a default message\n message = 'Assert failed (turn on \"Pause on exceptions\" in your Source panel)';\n }\n assert.fail(message);\n }\n}\n\nassert.fail = fail;\nassert.stringify = stringify;\n\nmodule.exports = assert;","var irreducible = require('./irreducible');\nvar isArray = require('./isArray');\n\nmodule.exports = irreducible('Array', isArray);\n","var t = require('tcomb');\r\n\r\nvar Options = t.struct({\r\n\tlast: t.maybe(t.Boolean)\r\n});\r\n\r\nvar helpers = {\r\n\r\n\tsplit: function(value, separators, options) {\r\n\t\treturn split(value, separators, options || {});\r\n\t},\r\n\r\n\tsplitBySpaces: t.func(t.String, t.Array).of(\r\n\t\tfunction(value) {\r\n\t\t\tvar spaces = [' ', '\\n', '\\t'];\r\n\t\t\treturn helpers.split(value, spaces);\r\n\t\t}\r\n\t),\r\n\r\n\tsplitByCommas: t.func(t.String, t.Array).of(\r\n\t\tfunction(value) {\r\n\t\t\tvar comma = ',';\r\n\t\t\treturn helpers.split(value, [comma], { last: true });\r\n\t\t}\r\n\t)\r\n\r\n};\r\n\r\nvar split = t.func([t.String, t.Array, Options], t.Array).of(\r\n\tfunction(value, separators, options) {\r\n\t\tvar array = [];\r\n\t\tvar current = '';\r\n\t\tvar split = false;\r\n\r\n\t\tvar func = 0;\r\n\t\tvar quote = false;\r\n\t\tvar escape = false;\r\n\r\n\t\tfor (var i = 0; i < value.length; i++) {\r\n\t\t\tvar char = value[i];\r\n\r\n\t\t\tif (quote) {\r\n\t\t\t\tif (escape) {\r\n\t\t\t\t\tescape = false;\r\n\t\t\t\t} else if (char === '\\\\') {\r\n\t\t\t\t\tescape = true;\r\n\t\t\t\t} else if (char === quote) {\r\n\t\t\t\t\tquote = false;\r\n\t\t\t\t}\r\n\t\t\t} else if (char === '\"' || char === '\\'') {\r\n\t\t\t\tquote = char;\r\n\t\t\t} else if (char === '(') {\r\n\t\t\t\tfunc += 1;\r\n\t\t\t} else if (char === ')') {\r\n\t\t\t\tif (func > 0) {\r\n\t\t\t\t\tfunc -= 1;\r\n\t\t\t\t}\r\n\t\t\t} else if (func === 0) {\r\n\t\t\t\tif (separators.indexOf(char) !== -1) {\r\n\t\t\t\t\tsplit = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (split) {\r\n\t\t\t\tif (current !== '') {\r\n\t\t\t\t\tarray.push(current.trim());\r\n\t\t\t\t}\r\n\t\t\t\tcurrent = '';\r\n\t\t\t\tsplit = false;\r\n\t\t\t} else {\r\n\t\t\t\tcurrent += char;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options.last || current !== '') {\r\n\t\t\tarray.push(current.trim());\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n);\r\n\r\nmodule.exports = helpers;\r\n","exports.f = require('./_wks');\n","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = 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 ? ObjectProto : null;\n};\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar isArray = require('./isArray');\nvar forbidNewOperator = require('./isIdentity');\nvar is = require('./is');\nvar getTypeName = require('./getTypeName');\n\nfunction getDefaultName(types) {\n return types.map(getTypeName).join(' & ');\n}\n\nfunction intersection(types, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(types) && types.every(isFunction) && types.length >= 2, function () { return 'Invalid argument types ' + assert.stringify(types) + ' supplied to intersection(types, [name]) combinator (expected an array of at least 2 types)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to intersection(types, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(types);\n\n function Intersection(value, path) {\n\n if (process.env.NODE_ENV !== 'production') {\n forbidNewOperator(this, Intersection);\n path = path || [displayName];\n assert(Intersection.is(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/'); });\n }\n\n return value;\n }\n\n Intersection.meta = {\n kind: 'intersection',\n types: types,\n name: name,\n identity: true\n };\n\n Intersection.displayName = displayName;\n\n Intersection.is = function (x) {\n return types.every(function (type) {\n return is(x, type);\n });\n };\n\n Intersection.update = function (instance, patch) {\n return Intersection(assert.update(instance, patch));\n };\n\n return Intersection;\n}\n\nintersection.getDefaultName = getDefaultName;\nmodule.exports = intersection;\n\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","var isType = require('./isType');\n\nmodule.exports = function isUnion(x) {\n return isType(x) && ( x.meta.kind === 'union' );\n};","var isType = require('./isType');\n\nmodule.exports = function isStruct(x) {\n return isType(x) && ( x.meta.kind === 'struct' );\n};","var assert = require('./assert');\nvar Boolean = require('./Boolean');\nvar isType = require('./isType');\nvar getTypeName = require('./getTypeName');\n\n// return true if the type constructor behaves like the identity function\nmodule.exports = function isIdentity(type) {\n if (isType(type)) {\n if (process.env.NODE_ENV !== 'production') {\n assert(Boolean.is(type.meta.identity), function () { return 'Invalid meta identity ' + assert.stringify(type.meta.identity) + ' supplied to type ' + getTypeName(type); });\n }\n return type.meta.identity;\n }\n // for tcomb the other constructors, like ES6 classes, are identity-like\n return true;\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Represents a comment between declarations or statements (rule and at-rules).\n *\n * Comments inside selectors, at-rule parameters, or declaration values\n * will be stored in the `raws` properties explained above.\n *\n * @extends Node\n */\nvar Comment = function (_Node) {\n _inherits(Comment, _Node);\n\n function Comment(defaults) {\n _classCallCheck(this, Comment);\n\n var _this = _possibleConstructorReturn(this, _Node.call(this, defaults));\n\n _this.type = 'comment';\n return _this;\n }\n\n _createClass(Comment, [{\n key: 'left',\n get: function get() {\n (0, _warnOnce2.default)('Comment#left was deprecated. Use Comment#raws.left');\n return this.raws.left;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Comment#left was deprecated. Use Comment#raws.left');\n this.raws.left = val;\n }\n }, {\n key: 'right',\n get: function get() {\n (0, _warnOnce2.default)('Comment#right was deprecated. Use Comment#raws.right');\n return this.raws.right;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Comment#right was deprecated. Use Comment#raws.right');\n this.raws.right = val;\n }\n\n /**\n * @memberof Comment#\n * @member {string} text - the comment’s text\n */\n\n /**\n * @memberof Comment#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text.\n */\n\n }]);\n\n return Comment;\n}(_node2.default);\n\nexports.default = Comment;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1lbnQuZXM2Il0sIm5hbWVzIjpbIkNvbW1lbnQiLCJkZWZhdWx0cyIsInR5cGUiLCJyYXdzIiwibGVmdCIsInZhbCIsInJpZ2h0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQTs7Ozs7Ozs7SUFRTUEsTzs7O0FBRUYscUJBQVlDLFFBQVosRUFBc0I7QUFBQTs7QUFBQSxxREFDbEIsaUJBQU1BLFFBQU4sQ0FEa0I7O0FBRWxCLGNBQUtDLElBQUwsR0FBWSxTQUFaO0FBRmtCO0FBR3JCOzs7OzRCQUVVO0FBQ1Asb0NBQVMsb0RBQVQ7QUFDQSxtQkFBTyxLQUFLQyxJQUFMLENBQVVDLElBQWpCO0FBQ0gsUzswQkFFUUMsRyxFQUFLO0FBQ1Ysb0NBQVMsb0RBQVQ7QUFDQSxpQkFBS0YsSUFBTCxDQUFVQyxJQUFWLEdBQWlCQyxHQUFqQjtBQUNIOzs7NEJBRVc7QUFDUixvQ0FBUyxzREFBVDtBQUNBLG1CQUFPLEtBQUtGLElBQUwsQ0FBVUcsS0FBakI7QUFDSCxTOzBCQUVTRCxHLEVBQUs7QUFDWCxvQ0FBUyxzREFBVDtBQUNBLGlCQUFLRixJQUFMLENBQVVHLEtBQVYsR0FBa0JELEdBQWxCO0FBQ0g7O0FBRUQ7Ozs7O0FBS0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFjV0wsTyIsImZpbGUiOiJjb21tZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdhcm5PbmNlIGZyb20gJy4vd2Fybi1vbmNlJztcbmltcG9ydCBOb2RlICAgICBmcm9tICcuL25vZGUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb21tZW50IGJldHdlZW4gZGVjbGFyYXRpb25zIG9yIHN0YXRlbWVudHMgKHJ1bGUgYW5kIGF0LXJ1bGVzKS5cbiAqXG4gKiBDb21tZW50cyBpbnNpZGUgc2VsZWN0b3JzLCBhdC1ydWxlIHBhcmFtZXRlcnMsIG9yIGRlY2xhcmF0aW9uIHZhbHVlc1xuICogd2lsbCBiZSBzdG9yZWQgaW4gdGhlIGByYXdzYCBwcm9wZXJ0aWVzIGV4cGxhaW5lZCBhYm92ZS5cbiAqXG4gKiBAZXh0ZW5kcyBOb2RlXG4gKi9cbmNsYXNzIENvbW1lbnQgZXh0ZW5kcyBOb2RlIHtcblxuICAgIGNvbnN0cnVjdG9yKGRlZmF1bHRzKSB7XG4gICAgICAgIHN1cGVyKGRlZmF1bHRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gJ2NvbW1lbnQnO1xuICAgIH1cblxuICAgIGdldCBsZWZ0KCkge1xuICAgICAgICB3YXJuT25jZSgnQ29tbWVudCNsZWZ0IHdhcyBkZXByZWNhdGVkLiBVc2UgQ29tbWVudCNyYXdzLmxlZnQnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3cy5sZWZ0O1xuICAgIH1cblxuICAgIHNldCBsZWZ0KHZhbCkge1xuICAgICAgICB3YXJuT25jZSgnQ29tbWVudCNsZWZ0IHdhcyBkZXByZWNhdGVkLiBVc2UgQ29tbWVudCNyYXdzLmxlZnQnKTtcbiAgICAgICAgdGhpcy5yYXdzLmxlZnQgPSB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IHJpZ2h0KCkge1xuICAgICAgICB3YXJuT25jZSgnQ29tbWVudCNyaWdodCB3YXMgZGVwcmVjYXRlZC4gVXNlIENvbW1lbnQjcmF3cy5yaWdodCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdzLnJpZ2h0O1xuICAgIH1cblxuICAgIHNldCByaWdodCh2YWwpIHtcbiAgICAgICAgd2Fybk9uY2UoJ0NvbW1lbnQjcmlnaHQgd2FzIGRlcHJlY2F0ZWQuIFVzZSBDb21tZW50I3Jhd3MucmlnaHQnKTtcbiAgICAgICAgdGhpcy5yYXdzLnJpZ2h0ID0gdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBtZW1iZXJvZiBDb21tZW50I1xuICAgICAqIEBtZW1iZXIge3N0cmluZ30gdGV4dCAtIHRoZSBjb21tZW504oCZcyB0ZXh0XG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgQ29tbWVudCNcbiAgICAgKiBAbWVtYmVyIHtvYmplY3R9IHJhd3MgLSBJbmZvcm1hdGlvbiB0byBnZW5lcmF0ZSBieXRlLXRvLWJ5dGUgZXF1YWxcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBub2RlIHN0cmluZyBhcyBpdCB3YXMgaW4gdGhlIG9yaWdpbiBpbnB1dC5cbiAgICAgKlxuICAgICAqIEV2ZXJ5IHBhcnNlciBzYXZlcyBpdHMgb3duIHByb3BlcnRpZXMsXG4gICAgICogYnV0IHRoZSBkZWZhdWx0IENTUyBwYXJzZXIgdXNlczpcbiAgICAgKlxuICAgICAqICogYGJlZm9yZWA6IHRoZSBzcGFjZSBzeW1ib2xzIGJlZm9yZSB0aGUgbm9kZS5cbiAgICAgKiAqIGBsZWZ0YDogdGhlIHNwYWNlIHN5bWJvbHMgYmV0d2VlbiBgLypgIGFuZCB0aGUgY29tbWVudOKAmXMgdGV4dC5cbiAgICAgKiAqIGByaWdodGA6IHRoZSBzcGFjZSBzeW1ib2xzIGJldHdlZW4gdGhlIGNvbW1lbnTigJlzIHRleHQuXG4gICAgICovXG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbW1lbnQ7XG4iXX0=\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex];\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex];\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _jsBase = require('js-base64');\n\nvar _sourceMap = require('source-map');\n\nvar _sourceMap2 = _interopRequireDefault(_sourceMap);\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\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\nvar MapGenerator = function () {\n function MapGenerator(stringify, root, opts) {\n _classCallCheck(this, MapGenerator);\n\n this.stringify = stringify;\n this.mapOpts = opts.map || {};\n this.root = root;\n this.opts = opts;\n }\n\n MapGenerator.prototype.isMap = function isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map;\n } else {\n return this.previous().length > 0;\n }\n };\n\n MapGenerator.prototype.previous = function previous() {\n var _this = this;\n\n if (!this.previousMaps) {\n this.previousMaps = [];\n this.root.walk(function (node) {\n if (node.source && node.source.input.map) {\n var map = node.source.input.map;\n if (_this.previousMaps.indexOf(map) === -1) {\n _this.previousMaps.push(map);\n }\n }\n });\n }\n\n return this.previousMaps;\n };\n\n MapGenerator.prototype.isInline = function isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline;\n }\n\n var annotation = this.mapOpts.annotation;\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false;\n }\n\n if (this.previous().length) {\n return this.previous().some(function (i) {\n return i.inline;\n });\n } else {\n return true;\n }\n };\n\n MapGenerator.prototype.isSourcesContent = function isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent;\n }\n if (this.previous().length) {\n return this.previous().some(function (i) {\n return i.withContent();\n });\n } else {\n return true;\n }\n };\n\n MapGenerator.prototype.clearAnnotation = function clearAnnotation() {\n if (this.mapOpts.annotation === false) return;\n\n var node = void 0;\n for (var i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i];\n if (node.type !== 'comment') continue;\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i);\n }\n }\n };\n\n MapGenerator.prototype.setSourcesContent = function setSourcesContent() {\n var _this2 = this;\n\n var already = {};\n this.root.walk(function (node) {\n if (node.source) {\n var from = node.source.input.from;\n if (from && !already[from]) {\n already[from] = true;\n var relative = _this2.relative(from);\n _this2.map.setSourceContent(relative, node.source.input.css);\n }\n }\n });\n };\n\n MapGenerator.prototype.applyPrevMaps = function applyPrevMaps() {\n for (var _iterator = this.previous(), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var prev = _ref;\n\n var from = this.relative(prev.file);\n var root = prev.root || _path2.default.dirname(prev.file);\n var map = void 0;\n\n if (this.mapOpts.sourcesContent === false) {\n map = new _sourceMap2.default.SourceMapConsumer(prev.text);\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(function () {\n return null;\n });\n }\n } else {\n map = prev.consumer();\n }\n\n this.map.applySourceMap(map, from, this.relative(root));\n }\n };\n\n MapGenerator.prototype.isAnnotation = function isAnnotation() {\n if (this.isInline()) {\n return true;\n } else if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation;\n } else if (this.previous().length) {\n return this.previous().some(function (i) {\n return i.annotation;\n });\n } else {\n return true;\n }\n };\n\n MapGenerator.prototype.addAnnotation = function addAnnotation() {\n var content = void 0;\n\n if (this.isInline()) {\n content = 'data:application/json;base64,' + _jsBase.Base64.encode(this.map.toString());\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation;\n } else {\n content = this.outputFile() + '.map';\n }\n\n var eol = '\\n';\n if (this.css.indexOf('\\r\\n') !== -1) eol = '\\r\\n';\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */';\n };\n\n MapGenerator.prototype.outputFile = function outputFile() {\n if (this.opts.to) {\n return this.relative(this.opts.to);\n } else if (this.opts.from) {\n return this.relative(this.opts.from);\n } else {\n return 'to.css';\n }\n };\n\n MapGenerator.prototype.generateMap = function generateMap() {\n this.generateString();\n if (this.isSourcesContent()) this.setSourcesContent();\n if (this.previous().length > 0) this.applyPrevMaps();\n if (this.isAnnotation()) this.addAnnotation();\n\n if (this.isInline()) {\n return [this.css];\n } else {\n return [this.css, this.map];\n }\n };\n\n MapGenerator.prototype.relative = function relative(file) {\n if (file.indexOf('<') === 0) return file;\n if (/^\\w+:\\/\\//.test(file)) return file;\n\n var from = this.opts.to ? _path2.default.dirname(this.opts.to) : '.';\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = _path2.default.dirname(_path2.default.resolve(from, this.mapOpts.annotation));\n }\n\n file = _path2.default.relative(from, file);\n if (_path2.default.sep === '\\\\') {\n return file.replace(/\\\\/g, '/');\n } else {\n return file;\n }\n };\n\n MapGenerator.prototype.sourcePath = function sourcePath(node) {\n if (this.mapOpts.from) {\n return this.mapOpts.from;\n } else {\n return this.relative(node.source.input.from);\n }\n };\n\n MapGenerator.prototype.generateString = function generateString() {\n var _this3 = this;\n\n this.css = '';\n this.map = new _sourceMap2.default.SourceMapGenerator({ file: this.outputFile() });\n\n var line = 1;\n var column = 1;\n\n var lines = void 0,\n last = void 0;\n this.stringify(this.root, function (str, node, type) {\n _this3.css += str;\n\n if (node && type !== 'end') {\n if (node.source && node.source.start) {\n _this3.map.addMapping({\n source: _this3.sourcePath(node),\n generated: { line: line, column: column - 1 },\n original: {\n line: node.source.start.line,\n column: node.source.start.column - 1\n }\n });\n } else {\n _this3.map.addMapping({\n source: '',\n original: { line: 1, column: 0 },\n generated: { line: line, column: column - 1 }\n });\n }\n }\n\n lines = str.match(/\\n/g);\n if (lines) {\n line += lines.length;\n last = str.lastIndexOf('\\n');\n column = str.length - last;\n } else {\n column += str.length;\n }\n\n if (node && type !== 'start') {\n if (node.source && node.source.end) {\n _this3.map.addMapping({\n source: _this3.sourcePath(node),\n generated: { line: line, column: column - 1 },\n original: {\n line: node.source.end.line,\n column: node.source.end.column\n }\n });\n } else {\n _this3.map.addMapping({\n source: '',\n original: { line: 1, column: 0 },\n generated: { line: line, column: column - 1 }\n });\n }\n }\n });\n };\n\n MapGenerator.prototype.generate = function generate() {\n this.clearAnnotation();\n\n if (this.isMap()) {\n return this.generateMap();\n } else {\n var result = '';\n this.stringify(this.root, function (i) {\n result += i;\n });\n return [result];\n }\n };\n\n return MapGenerator;\n}();\n\nexports.default = MapGenerator;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1hcC1nZW5lcmF0b3IuZXM2Il0sIm5hbWVzIjpbIk1hcEdlbmVyYXRvciIsInN0cmluZ2lmeSIsInJvb3QiLCJvcHRzIiwibWFwT3B0cyIsIm1hcCIsImlzTWFwIiwicHJldmlvdXMiLCJsZW5ndGgiLCJwcmV2aW91c01hcHMiLCJ3YWxrIiwibm9kZSIsInNvdXJjZSIsImlucHV0IiwiaW5kZXhPZiIsInB1c2giLCJpc0lubGluZSIsImlubGluZSIsImFubm90YXRpb24iLCJzb21lIiwiaSIsImlzU291cmNlc0NvbnRlbnQiLCJzb3VyY2VzQ29udGVudCIsIndpdGhDb250ZW50IiwiY2xlYXJBbm5vdGF0aW9uIiwibm9kZXMiLCJ0eXBlIiwidGV4dCIsInJlbW92ZUNoaWxkIiwic2V0U291cmNlc0NvbnRlbnQiLCJhbHJlYWR5IiwiZnJvbSIsInJlbGF0aXZlIiwic2V0U291cmNlQ29udGVudCIsImNzcyIsImFwcGx5UHJldk1hcHMiLCJwcmV2IiwiZmlsZSIsImRpcm5hbWUiLCJTb3VyY2VNYXBDb25zdW1lciIsImNvbnN1bWVyIiwiYXBwbHlTb3VyY2VNYXAiLCJpc0Fubm90YXRpb24iLCJhZGRBbm5vdGF0aW9uIiwiY29udGVudCIsImVuY29kZSIsInRvU3RyaW5nIiwib3V0cHV0RmlsZSIsImVvbCIsInRvIiwiZ2VuZXJhdGVNYXAiLCJnZW5lcmF0ZVN0cmluZyIsInRlc3QiLCJyZXNvbHZlIiwic2VwIiwicmVwbGFjZSIsInNvdXJjZVBhdGgiLCJTb3VyY2VNYXBHZW5lcmF0b3IiLCJsaW5lIiwiY29sdW1uIiwibGluZXMiLCJsYXN0Iiwic3RyIiwic3RhcnQiLCJhZGRNYXBwaW5nIiwiZ2VuZXJhdGVkIiwib3JpZ2luYWwiLCJtYXRjaCIsImxhc3RJbmRleE9mIiwiZW5kIiwiZ2VuZXJhdGUiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOzs7Ozs7OztJQUVxQkEsWTtBQUVqQiwwQkFBWUMsU0FBWixFQUF1QkMs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QUtDLE1BQUwsSUFBZUQsS0FBS0MsTUFBTCxDQUFZeUQsR0FBaEMsRUFBc0M7QUFDbEMsMkJBQUtoRSxHQUFMLENBQVMyRCxVQUFULENBQW9CO0FBQ2hCcEQsZ0NBQVcsT0FBSzRDLFVBQUwsQ0FBZ0I3QyxJQUFoQixDQURLO0FBRWhCc0QsbUNBQVcsRUFBRVAsVUFBRixFQUFRQyxRQUFRQSxTQUFTLENBQXpCLEVBRks7QUFHaEJPLGtDQUFXO0FBQ1BSLGtDQUFRL0MsS0FBS0MsTUFBTCxDQUFZeUQsR0FBWixDQUFnQlgsSUFEakI7QUFFUEMsb0NBQVFoRCxLQUFLQyxNQUFMLENBQVl5RCxHQUFaLENBQWdCVjtBQUZqQjtBQUhLLHFCQUFwQjtBQVFILGlCQVRELE1BU087QUFDSCwyQkFBS3RELEdBQUwsQ0FBUzJELFVBQVQsQ0FBb0I7QUFDaEJwRCxnQ0FBVyxhQURLO0FBRWhCc0Qsa0NBQVcsRUFBRVIsTUFBTSxDQUFSLEVBQVdDLFFBQVEsQ0FBbkIsRUFGSztBQUdoQk0sbUNBQVcsRUFBRVAsVUFBRixFQUFRQyxRQUFRQSxTQUFTLENBQXpCO0FBSEsscUJBQXBCO0FBS0g7QUFDSjtBQUNKLFNBakREO0FBa0RILEs7OzJCQUVEVyxRLHVCQUFXO0FBQ1AsYUFBSzlDLGVBQUw7O0FBRUEsWUFBSyxLQUFLbEIsS0FBTCxFQUFMLEVBQW9CO0FBQ2hCLG1CQUFPLEtBQUs0QyxXQUFMLEVBQVA7QUFDSCxTQUZELE1BRU87QUFDSCxnQkFBSXFCLFNBQVMsRUFBYjtBQUNBLGlCQUFLdEUsU0FBTCxDQUFlLEtBQUtDLElBQXBCLEVBQTBCLGFBQUs7QUFDM0JxRSwwQkFBVW5ELENBQVY7QUFDSCxhQUZEO0FBR0EsbUJBQU8sQ0FBQ21ELE1BQUQsQ0FBUDtBQUNIO0FBQ0osSzs7Ozs7a0JBcFFnQnZFLFkiLCJmaWxlIjoibWFwLWdlbmVyYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2U2NCB9IGZyb20gJ2pzLWJhc2U2NCc7XG5pbXBvcnQgICBtb3ppbGxhICBmcm9tICdzb3VyY2UtbWFwJztcbmltcG9ydCAgIHBhdGggICAgIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNYXBHZW5lcmF0b3Ige1xuXG4gICAgY29uc3RydWN0b3Ioc3RyaW5naWZ5LCByb290LCBvcHRzKSB7XG4gICAgICAgIHRoaXMuc3RyaW5naWZ5ID0gc3RyaW5naWZ5O1xuICAgICAgICB0aGlzLm1hcE9wdHMgICA9IG9wdHMubWFwIHx8IHsgfTtcbiAgICAgICAgdGhpcy5yb290ICAgICAgPSByb290O1xuICAgICAgICB0aGlzLm9wdHMgICAgICA9IG9wdHM7XG4gICAgfVxuXG4gICAgaXNNYXAoKSB7XG4gICAgICAgIGlmICggdHlwZW9mIHRoaXMub3B0cy5tYXAgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgcmV0dXJuICEhdGhpcy5vcHRzLm1hcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzKCkubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByZXZpb3VzKCkge1xuICAgICAgICBpZiAoICF0aGlzLnByZXZpb3VzTWFwcyApIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlvdXNNYXBzID0gW107XG4gICAgICAgICAgICB0aGlzLnJvb3Qud2Fsayggbm9kZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCBub2RlLnNvdXJjZSAmJiBub2RlLnNvdXJjZS5pbnB1dC5tYXAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtYXAgPSBub2RlLnNvdXJjZS5pbnB1dC5tYXA7XG4gICAgICAgICAgICAgICAgICAgIGlmICggdGhpcy5wcmV2aW91c01hcHMuaW5kZXhPZihtYXApID09PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNNYXBzLnB1c2gobWFwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucHJldmlvdXNNYXBzO1xuICAgIH1cblxuICAgIGlzSW5saW5lKCkge1xuICAgICAgICBpZiAoIHR5cGVvZiB0aGlzLm1hcE9wdHMuaW5saW5lICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcE9wdHMuaW5saW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFubm90YXRpb24gPSB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbjtcbiAgICAgICAgaWYgKCB0eXBlb2YgYW5ub3RhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgYW5ub3RhdGlvbiAhPT0gdHJ1ZSApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggdGhpcy5wcmV2aW91cygpLmxlbmd0aCApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzKCkuc29tZSggaSA9PiBpLmlubGluZSApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NvdXJjZXNDb250ZW50KCkge1xuICAgICAgICBpZiAoIHR5cGVvZiB0aGlzLm1hcE9wdHMuc291cmNlc0NvbnRlbnQgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwT3B0cy5zb3VyY2VzQ29udGVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHRoaXMucHJldmlvdXMoKS5sZW5ndGggKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcmV2aW91cygpLnNvbWUoIGkgPT4gaS53aXRoQ29udGVudCgpICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsZWFyQW5ub3RhdGlvbigpIHtcbiAgICAgICAgaWYgKCB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbiA9PT0gZmFsc2UgKSByZXR1cm47XG5cbiAgICAgICAgbGV0IG5vZGU7XG4gICAgICAgIGZvciAoIGxldCBpID0gdGhpcy5yb290Lm5vZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tICkge1xuICAgICAgICAgICAgbm9kZSA9IHRoaXMucm9vdC5ub2Rlc1tpXTtcbiAgICAgICAgICAgIGlmICggbm9kZS50eXBlICE9PSAnY29tbWVudCcgKSBjb250aW51ZTtcbiAgICAgICAgICAgIGlmICggbm9kZS50ZXh0LmluZGV4T2YoJyMgc291cmNlTWFwcGluZ1VSTD0nKSA9PT0gMCApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QucmVtb3ZlQ2hpbGQoaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTb3VyY2VzQ29udGVudCgpIHtcbiAgICAgICAgbGV0IGFscmVhZHkgPSB7IH07XG4gICAgICAgIHRoaXMucm9vdC53YWxrKCBub2RlID0+IHtcbiAgICAgICAgICAgIGlmICggbm9kZS5zb3VyY2UgKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZyb20gPSBub2RlLnNvdXJjZS5pbnB1dC5mcm9tO1xuICAgICAgICAgICAgICAgIGlmICggZnJvbSAmJiAhYWxyZWFkeVtmcm9tXSApIHtcbiAgICAgICAgICAgICAgICAgICAgYWxyZWFkeVtmcm9tXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZWxhdGl2ZSA9IHRoaXMucmVsYXRpdmUoZnJvbSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLnNldFNvdXJjZUNvbnRlbnQocmVsYXRpdmUsIG5vZGUuc291cmNlLmlucHV0LmNzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhcHBseVByZXZNYXBzKCkge1xuICAgICAgICBmb3IgKCBsZXQgcHJldiBvZiB0aGlzLnByZXZpb3VzKCkgKSB7XG4gICAgICAgICAgICBsZXQgZnJvbSA9IHRoaXMucmVsYXRpdmUocHJldi5maWxlKTtcbiAgICAgICAgICAgIGxldCByb290ID0gcHJldi5yb290IHx8IHBhdGguZGlybmFtZShwcmV2LmZpbGUpO1xuICAgICAgICAgICAgbGV0IG1hcDtcblxuICAgICAgICAgICAgaWYgKCB0aGlzLm1hcE9wdHMuc291cmNlc0NvbnRlbnQgPT09IGZhbHNlICkge1xuICAgICAgICAgICAgICAgIG1hcCA9IG5ldyBtb3ppbGxhLlNvdXJjZU1hcENvbnN1bWVyKHByZXYudGV4dCk7XG4gICAgICAgICAgICAgICAgaWYgKCBtYXAuc291cmNlc0NvbnRlbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcC5zb3VyY2VzQ29udGVudCA9IG1hcC5zb3VyY2VzQ29udGVudC5tYXAoICgpID0+IG51bGwgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcCA9IHByZXYuY29uc3VtZXIoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5tYXAuYXBwbHlTb3VyY2VNYXAobWFwLCBmcm9tLCB0aGlzLnJlbGF0aXZlKHJvb3QpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzQW5ub3RhdGlvbigpIHtcbiAgICAgICAgaWYgKCB0aGlzLmlzSW5saW5lKCkgKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICggdHlwZW9mIHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbjtcbiAgICAgICAgfSBlbHNlIGlmICggdGhpcy5wcmV2aW91cygpLmxlbmd0aCApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByZXZpb3VzKCkuc29tZSggaSA9PiBpLmFubm90YXRpb24gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkQW5ub3RhdGlvbigpIHtcbiAgICAgICAgbGV0IGNvbnRlbnQ7XG5cbiAgICAgICAgaWYgKCB0aGlzLmlzSW5saW5lKCkgKSB7XG4gICAgICAgICAgICBjb250ZW50ID0gJ2RhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsJyArXG4gICAgICAgICAgICAgICAgICAgICAgIEJhc2U2NC5lbmNvZGUoIHRoaXMubWFwLnRvU3RyaW5nKCkgKTtcblxuICAgICAgICB9IGVsc2UgaWYgKCB0eXBlb2YgdGhpcy5tYXBPcHRzLmFubm90YXRpb24gPT09ICdzdHJpbmcnICkge1xuICAgICAgICAgICAgY29udGVudCA9IHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250ZW50ID0gdGhpcy5vdXRwdXRGaWxlKCkgKyAnLm1hcCc7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZW9sICAgPSAnXFxuJztcbiAgICAgICAgaWYgKCB0aGlzLmNzcy5pbmRleE9mKCdcXHJcXG4nKSAhPT0gLTEgKSBlb2wgPSAnXFxyXFxuJztcblxuICAgICAgICB0aGlzLmNzcyArPSBlb2wgKyAnLyojIHNvdXJjZU1hcHBpbmdVUkw9JyArIGNvbnRlbnQgKyAnICovJztcbiAgICB9XG5cbiAgICBvdXRwdXRGaWxlKCkge1xuICAgICAgICBpZiAoIHRoaXMub3B0cy50byApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbGF0aXZlKHRoaXMub3B0cy50byk7XG4gICAgICAgIH0gZWxzZSBpZiAoIHRoaXMub3B0cy5mcm9tICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVsYXRpdmUodGhpcy5vcHRzLmZyb20pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICd0by5jc3MnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVNYXAoKSB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVTdHJpbmcoKTtcbiAgICAgICAgaWYgKCB0aGlzLmlzU291cmNlc0NvbnRlbnQoKSApICAgIHRoaXMuc2V0U291cmNlc0NvbnRlbnQoKTtcbiAgICAgICAgaWYgKCB0aGlzLnByZXZpb3VzKCkubGVuZ3RoID4gMCApIHRoaXMuYXBwbHlQcmV2TWFwcygpO1xuICAgICAgICBpZiAoIHRoaXMuaXNBbm5vdGF0aW9uKCkgKSAgICAgICAgdGhpcy5hZGRBbm5vdGF0aW9uKCk7XG5cbiAgICAgICAgaWYgKCB0aGlzLmlzSW5saW5lKCkgKSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXMuY3NzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbdGhpcy5jc3MsIHRoaXMubWFwXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbGF0aXZlKGZpbGUpIHtcbiAgICAgICAgaWYgKCBmaWxlLmluZGV4T2YoJzwnKSA9PT0gMCApIHJldHVybiBmaWxlO1xuICAgICAgICBpZiAoIC9eXFx3KzpcXC9cXC8vLnRlc3QoZmlsZSkgKSByZXR1cm4gZmlsZTtcblxuICAgICAgICBsZXQgZnJvbSA9IHRoaXMub3B0cy50byA/IHBhdGguZGlybmFtZSh0aGlzLm9wdHMudG8pIDogJy4nO1xuXG4gICAgICAgIGlmICggdHlwZW9mIHRoaXMubWFwT3B0cy5hbm5vdGF0aW9uID09PSAnc3RyaW5nJyApIHtcbiAgICAgICAgICAgIGZyb20gPSBwYXRoLmRpcm5hbWUoIHBhdGgucmVzb2x2ZShmcm9tLCB0aGlzLm1hcE9wdHMuYW5ub3RhdGlvbikgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbGUgPSBwYXRoLnJlbGF0aXZlKGZyb20sIGZpbGUpO1xuICAgICAgICBpZiAoIHBhdGguc2VwID09PSAnXFxcXCcgKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZS5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNvdXJjZVBhdGgobm9kZSkge1xuICAgICAgICBpZiAoIHRoaXMubWFwT3B0cy5mcm9tICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwT3B0cy5mcm9tO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVsYXRpdmUobm9kZS5zb3VyY2UuaW5wdXQuZnJvbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZW5lcmF0ZVN0cmluZygpIHtcbiAgICAgICAgdGhpcy5jc3MgPSAnJztcbiAgICAgICAgdGhpcy5tYXAgPSBuZXcgbW96aWxsYS5Tb3VyY2VNYXBHZW5lcmF0b3IoeyBmaWxlOiB0aGlzLm91dHB1dEZpbGUoKSB9KTtcblxuICAgICAgICBsZXQgbGluZSAgID0gMTtcbiAgICAgICAgbGV0IGNvbHVtbiA9IDE7XG5cbiAgICAgICAgbGV0IGxpbmVzLCBsYXN0O1xuICAgICAgICB0aGlzLnN0cmluZ2lmeSh0aGlzLnJvb3QsIChzdHIsIG5vZGUsIHR5cGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3NzICs9IHN0cjtcblxuICAgICAgICAgICAgaWYgKCBub2RlICYmIHR5cGUgIT09ICdlbmQnICkge1xuICAgICAgICAgICAgICAgIGlmICggbm9kZS5zb3VyY2UgJiYgbm9kZS5zb3VyY2Uuc3RhcnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAgICB0aGlzLnNvdXJjZVBhdGgobm9kZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZWQ6IHsgbGluZSwgY29sdW1uOiBjb2x1bW4gLSAxIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbDogIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiAgIG5vZGUuc291cmNlLnN0YXJ0LmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBub2RlLnNvdXJjZS5zdGFydC5jb2x1bW4gLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAgICAnPG5vIHNvdXJjZT4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6ICB7IGxpbmU6IDEsIGNvbHVtbjogMCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7IGxpbmUsIGNvbHVtbjogY29sdW1uIC0gMSB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGluZXMgPSBzdHIubWF0Y2goL1xcbi9nKTtcbiAgICAgICAgICAgIGlmICggbGluZXMgKSB7XG4gICAgICAgICAgICAgICAgbGluZSAgKz0gbGluZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGxhc3QgICA9IHN0ci5sYXN0SW5kZXhPZignXFxuJyk7XG4gICAgICAgICAgICAgICAgY29sdW1uID0gc3RyLmxlbmd0aCAtIGxhc3Q7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbHVtbiArPSBzdHIubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIG5vZGUgJiYgdHlwZSAhPT0gJ3N0YXJ0JyApIHtcbiAgICAgICAgICAgICAgICBpZiAoIG5vZGUuc291cmNlICYmIG5vZGUuc291cmNlLmVuZCApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAuYWRkTWFwcGluZyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6ICAgIHRoaXMuc291cmNlUGF0aChub2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogeyBsaW5lLCBjb2x1bW46IGNvbHVtbiAtIDEgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsOiAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6ICAgbm9kZS5zb3VyY2UuZW5kLmxpbmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uOiBub2RlLnNvdXJjZS5lbmQuY29sdW1uXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLmFkZE1hcHBpbmcoe1xuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiAgICAnPG5vIHNvdXJjZT4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6ICB7IGxpbmU6IDEsIGNvbHVtbjogMCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7IGxpbmUsIGNvbHVtbjogY29sdW1uIC0gMSB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGUoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJBbm5vdGF0aW9uKCk7XG5cbiAgICAgICAgaWYgKCB0aGlzLmlzTWFwKCkgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZU1hcCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICAgICAgdGhpcy5zdHJpbmdpZnkodGhpcy5yb290LCBpID0+IHtcbiAgICAgICAgICAgICAgICByZXN1bHQgKz0gaTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXN1bHRdO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=\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","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _declaration = require('./declaration');\n\nvar _declaration2 = _interopRequireDefault(_declaration);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _comment = require('./comment');\n\nvar _comment2 = _interopRequireDefault(_comment);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction cleanSource(nodes) {\n return nodes.map(function (i) {\n if (i.nodes) i.nodes = cleanSource(i.nodes);\n delete i.source;\n return i;\n });\n}\n\n/**\n * The {@link Root}, {@link AtRule}, and {@link Rule} container nodes\n * inherit some common methods to help work with their children.\n *\n * Note that all containers can store any content. If you write a rule inside\n * a rule, PostCSS will parse it.\n *\n * @extends Node\n * @abstract\n */\n\nvar Container = function (_Node) {\n _inherits(Container, _Node);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, _Node.apply(this, arguments));\n }\n\n Container.prototype.push = function push(child) {\n child.parent = this;\n this.nodes.push(child);\n return this;\n };\n\n /**\n * Iterates through the container’s immediate children,\n * calling `callback` for each child.\n *\n * Returning `false` in the callback will break iteration.\n *\n * This method only iterates through the container’s immediate children.\n * If you need to recursively iterate through all the container’s descendant\n * nodes, use {@link Container#walk}.\n *\n * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe\n * if you are mutating the array of child nodes during iteration.\n * PostCSS will adjust the current index to match the mutations.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const root = postcss.parse('a { color: black; z-index: 1 }');\n * const rule = root.first;\n *\n * for ( let decl of rule.nodes ) {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Cycle will be infinite, because cloneBefore moves the current node\n * // to the next index\n * }\n *\n * rule.each(decl => {\n * decl.cloneBefore({ prop: '-webkit-' + decl.prop });\n * // Will be executed only for color and z-index\n * });\n */\n\n\n Container.prototype.each = function each(callback) {\n if (!this.lastEach) this.lastEach = 0;\n if (!this.indexes) this.indexes = {};\n\n this.lastEach += 1;\n var id = this.lastEach;\n this.indexes[id] = 0;\n\n if (!this.nodes) return undefined;\n\n var index = void 0,\n result = void 0;\n while (this.indexes[id] < this.nodes.length) {\n index = this.indexes[id];\n result = callback(this.nodes[index], index);\n if (result === false) break;\n\n this.indexes[id] += 1;\n }\n\n delete this.indexes[id];\n\n return result;\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each node.\n *\n * Like container.each(), this method is safe to use\n * if you are mutating arrays during iteration.\n *\n * If you only need to iterate through the container’s immediate children,\n * use {@link Container#each}.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walk(node => {\n * // Traverses all descendant nodes.\n * });\n */\n\n\n Container.prototype.walk = function walk(callback) {\n return this.each(function (child, i) {\n var result = callback(child, i);\n if (result !== false && child.walk) {\n result = child.walk(callback);\n }\n return result;\n });\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each declaration node.\n *\n * If you pass a filter, iteration will only happen over declarations\n * with matching properties.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [prop] - string or regular expression\n * to filter declarations by property name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkDecls(decl => {\n * checkPropertySupport(decl.prop);\n * });\n *\n * root.walkDecls('border-radius', decl => {\n * decl.remove();\n * });\n *\n * root.walkDecls(/^background/, decl => {\n * decl.value = takeFirstColorFromGradient(decl.value);\n * });\n */\n\n\n Container.prototype.walkDecls = function walkDecls(prop, callback) {\n if (!callback) {\n callback = prop;\n return this.walk(function (child, i) {\n if (child.type === 'decl') {\n return callback(child, i);\n }\n });\n } else if (prop instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each rule node.\n *\n * If you pass a filter, iteration will only happen over rules\n * with matching selectors.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [selector] - string or regular expression\n * to filter rules by selector\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * const selectors = [];\n * root.walkRules(rule => {\n * selectors.push(rule.selector);\n * });\n * console.log(`Your CSS uses ${selectors.length} selectors`);\n */\n\n\n Container.prototype.walkRules = function walkRules(selector, callback) {\n if (!callback) {\n callback = selector;\n\n return this.walk(function (child, i) {\n if (child.type === 'rule') {\n return callback(child, i);\n }\n });\n } else if (selector instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each at-rule node.\n *\n * If you pass a filter, iteration will only happen over at-rules\n * that have matching names.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {string|RegExp} [name] - string or regular expression\n * to filter at-rules by name\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkAtRules(rule => {\n * if ( isOld(rule.name) ) rule.remove();\n * });\n *\n * let first = false;\n * root.walkAtRules('charset', rule => {\n * if ( !first ) {\n * first = true;\n * } else {\n * rule.remove();\n * }\n * });\n */\n\n\n Container.prototype.walkAtRules = function walkAtRules(name, callback) {\n if (!callback) {\n callback = name;\n return this.walk(function (child, i) {\n if (child.type === 'atrule') {\n return callback(child, i);\n }\n });\n } else if (name instanceof RegExp) {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i);\n }\n });\n } else {\n return this.walk(function (child, i) {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i);\n }\n });\n }\n };\n\n /**\n * Traverses the container’s descendant nodes, calling callback\n * for each comment node.\n *\n * Like {@link Container#each}, this method is safe\n * to use if you are mutating arrays during iteration.\n *\n * @param {childIterator} callback - iterator receives each node and index\n *\n * @return {false|undefined} returns `false` if iteration was broke\n *\n * @example\n * root.walkComments(comment => {\n * comment.remove();\n * });\n */\n\n\n Container.prototype.walkComments = function walkComments(callback) {\n return this.walk(function (child, i) {\n if (child.type === 'comment') {\n return callback(child, i);\n }\n });\n };\n\n /**\n * Inserts new nodes to the end of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.append(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.append = function append() {\n for (var _len = arguments.length, children = Array(_len), _key = 0; _key < _len; _key++) {\n children[_key] = arguments[_key];\n }\n\n for (var _iterator = children, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var child = _ref;\n\n var nodes = this.normalize(child, this.last);\n for (var _iterator2 = nodes, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {\n var _ref2;\n\n if (_isArray2) {\n if (_i2 >= _iterator2.length) break;\n _ref2 = _iterator2[_i2++];\n } else {\n _i2 = _iterator2.next();\n if (_i2.done) break;\n _ref2 = _i2.value;\n }\n\n var node = _ref2;\n this.nodes.push(node);\n }\n }\n return this;\n };\n\n /**\n * Inserts new nodes to the start of the container.\n *\n * @param {...(Node|object|string|Node[])} children - new nodes\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * const decl1 = postcss.decl({ prop: 'color', value: 'black' });\n * const decl2 = postcss.decl({ prop: 'background-color', value: 'white' });\n * rule.prepend(decl1, decl2);\n *\n * root.append({ name: 'charset', params: '\"UTF-8\"' }); // at-rule\n * root.append({ selector: 'a' }); // rule\n * rule.append({ prop: 'color', value: 'black' }); // declaration\n * rule.append({ text: 'Comment' }) // comment\n *\n * root.append('a {}');\n * root.first.append('color: black; z-index: 1');\n */\n\n\n Container.prototype.prepend = function prepend() {\n for (var _len2 = arguments.length, children = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n children[_key2] = arguments[_key2];\n }\n\n children = children.reverse();\n for (var _iterator3 = children, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {\n var _ref3;\n\n if (_isArray3) {\n if (_i3 >= _iterator3.length) break;\n _ref3 = _iterator3[_i3++];\n } else {\n _i3 = _iterator3.next();\n if (_i3.done) break;\n _ref3 = _i3.value;\n }\n\n var child = _ref3;\n\n var nodes = this.normalize(child, this.first, 'prepend').reverse();\n for (var _iterator4 = nodes, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {\n var _ref4;\n\n if (_isArray4) {\n if (_i4 >= _iterator4.length) break;\n _ref4 = _iterator4[_i4++];\n } else {\n _i4 = _iterator4.next();\n if (_i4.done) break;\n _ref4 = _i4.value;\n }\n\n var node = _ref4;\n this.nodes.unshift(node);\n }for (var id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length;\n }\n }\n return this;\n };\n\n Container.prototype.cleanRaws = function cleanRaws(keepBetween) {\n _Node.prototype.cleanRaws.call(this, keepBetween);\n if (this.nodes) {\n for (var _iterator5 = this.nodes, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) {\n var _ref5;\n\n if (_isArray5) {\n if (_i5 >= _iterator5.length) break;\n _ref5 = _iterator5[_i5++];\n } else {\n _i5 = _iterator5.next();\n if (_i5.done) break;\n _ref5 = _i5.value;\n }\n\n var node = _ref5;\n node.cleanRaws(keepBetween);\n }\n }\n };\n\n /**\n * Insert new node before old node within the container.\n *\n * @param {Node|number} exist - child or child’s index.\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop }));\n */\n\n\n Container.prototype.insertBefore = function insertBefore(exist, add) {\n exist = this.index(exist);\n\n var type = exist === 0 ? 'prepend' : false;\n var nodes = this.normalize(add, this.nodes[exist], type).reverse();\n for (var _iterator6 = nodes, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) {\n var _ref6;\n\n if (_isArray6) {\n if (_i6 >= _iterator6.length) break;\n _ref6 = _iterator6[_i6++];\n } else {\n _i6 = _iterator6.next();\n if (_i6.done) break;\n _ref6 = _i6.value;\n }\n\n var node = _ref6;\n this.nodes.splice(exist, 0, node);\n }var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist <= index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n /**\n * Insert new node after old node within the container.\n *\n * @param {Node|number} exist - child or child’s index\n * @param {Node|object|string|Node[]} add - new node\n *\n * @return {Node} this node for methods chain\n */\n\n\n Container.prototype.insertAfter = function insertAfter(exist, add) {\n exist = this.index(exist);\n\n var nodes = this.normalize(add, this.nodes[exist]).reverse();\n for (var _iterator7 = nodes, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) {\n var _ref7;\n\n if (_isArray7) {\n if (_i7 >= _iterator7.length) break;\n _ref7 = _iterator7[_i7++];\n } else {\n _i7 = _iterator7.next();\n if (_i7.done) break;\n _ref7 = _i7.value;\n }\n\n var node = _ref7;\n this.nodes.splice(exist + 1, 0, node);\n }var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (exist < index) {\n this.indexes[id] = index + nodes.length;\n }\n }\n\n return this;\n };\n\n Container.prototype.remove = function remove(child) {\n if (typeof child !== 'undefined') {\n (0, _warnOnce2.default)('Container#remove is deprecated. ' + 'Use Container#removeChild');\n this.removeChild(child);\n } else {\n _Node.prototype.remove.call(this);\n }\n return this;\n };\n\n /**\n * Removes node from the container and cleans the parent properties\n * from the node and its children.\n *\n * @param {Node|number} child - child or child’s index\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.nodes.length //=> 5\n * rule.removeChild(decl);\n * rule.nodes.length //=> 4\n * decl.parent //=> undefined\n */\n\n\n Container.prototype.removeChild = function removeChild(child) {\n child = this.index(child);\n this.nodes[child].parent = undefined;\n this.nodes.splice(child, 1);\n\n var index = void 0;\n for (var id in this.indexes) {\n index = this.indexes[id];\n if (index >= child) {\n this.indexes[id] = index - 1;\n }\n }\n\n return this;\n };\n\n /**\n * Removes all children from the container\n * and cleans their parent properties.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * rule.removeAll();\n * rule.nodes.length //=> 0\n */\n\n\n Container.prototype.removeAll = function removeAll() {\n for (var _iterator8 = this.nodes, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) {\n var _ref8;\n\n if (_isArray8) {\n if (_i8 >= _iterator8.length) break;\n _ref8 = _iterator8[_i8++];\n } else {\n _i8 = _iterator8.next();\n if (_i8.done) break;\n _ref8 = _i8.value;\n }\n\n var node = _ref8;\n node.parent = undefined;\n }this.nodes = [];\n return this;\n };\n\n /**\n * Passes all declaration values within the container that match pattern\n * through callback, replacing those values with the returned result\n * of callback.\n *\n * This method is useful if you are using a custom unit or function\n * and need to iterate through all values.\n *\n * @param {string|RegExp} pattern - replace pattern\n * @param {object} opts - options to speed up the search\n * @param {string|string[]} opts.props - an array of property names\n * @param {string} opts.fast - string that’s used\n * to narrow down values and speed up\n the regexp search\n * @param {function|string} callback - string to replace pattern\n * or callback that returns a new\n * value.\n * The callback will receive\n * the same arguments as those\n * passed to a function parameter\n * of `String#replace`.\n *\n * @return {Node} this node for methods chain\n *\n * @example\n * root.replaceValues(/\\d+rem/, { fast: 'rem' }, string => {\n * return 15 * parseInt(string) + 'px';\n * });\n */\n\n\n Container.prototype.replaceValues = function replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts;\n opts = {};\n }\n\n this.walkDecls(function (decl) {\n if (opts.props && opts.props.indexOf(decl.prop) === -1) return;\n if (opts.fast && decl.value.indexOf(opts.fast) === -1) return;\n\n decl.value = decl.value.replace(pattern, callback);\n });\n\n return this;\n };\n\n /**\n * Returns `true` if callback returns `true`\n * for all of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is every child pass condition\n *\n * @example\n * const noPrefixes = rule.every(i => i.prop[0] !== '-');\n */\n\n\n Container.prototype.every = function every(condition) {\n return this.nodes.every(condition);\n };\n\n /**\n * Returns `true` if callback returns `true` for (at least) one\n * of the container’s children.\n *\n * @param {childCondition} condition - iterator returns true or false.\n *\n * @return {boolean} is some child pass condition\n *\n * @example\n * const hasPrefix = rule.some(i => i.prop[0] === '-');\n */\n\n\n Container.prototype.some = function some(condition) {\n return this.nodes.some(condition);\n };\n\n /**\n * Returns a `child`’s index within the {@link Container#nodes} array.\n *\n * @param {Node} child - child of the current container.\n *\n * @return {number} child index\n *\n * @example\n * rule.index( rule.nodes[2] ) //=> 2\n */\n\n\n Container.prototype.index = function index(child) {\n if (typeof child === 'number') {\n return child;\n } else {\n return this.nodes.indexOf(child);\n }\n };\n\n /**\n * The container’s first child.\n *\n * @type {Node}\n *\n * @example\n * rule.first == rules.nodes[0];\n */\n\n\n Container.prototype.normalize = function normalize(nodes, sample) {\n var _this2 = this;\n\n if (typeof nodes === 'string') {\n var parse = require('./parse');\n nodes = cleanSource(parse(nodes).nodes);\n } else if (!Array.isArray(nodes)) {\n if (nodes.type === 'root') {\n nodes = nodes.nodes;\n } else if (nodes.type) {\n nodes = [nodes];\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation');\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value);\n }\n nodes = [new _declaration2.default(nodes)];\n } else if (nodes.selector) {\n var Rule = require('./rule');\n nodes = [new Rule(nodes)];\n } else if (nodes.name) {\n var AtRule = require('./at-rule');\n nodes = [new AtRule(nodes)];\n } else if (nodes.text) {\n nodes = [new _comment2.default(nodes)];\n } else {\n throw new Error('Unknown node type in node creation');\n }\n }\n\n var processed = nodes.map(function (i) {\n if (typeof i.raws === 'undefined') i = _this2.rebuild(i);\n\n if (i.parent) i = i.clone();\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/[^\\s]/g, '');\n }\n }\n i.parent = _this2;\n return i;\n });\n\n return processed;\n };\n\n Container.prototype.rebuild = function rebuild(node, parent) {\n var _this3 = this;\n\n var fix = void 0;\n if (node.type === 'root') {\n var Root = require('./root');\n fix = new Root();\n } else if (node.type === 'atrule') {\n var AtRule = require('./at-rule');\n fix = new AtRule();\n } else if (node.type === 'rule') {\n var Rule = require('./rule');\n fix = new Rule();\n } else if (node.type === 'decl') {\n fix = new _declaration2.default();\n } else if (node.type === 'comment') {\n fix = new _comment2.default();\n }\n\n for (var i in node) {\n if (i === 'nodes') {\n fix.nodes = node.nodes.map(function (j) {\n return _this3.rebuild(j, fix);\n });\n } else if (i === 'parent' && parent) {\n fix.parent = parent;\n } else if (node.hasOwnProperty(i)) {\n fix[i] = node[i];\n }\n }\n\n return fix;\n };\n\n Container.prototype.eachInside = function eachInside(callback) {\n (0, _warnOnce2.default)('Container#eachInside is deprecated. ' + 'Use Container#walk instead.');\n return this.walk(callback);\n };\n\n Container.prototype.eachDecl = function eachDecl(prop, callback) {\n (0, _warnOnce2.default)('Container#eachDecl is deprecated. ' + 'Use Container#walkDecls instead.');\n return this.walkDecls(prop, callback);\n };\n\n Container.prototype.eachRule = function eachRule(selector, callback) {\n (0, _warnOnce2.default)('Container#eachRule is deprecated. ' + 'Use Container#walkRules instead.');\n return this.walkRules(selector, callback);\n };\n\n Container.prototype.eachAtRule = function eachAtRule(name, callback) {\n (0, _warnOnce2.default)('Container#eachAtRule is deprecated. ' + 'Use Container#walkAtRules instead.');\n return this.walkAtRules(name, callback);\n };\n\n Container.prototype.eachComment = function eachComment(callback) {\n (0, _warnOnce2.default)('Container#eachComment is deprecated. ' + 'Use Container#walkComments instead.');\n return this.walkComments(callback);\n };\n\n _createClass(Container, [{\n key: 'first',\n get: function get() {\n if (!this.nodes) return undefined;\n return this.nodes[0];\n }\n\n /**\n * The container’s last child.\n *\n * @type {Node}\n *\n * @example\n * rule.last == rule.nodes[rule.nodes.length - 1];\n */\n\n }, {\n key: 'last',\n get: function get() {\n if (!this.nodes) return undefined;\n return this.nodes[this.nodes.length - 1];\n }\n }, {\n key: 'semicolon',\n get: function get() {\n (0, _warnOnce2.default)('Node#semicolon is deprecated. Use Node#raws.semicolon');\n return this.raws.semicolon;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#semicolon is deprecated. Use Node#raws.semicolon');\n this.raws.semicolon = val;\n }\n }, {\n key: 'after',\n get: function get() {\n (0, _warnOnce2.default)('Node#after is deprecated. Use Node#raws.after');\n return this.raws.after;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#after is deprecated. Use Node#raws.after');\n this.raws.after = val;\n }\n\n /**\n * @memberof Container#\n * @member {Node[]} nodes - an array containing the container’s children\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * root.nodes.length //=> 1\n * root.nodes[0].selector //=> 'a'\n * root.nodes[0].nodes[0].prop //=> 'color'\n */\n\n }]);\n\n return Container;\n}(_node2.default);\n\nexports.default = Container;\n\n/**\n * @callback childCondition\n * @param {Node} node - container child\n * @param {number} index - child index\n * @param {Node[]} nodes - all container children\n * @return {boolean}\n */\n\n/**\n * @callback childIterator\n * @param {Node} node - container child\n * @param {number} index - child index\n * @return {false|undefined} returning `false` will break iteration\n */\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRhaW5lci5lczYiXSwibmFtZXMiOlsiY2xlYW5Tb3VyY2UiLCJub2RlcyIsIm1hcCIsImkiLCJzb3VyY2UiLCJDb250YWluZXIiLCJwdXNoIiwiY2hpbGQiLCJwYXJlbnQiLCJlYWNoIiwiY2FsbGJhY2siLCJsYXN0RWFjaCIsImluZGV4ZXMiLCJpZCIsInVuZGVmaW5lZCIsImluZGV4IiwicmVzdWx0IiwibGVuZ3RoIiwid2FsayIsIndhbGtEZWNscyIsInByb3AiLCJ0eXBlIiwiUmVnRXhwIiwidGVzdCIsIndhbGtSdWxlcyIsInNlbGVjdG9yIiwid2Fsa0F0UnVsZXMiLCJuYW1lIiwid2Fsa0NvbW1lbnRzIiwiYXBwZW5kIiwiY2hpbGRyZW4iLCJub3JtYWxpemUiLCJsYXN0Iiwibm9kZSIsInByZXBlbmQiLCJyZXZlcnNlIiwiZmlyc3QiLCJ1bnNoaWZ0IiwiY2xlYW5SYXdzIiwia2VlcEJldHdlZW4iLCJpbnNlcnRCZWZvcmUiLCJleGlzdCIsImFkZCIsInNwbGljZSIsImluc2VydEFmdGVyIiwicmVtb3ZlIiwicmVtb3ZlQ2hpbGQiLCJyZW1vdmVBbGwiLCJyZXBsYWNlVmFsdWVzIiwicGF0dGVybiIsIm9wdHMiLCJwcm9wcyIsImluZGV4T2YiLCJkZWNsIiwiZmFzdCIsInZhbHVlIiwicmVwbGFjZSIsImV2ZXJ5IiwiY29uZGl0aW9uIiwic29tZSIsInNhbXBsZSIsInBhcnNlIiwicmVxdWlyZSIsIkFycmF5IiwiaXNBcnJheSIsIkVycm9yIiwiU3RyaW5nIiwiUnVsZSIsIkF0UnVsZSIsInRleHQiLCJwcm9jZXNzZWQiLCJyYXdzIiwicmVidWlsZCIsImNsb25lIiwiYmVmb3JlIiwiZml4IiwiUm9vdCIsImoiLCJoYXNPd25Qcm9wZXJ0eSIsImVhY2hJbnNpZGUiLCJlYWNoRGVjbCIsImVhY2hSdWxlIiwiZWFjaEF0UnVsZSIsImVhY2hDb21tZW50Iiwic2VtaWNvbG9uIiwidmFsIiwiYWZ0ZXIiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFB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UUFBbEIsQ0FBUDtBQUNILEs7Ozs7NEJBekhXO0FBQ1IsZ0JBQUssQ0FBQyxLQUFLVCxLQUFYLEVBQW1CLE9BQU9hLFNBQVA7QUFDbkIsbUJBQU8sS0FBS2IsS0FBTCxDQUFXLENBQVgsQ0FBUDtBQUNIOztBQUVEOzs7Ozs7Ozs7Ozs0QkFRVztBQUNQLGdCQUFLLENBQUMsS0FBS0EsS0FBWCxFQUFtQixPQUFPYSxTQUFQO0FBQ25CLG1CQUFPLEtBQUtiLEtBQUwsQ0FBVyxLQUFLQSxLQUFMLENBQVdnQixNQUFYLEdBQW9CLENBQS9CLENBQVA7QUFDSDs7OzRCQTJHZTtBQUNaLG9DQUFTLHVEQUFUO0FBQ0EsbUJBQU8sS0FBS3NELElBQUwsQ0FBVWEsU0FBakI7QUFDSCxTOzBCQUVhQyxHLEVBQUs7QUFDZixvQ0FBUyx1REFBVDtBQUNBLGlCQUFLZCxJQUFMLENBQVVhLFNBQVYsR0FBc0JDLEdBQXRCO0FBQ0g7Ozs0QkFFVztBQUNSLG9DQUFTLCtDQUFUO0FBQ0EsbUJBQU8sS0FBS2QsSUFBTCxDQUFVZSxLQUFqQjtBQUNILFM7MEJBRVNELEcsRUFBSztBQUNYLG9DQUFTLCtDQUFUO0FBQ0EsaUJBQUtkLElBQUwsQ0FBVWUsS0FBVixHQUFrQkQsR0FBbEI7QUFDSDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztrQkFhV2hGLFM7O0FBR2Y7Ozs7Ozs7O0FBUUEiLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gJy4vZGVjbGFyYXRpb24nO1xuaW1wb3J0IHdhcm5PbmNlICAgIGZyb20gJy4vd2Fybi1vbmNlJztcbmltcG9ydCBDb21tZW50ICAgICBmcm9tICcuL2NvbW1lbnQnO1xuaW1wb3J0IE5vZGUgICAgICAgIGZyb20gJy4vbm9kZSc7XG5cbmZ1bmN0aW9uIGNsZWFuU291cmNlKG5vZGVzKSB7XG4gICAgcmV0dXJuIG5vZGVzLm1hcCggaSA9PiB7XG4gICAgICAgIGlmICggaS5ub2RlcyApIGkubm9kZXMgPSBjbGVhblNvdXJjZShpLm5vZGVzKTtcbiAgICAgICAgZGVsZXRlIGkuc291cmNlO1xuICAgICAgICByZXR1cm4gaTtcbiAgICB9KTtcbn1cblxuLyoqXG4gKiBUaGUge0BsaW5rIFJvb3R9LCB7QGxpbmsgQXRSdWxlfSwgYW5kIHtAbGluayBSdWxlfSBjb250YWluZXIgbm9kZXNcbiAqIGluaGVyaXQgc29tZSBjb21tb24gbWV0aG9kcyB0byBoZWxwIHdvcmsgd2l0aCB0aGVpciBjaGlsZHJlbi5cbiAqXG4gKiBOb3RlIHRoYXQgYWxsIGNvbnRhaW5lcnMgY2FuIHN0b3JlIGFueSBjb250ZW50LiBJZiB5b3Ugd3JpdGUgYSBydWxlIGluc2lkZVxuICogYSBydWxlLCBQb3N0Q1NTIHdpbGwgcGFyc2UgaXQuXG4gKlxuICogQGV4dGVuZHMgTm9kZVxuICogQGFic3RyYWN0XG4gKi9cbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIE5vZGUge1xuXG4gICAgcHVzaChjaGlsZCkge1xuICAgICAgICBjaGlsZC5wYXJlbnQgPSB0aGlzO1xuICAgICAgICB0aGlzLm5vZGVzLnB1c2goY2hpbGQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBjb250YWluZXLigJlzIGltbWVkaWF0ZSBjaGlsZHJlbixcbiAgICAgKiBjYWxsaW5nIGBjYWxsYmFja2AgZm9yIGVhY2ggY2hpbGQuXG4gICAgICpcbiAgICAgKiBSZXR1cm5pbmcgYGZhbHNlYCBpbiB0aGUgY2FsbGJhY2sgd2lsbCBicmVhayBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIG1ldGhvZCBvbmx5IGl0ZXJhdGVzIHRocm91Z2ggdGhlIGNvbnRhaW5lcuKAmXMgaW1tZWRpYXRlIGNoaWxkcmVuLlxuICAgICAqIElmIHlvdSBuZWVkIHRvIHJlY3Vyc2l2ZWx5IGl0ZXJhdGUgdGhyb3VnaCBhbGwgdGhlIGNvbnRhaW5lcuKAmXMgZGVzY2VuZGFudFxuICAgICAqIG5vZGVzLCB1c2Uge0BsaW5rIENvbnRhaW5lciN3YWxrfS5cbiAgICAgKlxuICAgICAqIFVubGlrZSB0aGUgZm9yIGB7fWAtY3ljbGUgb3IgYEFycmF5I2ZvckVhY2hgIHRoaXMgaXRlcmF0b3IgaXMgc2FmZVxuICAgICAqIGlmIHlvdSBhcmUgbXV0YXRpbmcgdGhlIGFycmF5IG9mIGNoaWxkIG5vZGVzIGR1cmluZyBpdGVyYXRpb24uXG4gICAgICogUG9zdENTUyB3aWxsIGFkanVzdCB0aGUgY3VycmVudCBpbmRleCB0byBtYXRjaCB0aGUgbXV0YXRpb25zLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtjaGlsZEl0ZXJhdG9yfSBjYWxsYmFjayAtIGl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXhcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gcmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2VcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EgeyBjb2xvcjogYmxhY2s7IHotaW5kZXg6IDEgfScpO1xuICAgICAqIGNvbnN0IHJ1bGUgPSByb290LmZpcnN0O1xuICAgICAqXG4gICAgICogZm9yICggbGV0IGRlY2wgb2YgcnVsZS5ub2RlcyApIHtcbiAgICAgKiAgICAgZGVjbC5jbG9uZUJlZm9yZSh7IHByb3A6ICctd2Via2l0LScgKyBkZWNsLnByb3AgfSk7XG4gICAgICogICAgIC8vIEN5Y2xlIHdpbGwgYmUgaW5maW5pdGUsIGJlY2F1c2UgY2xvbmVCZWZvcmUgbW92ZXMgdGhlIGN1cnJlbnQgbm9kZVxuICAgICAqICAgICAvLyB0byB0aGUgbmV4dCBpbmRleFxuICAgICAqIH1cbiAgICAgKlxuICAgICAqIHJ1bGUuZWFjaChkZWNsID0+IHtcbiAgICAgKiAgICAgZGVjbC5jbG9uZUJlZm9yZSh7IHByb3A6ICctd2Via2l0LScgKyBkZWNsLnByb3AgfSk7XG4gICAgICogICAgIC8vIFdpbGwgYmUgZXhlY3V0ZWQgb25seSBmb3IgY29sb3IgYW5kIHotaW5kZXhcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICBlYWNoKGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICggIXRoaXMubGFzdEVhY2ggKSB0aGlzLmxhc3RFYWNoID0gMDtcbiAgICAgICAgaWYgKCAhdGhpcy5pbmRleGVzICkgdGhpcy5pbmRleGVzID0geyB9O1xuXG4gICAgICAgIHRoaXMubGFzdEVhY2ggKz0gMTtcbiAgICAgICAgbGV0IGlkID0gdGhpcy5sYXN0RWFjaDtcbiAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IDA7XG5cbiAgICAgICAgaWYgKCAhdGhpcy5ub2RlcyApIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgICAgbGV0IGluZGV4LCByZXN1bHQ7XG4gICAgICAgIHdoaWxlICggdGhpcy5pbmRleGVzW2lkXSA8IHRoaXMubm9kZXMubGVuZ3RoICkge1xuICAgICAgICAgICAgaW5kZXggID0gdGhpcy5pbmRleGVzW2lkXTtcbiAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKHRoaXMubm9kZXNbaW5kZXhdLCBpbmRleCk7XG4gICAgICAgICAgICBpZiAoIHJlc3VsdCA9PT0gZmFsc2UgKSBicmVhaztcblxuICAgICAgICAgICAgdGhpcy5pbmRleGVzW2lkXSArPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgZGVsZXRlIHRoaXMuaW5kZXhlc1tpZF07XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmF2ZXJzZXMgdGhlIGNvbnRhaW5lcuKAmXMgZGVzY2VuZGFudCBub2RlcywgY2FsbGluZyBjYWxsYmFja1xuICAgICAqIGZvciBlYWNoIG5vZGUuXG4gICAgICpcbiAgICAgKiBMaWtlIGNvbnRhaW5lci5lYWNoKCksIHRoaXMgbWV0aG9kIGlzIHNhZmUgdG8gdXNlXG4gICAgICogaWYgeW91IGFyZSBtdXRhdGluZyBhcnJheXMgZHVyaW5nIGl0ZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIElmIHlvdSBvbmx5IG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIHRoZSBjb250YWluZXLigJlzIGltbWVkaWF0ZSBjaGlsZHJlbixcbiAgICAgKiB1c2Uge0BsaW5rIENvbnRhaW5lciNlYWNofS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Y2hpbGRJdGVyYXRvcn0gY2FsbGJhY2sgLSBpdGVyYXRvciByZWNlaXZlcyBlYWNoIG5vZGUgYW5kIGluZGV4XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtmYWxzZXx1bmRlZmluZWR9IHJldHVybnMgYGZhbHNlYCBpZiBpdGVyYXRpb24gd2FzIGJyb2tlXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJvb3Qud2Fsayhub2RlID0+IHtcbiAgICAgKiAgIC8vIFRyYXZlcnNlcyBhbGwgZGVzY2VuZGFudCBub2Rlcy5cbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB3YWxrKGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVhY2goIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgIGlmICggcmVzdWx0ICE9PSBmYWxzZSAmJiBjaGlsZC53YWxrICkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkLndhbGsoY2FsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhdmVyc2VzIHRoZSBjb250YWluZXLigJlzIGRlc2NlbmRhbnQgbm9kZXMsIGNhbGxpbmcgY2FsbGJhY2tcbiAgICAgKiBmb3IgZWFjaCBkZWNsYXJhdGlvbiBub2RlLlxuICAgICAqXG4gICAgICogSWYgeW91IHBhc3MgYSBmaWx0ZXIsIGl0ZXJhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIG92ZXIgZGVjbGFyYXRpb25zXG4gICAgICogd2l0aCBtYXRjaGluZyBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogTGlrZSB7QGxpbmsgQ29udGFpbmVyI2VhY2h9LCB0aGlzIG1ldGhvZCBpcyBzYWZlXG4gICAgICogdG8gdXNlIGlmIHlvdSBhcmUgbXV0YXRpbmcgYXJyYXlzIGR1cmluZyBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ3xSZWdFeHB9IFtwcm9wXSAgIC0gc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBmaWx0ZXIgZGVjbGFyYXRpb25zIGJ5IHByb3BlcnR5IG5hbWVcbiAgICAgKiBAcGFyYW0ge2NoaWxkSXRlcmF0b3J9IGNhbGxiYWNrIC0gaXRlcmF0b3IgcmVjZWl2ZXMgZWFjaCBub2RlIGFuZCBpbmRleFxuICAgICAqXG4gICAgICogQHJldHVybiB7ZmFsc2V8dW5kZWZpbmVkfSByZXR1cm5zIGBmYWxzZWAgaWYgaXRlcmF0aW9uIHdhcyBicm9rZVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiByb290LndhbGtEZWNscyhkZWNsID0+IHtcbiAgICAgKiAgIGNoZWNrUHJvcGVydHlTdXBwb3J0KGRlY2wucHJvcCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiByb290LndhbGtEZWNscygnYm9yZGVyLXJhZGl1cycsIGRlY2wgPT4ge1xuICAgICAqICAgZGVjbC5yZW1vdmUoKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIHJvb3Qud2Fsa0RlY2xzKC9eYmFja2dyb3VuZC8sIGRlY2wgPT4ge1xuICAgICAqICAgZGVjbC52YWx1ZSA9IHRha2VGaXJzdENvbG9yRnJvbUdyYWRpZW50KGRlY2wudmFsdWUpO1xuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHdhbGtEZWNscyhwcm9wLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoICFjYWxsYmFjayApIHtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gcHJvcDtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndhbGsoIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggY2hpbGQudHlwZSA9PT0gJ2RlY2wnICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soY2hpbGQsIGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKCBwcm9wIGluc3RhbmNlb2YgUmVnRXhwICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FsayggKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCBjaGlsZC50eXBlID09PSAnZGVjbCcgJiYgcHJvcC50ZXN0KGNoaWxkLnByb3ApICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soY2hpbGQsIGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2FsayggKGNoaWxkLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCBjaGlsZC50eXBlID09PSAnZGVjbCcgJiYgY2hpbGQucHJvcCA9PT0gcHJvcCApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAgICogZm9yIGVhY2ggcnVsZSBub2RlLlxuICAgICAqXG4gICAgICogSWYgeW91IHBhc3MgYSBmaWx0ZXIsIGl0ZXJhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIG92ZXIgcnVsZXNcbiAgICAgKiB3aXRoIG1hdGNoaW5nIHNlbGVjdG9ycy5cbiAgICAgKlxuICAgICAqIExpa2Uge0BsaW5rIENvbnRhaW5lciNlYWNofSwgdGhpcyBtZXRob2QgaXMgc2FmZVxuICAgICAqIHRvIHVzZSBpZiB5b3UgYXJlIG11dGF0aW5nIGFycmF5cyBkdXJpbmcgaXRlcmF0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBbc2VsZWN0b3JdIC0gc3RyaW5nIG9yIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGZpbHRlciBydWxlcyBieSBzZWxlY3RvclxuICAgICAqIEBwYXJhbSB7Y2hpbGRJdGVyYXRvcn0gY2FsbGJhY2sgICAtIGl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXhcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gcmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2VcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgc2VsZWN0b3JzID0gW107XG4gICAgICogcm9vdC53YWxrUnVsZXMocnVsZSA9PiB7XG4gICAgICogICBzZWxlY3RvcnMucHVzaChydWxlLnNlbGVjdG9yKTtcbiAgICAgKiB9KTtcbiAgICAgKiBjb25zb2xlLmxvZyhgWW91ciBDU1MgdXNlcyAke3NlbGVjdG9ycy5sZW5ndGh9IHNlbGVjdG9yc2ApO1xuICAgICAqL1xuICAgIHdhbGtSdWxlcyhzZWxlY3RvciwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCAhY2FsbGJhY2sgKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IHNlbGVjdG9yO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy53YWxrKCAoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIGNoaWxkLnR5cGUgPT09ICdydWxlJyApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICggc2VsZWN0b3IgaW5zdGFuY2VvZiBSZWdFeHAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53YWxrKCAoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIGNoaWxkLnR5cGUgPT09ICdydWxlJyAmJiBzZWxlY3Rvci50ZXN0KGNoaWxkLnNlbGVjdG9yKSApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndhbGsoIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggY2hpbGQudHlwZSA9PT0gJ3J1bGUnICYmIGNoaWxkLnNlbGVjdG9yID09PSBzZWxlY3RvciApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAgICogZm9yIGVhY2ggYXQtcnVsZSBub2RlLlxuICAgICAqXG4gICAgICogSWYgeW91IHBhc3MgYSBmaWx0ZXIsIGl0ZXJhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIG92ZXIgYXQtcnVsZXNcbiAgICAgKiB0aGF0IGhhdmUgbWF0Y2hpbmcgbmFtZXMuXG4gICAgICpcbiAgICAgKiBMaWtlIHtAbGluayBDb250YWluZXIjZWFjaH0sIHRoaXMgbWV0aG9kIGlzIHNhZmVcbiAgICAgKiB0byB1c2UgaWYgeW91IGFyZSBtdXRhdGluZyBhcnJheXMgZHVyaW5nIGl0ZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfFJlZ0V4cH0gW25hbWVdICAgLSBzdHJpbmcgb3IgcmVndWxhciBleHByZXNzaW9uXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGZpbHRlciBhdC1ydWxlcyBieSBuYW1lXG4gICAgICogQHBhcmFtIHtjaGlsZEl0ZXJhdG9yfSBjYWxsYmFjayAtIGl0ZXJhdG9yIHJlY2VpdmVzIGVhY2ggbm9kZSBhbmQgaW5kZXhcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gcmV0dXJucyBgZmFsc2VgIGlmIGl0ZXJhdGlvbiB3YXMgYnJva2VcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcm9vdC53YWxrQXRSdWxlcyhydWxlID0+IHtcbiAgICAgKiAgIGlmICggaXNPbGQocnVsZS5uYW1lKSApIHJ1bGUucmVtb3ZlKCk7XG4gICAgICogfSk7XG4gICAgICpcbiAgICAgKiBsZXQgZmlyc3QgPSBmYWxzZTtcbiAgICAgKiByb290LndhbGtBdFJ1bGVzKCdjaGFyc2V0JywgcnVsZSA9PiB7XG4gICAgICogICBpZiAoICFmaXJzdCApIHtcbiAgICAgKiAgICAgZmlyc3QgPSB0cnVlO1xuICAgICAqICAgfSBlbHNlIHtcbiAgICAgKiAgICAgcnVsZS5yZW1vdmUoKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB3YWxrQXRSdWxlcyhuYW1lLCBjYWxsYmFjaykge1xuICAgICAgICBpZiAoICFjYWxsYmFjayApIHtcbiAgICAgICAgICAgIGNhbGxiYWNrID0gbmFtZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndhbGsoIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggY2hpbGQudHlwZSA9PT0gJ2F0cnVsZScgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhjaGlsZCwgaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIG5hbWUgaW5zdGFuY2VvZiBSZWdFeHAgKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy53YWxrKCAoY2hpbGQsIGkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIGNoaWxkLnR5cGUgPT09ICdhdHJ1bGUnICYmIG5hbWUudGVzdChjaGlsZC5uYW1lKSApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndhbGsoIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICggY2hpbGQudHlwZSA9PT0gJ2F0cnVsZScgJiYgY2hpbGQubmFtZSA9PT0gbmFtZSApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyYXZlcnNlcyB0aGUgY29udGFpbmVy4oCZcyBkZXNjZW5kYW50IG5vZGVzLCBjYWxsaW5nIGNhbGxiYWNrXG4gICAgICogZm9yIGVhY2ggY29tbWVudCBub2RlLlxuICAgICAqXG4gICAgICogTGlrZSB7QGxpbmsgQ29udGFpbmVyI2VhY2h9LCB0aGlzIG1ldGhvZCBpcyBzYWZlXG4gICAgICogdG8gdXNlIGlmIHlvdSBhcmUgbXV0YXRpbmcgYXJyYXlzIGR1cmluZyBpdGVyYXRpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2NoaWxkSXRlcmF0b3J9IGNhbGxiYWNrIC0gaXRlcmF0b3IgcmVjZWl2ZXMgZWFjaCBub2RlIGFuZCBpbmRleFxuICAgICAqXG4gICAgICogQHJldHVybiB7ZmFsc2V8dW5kZWZpbmVkfSByZXR1cm5zIGBmYWxzZWAgaWYgaXRlcmF0aW9uIHdhcyBicm9rZVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiByb290LndhbGtDb21tZW50cyhjb21tZW50ID0+IHtcbiAgICAgKiAgIGNvbW1lbnQucmVtb3ZlKCk7XG4gICAgICogfSk7XG4gICAgICovXG4gICAgd2Fsa0NvbW1lbnRzKGNhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndhbGsoIChjaGlsZCwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKCBjaGlsZC50eXBlID09PSAnY29tbWVudCcgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGNoaWxkLCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5zZXJ0cyBuZXcgbm9kZXMgdG8gdGhlIGVuZCBvZiB0aGUgY29udGFpbmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi4oTm9kZXxvYmplY3R8c3RyaW5nfE5vZGVbXSl9IGNoaWxkcmVuIC0gbmV3IG5vZGVzXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtOb2RlfSB0aGlzIG5vZGUgZm9yIG1ldGhvZHMgY2hhaW5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgZGVjbDEgPSBwb3N0Y3NzLmRlY2woeyBwcm9wOiAnY29sb3InLCB2YWx1ZTogJ2JsYWNrJyB9KTtcbiAgICAgKiBjb25zdCBkZWNsMiA9IHBvc3Rjc3MuZGVjbCh7IHByb3A6ICdiYWNrZ3JvdW5kLWNvbG9yJywgdmFsdWU6ICd3aGl0ZScgfSk7XG4gICAgICogcnVsZS5hcHBlbmQoZGVjbDEsIGRlY2wyKTtcbiAgICAgKlxuICAgICAqIHJvb3QuYXBwZW5kKHsgbmFtZTogJ2NoYXJzZXQnLCBwYXJhbXM6ICdcIlVURi04XCInIH0pOyAgLy8gYXQtcnVsZVxuICAgICAqIHJvb3QuYXBwZW5kKHsgc2VsZWN0b3I6ICdhJyB9KTsgICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1bGVcbiAgICAgKiBydWxlLmFwcGVuZCh7IHByb3A6ICdjb2xvcicsIHZhbHVlOiAnYmxhY2snIH0pOyAgICAgICAvLyBkZWNsYXJhdGlvblxuICAgICAqIHJ1bGUuYXBwZW5kKHsgdGV4dDogJ0NvbW1lbnQnIH0pICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbW1lbnRcbiAgICAgKlxuICAgICAqIHJvb3QuYXBwZW5kKCdhIHt9Jyk7XG4gICAgICogcm9vdC5maXJzdC5hcHBlbmQoJ2NvbG9yOiBibGFjazsgei1pbmRleDogMScpO1xuICAgICAqL1xuICAgIGFwcGVuZCguLi5jaGlsZHJlbikge1xuICAgICAgICBmb3IgKCBsZXQgY2hpbGQgb2YgY2hpbGRyZW4gKSB7XG4gICAgICAgICAgICBsZXQgbm9kZXMgPSB0aGlzLm5vcm1hbGl6ZShjaGlsZCwgdGhpcy5sYXN0KTtcbiAgICAgICAgICAgIGZvciAoIGxldCBub2RlIG9mIG5vZGVzICkgdGhpcy5ub2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgbmV3IG5vZGVzIHRvIHRoZSBzdGFydCBvZiB0aGUgY29udGFpbmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi4oTm9kZXxvYmplY3R8c3RyaW5nfE5vZGVbXSl9IGNoaWxkcmVuIC0gbmV3IG5vZGVzXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtOb2RlfSB0aGlzIG5vZGUgZm9yIG1ldGhvZHMgY2hhaW5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgZGVjbDEgPSBwb3N0Y3NzLmRlY2woeyBwcm9wOiAnY29sb3InLCB2YWx1ZTogJ2JsYWNrJyB9KTtcbiAgICAgKiBjb25zdCBkZWNsMiA9IHBvc3Rjc3MuZGVjbCh7IHByb3A6ICdiYWNrZ3JvdW5kLWNvbG9yJywgdmFsdWU6ICd3aGl0ZScgfSk7XG4gICAgICogcnVsZS5wcmVwZW5kKGRlY2wxLCBkZWNsMik7XG4gICAgICpcbiAgICAgKiByb290LmFwcGVuZCh7IG5hbWU6ICdjaGFyc2V0JywgcGFyYW1zOiAnXCJVVEYtOFwiJyB9KTsgIC8vIGF0LXJ1bGVcbiAgICAgKiByb290LmFwcGVuZCh7IHNlbGVjdG9yOiAnYScgfSk7ICAgICAgICAgICAgICAgICAgICAgICAvLyBydWxlXG4gICAgICogcnVsZS5hcHBlbmQoeyBwcm9wOiAnY29sb3InLCB2YWx1ZTogJ2JsYWNrJyB9KTsgICAgICAgLy8gZGVjbGFyYXRpb25cbiAgICAgKiBydWxlLmFwcGVuZCh7IHRleHQ6ICdDb21tZW50JyB9KSAgICAgICAgICAgICAgICAgICAgICAvLyBjb21tZW50XG4gICAgICpcbiAgICAgKiByb290LmFwcGVuZCgnYSB7fScpO1xuICAgICAqIHJvb3QuZmlyc3QuYXBwZW5kKCdjb2xvcjogYmxhY2s7IHotaW5kZXg6IDEnKTtcbiAgICAgKi9cbiAgICBwcmVwZW5kKC4uLmNoaWxkcmVuKSB7XG4gICAgICAgIGNoaWxkcmVuID0gY2hpbGRyZW4ucmV2ZXJzZSgpO1xuICAgICAgICBmb3IgKCBsZXQgY2hpbGQgb2YgY2hpbGRyZW4gKSB7XG4gICAgICAgICAgICBsZXQgbm9kZXMgPSB0aGlzLm5vcm1hbGl6ZShjaGlsZCwgdGhpcy5maXJzdCwgJ3ByZXBlbmQnKS5yZXZlcnNlKCk7XG4gICAgICAgICAgICBmb3IgKCBsZXQgbm9kZSBvZiBub2RlcyApIHRoaXMubm9kZXMudW5zaGlmdChub2RlKTtcbiAgICAgICAgICAgIGZvciAoIGxldCBpZCBpbiB0aGlzLmluZGV4ZXMgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IHRoaXMuaW5kZXhlc1tpZF0gKyBub2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgY2xlYW5SYXdzKGtlZXBCZXR3ZWVuKSB7XG4gICAgICAgIHN1cGVyLmNsZWFuUmF3cyhrZWVwQmV0d2Vlbik7XG4gICAgICAgIGlmICggdGhpcy5ub2RlcyApIHtcbiAgICAgICAgICAgIGZvciAoIGxldCBub2RlIG9mIHRoaXMubm9kZXMgKSBub2RlLmNsZWFuUmF3cyhrZWVwQmV0d2Vlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbmV3IG5vZGUgYmVmb3JlIG9sZCBub2RlIHdpdGhpbiB0aGUgY29udGFpbmVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtOb2RlfG51bWJlcn0gZXhpc3QgICAgICAgICAgICAgLSBjaGlsZCBvciBjaGlsZOKAmXMgaW5kZXguXG4gICAgICogQHBhcmFtIHtOb2RlfG9iamVjdHxzdHJpbmd8Tm9kZVtdfSBhZGQgLSBuZXcgbm9kZVxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gdGhpcyBub2RlIGZvciBtZXRob2RzIGNoYWluXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJ1bGUuaW5zZXJ0QmVmb3JlKGRlY2wsIGRlY2wuY2xvbmUoeyBwcm9wOiAnLXdlYmtpdC0nICsgZGVjbC5wcm9wIH0pKTtcbiAgICAgKi9cbiAgICBpbnNlcnRCZWZvcmUoZXhpc3QsIGFkZCkge1xuICAgICAgICBleGlzdCA9IHRoaXMuaW5kZXgoZXhpc3QpO1xuXG4gICAgICAgIGxldCB0eXBlICA9IGV4aXN0ID09PSAwID8gJ3ByZXBlbmQnIDogZmFsc2U7XG4gICAgICAgIGxldCBub2RlcyA9IHRoaXMubm9ybWFsaXplKGFkZCwgdGhpcy5ub2Rlc1tleGlzdF0sIHR5cGUpLnJldmVyc2UoKTtcbiAgICAgICAgZm9yICggbGV0IG5vZGUgb2Ygbm9kZXMgKSB0aGlzLm5vZGVzLnNwbGljZShleGlzdCwgMCwgbm9kZSk7XG5cbiAgICAgICAgbGV0IGluZGV4O1xuICAgICAgICBmb3IgKCBsZXQgaWQgaW4gdGhpcy5pbmRleGVzICkge1xuICAgICAgICAgICAgaW5kZXggPSB0aGlzLmluZGV4ZXNbaWRdO1xuICAgICAgICAgICAgaWYgKCBleGlzdCA8PSBpbmRleCApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluZGV4ZXNbaWRdID0gaW5kZXggKyBub2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnNlcnQgbmV3IG5vZGUgYWZ0ZXIgb2xkIG5vZGUgd2l0aGluIHRoZSBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05vZGV8bnVtYmVyfSBleGlzdCAgICAgICAgICAgICAtIGNoaWxkIG9yIGNoaWxk4oCZcyBpbmRleFxuICAgICAqIEBwYXJhbSB7Tm9kZXxvYmplY3R8c3RyaW5nfE5vZGVbXX0gYWRkIC0gbmV3IG5vZGVcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge05vZGV9IHRoaXMgbm9kZSBmb3IgbWV0aG9kcyBjaGFpblxuICAgICAqL1xuICAgIGluc2VydEFmdGVyKGV4aXN0LCBhZGQpIHtcbiAgICAgICAgZXhpc3QgPSB0aGlzLmluZGV4KGV4aXN0KTtcblxuICAgICAgICBsZXQgbm9kZXMgPSB0aGlzLm5vcm1hbGl6ZShhZGQsIHRoaXMubm9kZXNbZXhpc3RdKS5yZXZlcnNlKCk7XG4gICAgICAgIGZvciAoIGxldCBub2RlIG9mIG5vZGVzICkgdGhpcy5ub2Rlcy5zcGxpY2UoZXhpc3QgKyAxLCAwLCBub2RlKTtcblxuICAgICAgICBsZXQgaW5kZXg7XG4gICAgICAgIGZvciAoIGxldCBpZCBpbiB0aGlzLmluZGV4ZXMgKSB7XG4gICAgICAgICAgICBpbmRleCA9IHRoaXMuaW5kZXhlc1tpZF07XG4gICAgICAgICAgICBpZiAoIGV4aXN0IDwgaW5kZXggKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IGluZGV4ICsgbm9kZXMubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcmVtb3ZlKGNoaWxkKSB7XG4gICAgICAgIGlmICggdHlwZW9mIGNoaWxkICE9PSAndW5kZWZpbmVkJyApIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKCdDb250YWluZXIjcmVtb3ZlIGlzIGRlcHJlY2F0ZWQuICcgK1xuICAgICAgICAgICAgICAgICAgICAgJ1VzZSBDb250YWluZXIjcmVtb3ZlQ2hpbGQnKTtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBub2RlIGZyb20gdGhlIGNvbnRhaW5lciBhbmQgY2xlYW5zIHRoZSBwYXJlbnQgcHJvcGVydGllc1xuICAgICAqIGZyb20gdGhlIG5vZGUgYW5kIGl0cyBjaGlsZHJlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tm9kZXxudW1iZXJ9IGNoaWxkIC0gY2hpbGQgb3IgY2hpbGTigJlzIGluZGV4XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtOb2RlfSB0aGlzIG5vZGUgZm9yIG1ldGhvZHMgY2hhaW5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcnVsZS5ub2Rlcy5sZW5ndGggIC8vPT4gNVxuICAgICAqIHJ1bGUucmVtb3ZlQ2hpbGQoZGVjbCk7XG4gICAgICogcnVsZS5ub2Rlcy5sZW5ndGggIC8vPT4gNFxuICAgICAqIGRlY2wucGFyZW50ICAgICAgICAvLz0+IHVuZGVmaW5lZFxuICAgICAqL1xuICAgIHJlbW92ZUNoaWxkKGNoaWxkKSB7XG4gICAgICAgIGNoaWxkID0gdGhpcy5pbmRleChjaGlsZCk7XG4gICAgICAgIHRoaXMubm9kZXNbY2hpbGRdLnBhcmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub2Rlcy5zcGxpY2UoY2hpbGQsIDEpO1xuXG4gICAgICAgIGxldCBpbmRleDtcbiAgICAgICAgZm9yICggbGV0IGlkIGluIHRoaXMuaW5kZXhlcyApIHtcbiAgICAgICAgICAgIGluZGV4ID0gdGhpcy5pbmRleGVzW2lkXTtcbiAgICAgICAgICAgIGlmICggaW5kZXggPj0gY2hpbGQgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmRleGVzW2lkXSA9IGluZGV4IC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIGNoaWxkcmVuIGZyb20gdGhlIGNvbnRhaW5lclxuICAgICAqIGFuZCBjbGVhbnMgdGhlaXIgcGFyZW50IHByb3BlcnRpZXMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtOb2RlfSB0aGlzIG5vZGUgZm9yIG1ldGhvZHMgY2hhaW5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcnVsZS5yZW1vdmVBbGwoKTtcbiAgICAgKiBydWxlLm5vZGVzLmxlbmd0aCAvLz0+IDBcbiAgICAgKi9cbiAgICByZW1vdmVBbGwoKSB7XG4gICAgICAgIGZvciAoIGxldCBub2RlIG9mIHRoaXMubm9kZXMgKSBub2RlLnBhcmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5ub2RlcyA9IFtdO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXNzZXMgYWxsIGRlY2xhcmF0aW9uIHZhbHVlcyB3aXRoaW4gdGhlIGNvbnRhaW5lciB0aGF0IG1hdGNoIHBhdHRlcm5cbiAgICAgKiB0aHJvdWdoIGNhbGxiYWNrLCByZXBsYWNpbmcgdGhvc2UgdmFsdWVzIHdpdGggdGhlIHJldHVybmVkIHJlc3VsdFxuICAgICAqIG9mIGNhbGxiYWNrLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgaXMgdXNlZnVsIGlmIHlvdSBhcmUgdXNpbmcgYSBjdXN0b20gdW5pdCBvciBmdW5jdGlvblxuICAgICAqIGFuZCBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgdmFsdWVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd8UmVnRXhwfSBwYXR0ZXJuICAgICAgLSByZXBsYWNlIHBhdHRlcm5cbiAgICAgKiBAcGFyYW0ge29iamVjdH0gb3B0cyAgICAgICAgICAgICAgICAtIG9wdGlvbnMgdG8gc3BlZWQgdXAgdGhlIHNlYXJjaFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBvcHRzLnByb3BzIC0gYW4gYXJyYXkgb2YgcHJvcGVydHkgbmFtZXNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5mYXN0ICAgICAgICAgICAtIHN0cmluZyB0aGF04oCZcyB1c2VkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBuYXJyb3cgZG93biB2YWx1ZXMgYW5kIHNwZWVkIHVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcmVnZXhwIHNlYXJjaFxuICAgICAqIEBwYXJhbSB7ZnVuY3Rpb258c3RyaW5nfSBjYWxsYmFjayAgIC0gc3RyaW5nIHRvIHJlcGxhY2UgcGF0dGVyblxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgY2FsbGJhY2sgdGhhdCByZXR1cm5zIGEgbmV3XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjYWxsYmFjayB3aWxsIHJlY2VpdmVcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyB0aG9zZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIHRvIGEgZnVuY3Rpb24gcGFyYW1ldGVyXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBgU3RyaW5nI3JlcGxhY2VgLlxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gdGhpcyBub2RlIGZvciBtZXRob2RzIGNoYWluXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJvb3QucmVwbGFjZVZhbHVlcygvXFxkK3JlbS8sIHsgZmFzdDogJ3JlbScgfSwgc3RyaW5nID0+IHtcbiAgICAgKiAgIHJldHVybiAxNSAqIHBhcnNlSW50KHN0cmluZykgKyAncHgnO1xuICAgICAqIH0pO1xuICAgICAqL1xuICAgIHJlcGxhY2VWYWx1ZXMocGF0dGVybiwgb3B0cywgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCAhY2FsbGJhY2sgKSB7XG4gICAgICAgICAgICBjYWxsYmFjayA9IG9wdHM7XG4gICAgICAgICAgICBvcHRzID0geyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53YWxrRGVjbHMoIGRlY2wgPT4ge1xuICAgICAgICAgICAgaWYgKCBvcHRzLnByb3BzICYmIG9wdHMucHJvcHMuaW5kZXhPZihkZWNsLnByb3ApID09PSAtMSApIHJldHVybjtcbiAgICAgICAgICAgIGlmICggb3B0cy5mYXN0ICAmJiBkZWNsLnZhbHVlLmluZGV4T2Yob3B0cy5mYXN0KSA9PT0gLTEgKSByZXR1cm47XG5cbiAgICAgICAgICAgIGRlY2wudmFsdWUgPSBkZWNsLnZhbHVlLnJlcGxhY2UocGF0dGVybiwgY2FsbGJhY2spO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYFxuICAgICAqIGZvciBhbGwgb2YgdGhlIGNvbnRhaW5lcuKAmXMgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge2NoaWxkQ29uZGl0aW9ufSBjb25kaXRpb24gLSBpdGVyYXRvciByZXR1cm5zIHRydWUgb3IgZmFsc2UuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtib29sZWFufSBpcyBldmVyeSBjaGlsZCBwYXNzIGNvbmRpdGlvblxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBub1ByZWZpeGVzID0gcnVsZS5ldmVyeShpID0+IGkucHJvcFswXSAhPT0gJy0nKTtcbiAgICAgKi9cbiAgICBldmVyeShjb25kaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuZXZlcnkoY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiBjYWxsYmFjayByZXR1cm5zIGB0cnVlYCBmb3IgKGF0IGxlYXN0KSBvbmVcbiAgICAgKiBvZiB0aGUgY29udGFpbmVy4oCZcyBjaGlsZHJlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Y2hpbGRDb25kaXRpb259IGNvbmRpdGlvbiAtIGl0ZXJhdG9yIHJldHVybnMgdHJ1ZSBvciBmYWxzZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge2Jvb2xlYW59IGlzIHNvbWUgY2hpbGQgcGFzcyBjb25kaXRpb25cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3QgaGFzUHJlZml4ID0gcnVsZS5zb21lKGkgPT4gaS5wcm9wWzBdID09PSAnLScpO1xuICAgICAqL1xuICAgIHNvbWUoY29uZGl0aW9uKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLnNvbWUoY29uZGl0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgYGNoaWxkYOKAmXMgaW5kZXggd2l0aGluIHRoZSB7QGxpbmsgQ29udGFpbmVyI25vZGVzfSBhcnJheS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tm9kZX0gY2hpbGQgLSBjaGlsZCBvZiB0aGUgY3VycmVudCBjb250YWluZXIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtudW1iZXJ9IGNoaWxkIGluZGV4XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJ1bGUuaW5kZXgoIHJ1bGUubm9kZXNbMl0gKSAvLz0+IDJcbiAgICAgKi9cbiAgICBpbmRleChjaGlsZCkge1xuICAgICAgICBpZiAoIHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicgKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ub2Rlcy5pbmRleE9mKGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250YWluZXLigJlzIGZpcnN0IGNoaWxkLlxuICAgICAqXG4gICAgICogQHR5cGUge05vZGV9XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJ1bGUuZmlyc3QgPT0gcnVsZXMubm9kZXNbMF07XG4gICAgICovXG4gICAgZ2V0IGZpcnN0KCkge1xuICAgICAgICBpZiAoICF0aGlzLm5vZGVzICkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXNbMF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRhaW5lcuKAmXMgbGFzdCBjaGlsZC5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtOb2RlfVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBydWxlLmxhc3QgPT0gcnVsZS5ub2Rlc1tydWxlLm5vZGVzLmxlbmd0aCAtIDFdO1xuICAgICAqL1xuICAgIGdldCBsYXN0KCkge1xuICAgICAgICBpZiAoICF0aGlzLm5vZGVzICkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBub3JtYWxpemUobm9kZXMsIHNhbXBsZSkge1xuICAgICAgICBpZiAoIHR5cGVvZiBub2RlcyA9PT0gJ3N0cmluZycgKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2UgPSByZXF1aXJlKCcuL3BhcnNlJyk7XG4gICAgICAgICAgICBub2RlcyA9IGNsZWFuU291cmNlKHBhcnNlKG5vZGVzKS5ub2Rlcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoICFBcnJheS5pc0FycmF5KG5vZGVzKSApIHtcbiAgICAgICAgICAgIGlmICggbm9kZXMudHlwZSA9PT0gJ3Jvb3QnICkge1xuICAgICAgICAgICAgICAgIG5vZGVzID0gbm9kZXMubm9kZXM7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBub2Rlcy50eXBlICkge1xuICAgICAgICAgICAgICAgIG5vZGVzID0gW25vZGVzXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIG5vZGVzLnByb3AgKSB7XG4gICAgICAgICAgICAgICAgaWYgKCB0eXBlb2Ygbm9kZXMudmFsdWUgPT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIGZpZWxkIGlzIG1pc3NlZCBpbiBub2RlIGNyZWF0aW9uJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICggdHlwZW9mIG5vZGVzLnZhbHVlICE9PSAnc3RyaW5nJyApIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZXMudmFsdWUgPSBTdHJpbmcobm9kZXMudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub2RlcyA9IFtuZXcgRGVjbGFyYXRpb24obm9kZXMpXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIG5vZGVzLnNlbGVjdG9yICkge1xuICAgICAgICAgICAgICAgIGxldCBSdWxlID0gcmVxdWlyZSgnLi9ydWxlJyk7XG4gICAgICAgICAgICAgICAgbm9kZXMgPSBbbmV3IFJ1bGUobm9kZXMpXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIG5vZGVzLm5hbWUgKSB7XG4gICAgICAgICAgICAgICAgbGV0IEF0UnVsZSA9IHJlcXVpcmUoJy4vYXQtcnVsZScpO1xuICAgICAgICAgICAgICAgIG5vZGVzID0gW25ldyBBdFJ1bGUobm9kZXMpXTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIG5vZGVzLnRleHQgKSB7XG4gICAgICAgICAgICAgICAgbm9kZXMgPSBbbmV3IENvbW1lbnQobm9kZXMpXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIG5vZGUgdHlwZSBpbiBub2RlIGNyZWF0aW9uJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcHJvY2Vzc2VkID0gbm9kZXMubWFwKCBpID0+IHtcbiAgICAgICAgICAgIGlmICggdHlwZW9mIGkucmF3cyA9PT0gJ3VuZGVmaW5lZCcgKSBpID0gdGhpcy5yZWJ1aWxkKGkpO1xuXG4gICAgICAgICAgICBpZiAoIGkucGFyZW50ICkgaSA9IGkuY2xvbmUoKTtcbiAgICAgICAgICAgIGlmICggdHlwZW9mIGkucmF3cy5iZWZvcmUgPT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgIGlmICggc2FtcGxlICYmIHR5cGVvZiBzYW1wbGUucmF3cy5iZWZvcmUgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgICAgICAgICBpLnJhd3MuYmVmb3JlID0gc2FtcGxlLnJhd3MuYmVmb3JlLnJlcGxhY2UoL1teXFxzXS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaS5wYXJlbnQgPSB0aGlzO1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwcm9jZXNzZWQ7XG4gICAgfVxuXG4gICAgcmVidWlsZChub2RlLCBwYXJlbnQpIHtcbiAgICAgICAgbGV0IGZpeDtcbiAgICAgICAgaWYgKCBub2RlLnR5cGUgPT09ICdyb290JyApIHtcbiAgICAgICAgICAgIGxldCBSb290ID0gcmVxdWlyZSgnLi9yb290Jyk7XG4gICAgICAgICAgICBmaXggPSBuZXcgUm9vdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKCBub2RlLnR5cGUgPT09ICdhdHJ1bGUnICkge1xuICAgICAgICAgICAgbGV0IEF0UnVsZSA9IHJlcXVpcmUoJy4vYXQtcnVsZScpO1xuICAgICAgICAgICAgZml4ID0gbmV3IEF0UnVsZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCBub2RlLnR5cGUgPT09ICdydWxlJyApIHtcbiAgICAgICAgICAgIGxldCBSdWxlID0gcmVxdWlyZSgnLi9ydWxlJyk7XG4gICAgICAgICAgICBmaXggPSBuZXcgUnVsZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKCBub2RlLnR5cGUgPT09ICdkZWNsJyApIHtcbiAgICAgICAgICAgIGZpeCA9IG5ldyBEZWNsYXJhdGlvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKCBub2RlLnR5cGUgPT09ICdjb21tZW50JyApIHtcbiAgICAgICAgICAgIGZpeCA9IG5ldyBDb21tZW50KCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKCBsZXQgaSBpbiBub2RlICkge1xuICAgICAgICAgICAgaWYgKCBpID09PSAnbm9kZXMnICkge1xuICAgICAgICAgICAgICAgIGZpeC5ub2RlcyA9IG5vZGUubm9kZXMubWFwKCBqID0+IHRoaXMucmVidWlsZChqLCBmaXgpICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCBpID09PSAncGFyZW50JyAmJiBwYXJlbnQgKSB7XG4gICAgICAgICAgICAgICAgZml4LnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIG5vZGUuaGFzT3duUHJvcGVydHkoaSkgKSB7XG4gICAgICAgICAgICAgICAgZml4W2ldID0gbm9kZVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaXg7XG4gICAgfVxuXG4gICAgZWFjaEluc2lkZShjYWxsYmFjaykge1xuICAgICAgICB3YXJuT25jZSgnQ29udGFpbmVyI2VhY2hJbnNpZGUgaXMgZGVwcmVjYXRlZC4gJyArXG4gICAgICAgICAgICAgICAgICdVc2UgQ29udGFpbmVyI3dhbGsgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud2FsayhjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgZWFjaERlY2wocHJvcCwgY2FsbGJhY2spIHtcbiAgICAgICAgd2Fybk9uY2UoJ0NvbnRhaW5lciNlYWNoRGVjbCBpcyBkZXByZWNhdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgJ1VzZSBDb250YWluZXIjd2Fsa0RlY2xzIGluc3RlYWQuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLndhbGtEZWNscyhwcm9wLCBjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgZWFjaFJ1bGUoc2VsZWN0b3IsIGNhbGxiYWNrKSB7XG4gICAgICAgIHdhcm5PbmNlKCdDb250YWluZXIjZWFjaFJ1bGUgaXMgZGVwcmVjYXRlZC4gJyArXG4gICAgICAgICAgICAgICAgICdVc2UgQ29udGFpbmVyI3dhbGtSdWxlcyBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy53YWxrUnVsZXMoc2VsZWN0b3IsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBlYWNoQXRSdWxlKG5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHdhcm5PbmNlKCdDb250YWluZXIjZWFjaEF0UnVsZSBpcyBkZXByZWNhdGVkLiAnICtcbiAgICAgICAgICAgICAgICAgJ1VzZSBDb250YWluZXIjd2Fsa0F0UnVsZXMgaW5zdGVhZC4nKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud2Fsa0F0UnVsZXMobmFtZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGVhY2hDb21tZW50KGNhbGxiYWNrKSB7XG4gICAgICAgIHdhcm5PbmNlKCdDb250YWluZXIjZWFjaENvbW1lbnQgaXMgZGVwcmVjYXRlZC4gJyArXG4gICAgICAgICAgICAgICAgICdVc2UgQ29udGFpbmVyI3dhbGtDb21tZW50cyBpbnN0ZWFkLicpO1xuICAgICAgICByZXR1cm4gdGhpcy53YWxrQ29tbWVudHMoY2FsbGJhY2spO1xuICAgIH1cblxuICAgIGdldCBzZW1pY29sb24oKSB7XG4gICAgICAgIHdhcm5PbmNlKCdOb2RlI3NlbWljb2xvbiBpcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyYXdzLnNlbWljb2xvbicpO1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdzLnNlbWljb2xvbjtcbiAgICB9XG5cbiAgICBzZXQgc2VtaWNvbG9uKHZhbCkge1xuICAgICAgICB3YXJuT25jZSgnTm9kZSNzZW1pY29sb24gaXMgZGVwcmVjYXRlZC4gVXNlIE5vZGUjcmF3cy5zZW1pY29sb24nKTtcbiAgICAgICAgdGhpcy5yYXdzLnNlbWljb2xvbiA9IHZhbDtcbiAgICB9XG5cbiAgICBnZXQgYWZ0ZXIoKSB7XG4gICAgICAgIHdhcm5PbmNlKCdOb2RlI2FmdGVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBOb2RlI3Jhd3MuYWZ0ZXInKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3cy5hZnRlcjtcbiAgICB9XG5cbiAgICBzZXQgYWZ0ZXIodmFsKSB7XG4gICAgICAgIHdhcm5PbmNlKCdOb2RlI2FmdGVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBOb2RlI3Jhd3MuYWZ0ZXInKTtcbiAgICAgICAgdGhpcy5yYXdzLmFmdGVyID0gdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBtZW1iZXJvZiBDb250YWluZXIjXG4gICAgICogQG1lbWJlciB7Tm9kZVtdfSBub2RlcyAtIGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIGNvbnRhaW5lcuKAmXMgY2hpbGRyZW5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EgeyBjb2xvcjogYmxhY2sgfScpO1xuICAgICAqIHJvb3Qubm9kZXMubGVuZ3RoICAgICAgICAgICAvLz0+IDFcbiAgICAgKiByb290Lm5vZGVzWzBdLnNlbGVjdG9yICAgICAgLy89PiAnYSdcbiAgICAgKiByb290Lm5vZGVzWzBdLm5vZGVzWzBdLnByb3AgLy89PiAnY29sb3InXG4gICAgICovXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29udGFpbmVyO1xuXG5cbi8qKlxuICogQGNhbGxiYWNrIGNoaWxkQ29uZGl0aW9uXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgICAgLSBjb250YWluZXIgY2hpbGRcbiAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAtIGNoaWxkIGluZGV4XG4gKiBAcGFyYW0ge05vZGVbXX0gbm9kZXMgLSBhbGwgY29udGFpbmVyIGNoaWxkcmVuXG4gKiBAcmV0dXJuIHtib29sZWFufVxuICovXG5cbi8qKlxuICogQGNhbGxiYWNrIGNoaWxkSXRlcmF0b3JcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAgICAtIGNvbnRhaW5lciBjaGlsZFxuICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IC0gY2hpbGQgaW5kZXhcbiAqIEByZXR1cm4ge2ZhbHNlfHVuZGVmaW5lZH0gcmV0dXJuaW5nIGBmYWxzZWAgd2lsbCBicmVhayBpdGVyYXRpb25cbiAqL1xuIl19\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","\"object\"==typeof navigator&&function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Plyr\",t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).Plyr=t()}(this,(function(){\"use strict\";function e(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){for(var i=0;it){var i=function(e){var t=\"\".concat(e).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var T=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")})(this,e),b(t)?this.element=t:p(t)&&(this.element=document.querySelector(t)),b(this.element)&&v(this.element.rangeTouch)&&(this.config=n({},a,{},i),this.init())}return function(e,i,s){i&&t(e.prototype,i),s&&t(e,s)}(e,[{key:\"init\",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect=\"none\",this.element.style.webKitUserSelect=\"none\",this.element.style.touchAction=\"manipulation\"),this.listeners(!0),this.element.rangeTouch=this)}},{key:\"destroy\",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect=\"\",this.element.style.webKitUserSelect=\"\",this.element.style.touchAction=\"\"),this.listeners(!1),this.element.rangeTouch=null)}},{key:\"listeners\",value:function(e){var t=this,i=e?\"addEventListener\":\"removeEventListener\";[\"touchstart\",\"touchmove\",\"touchend\"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:\"get\",value:function(t){if(!e.enabled||!y(t))return null;var i,s=t.target,n=t.changedTouches[0],a=parseFloat(s.getAttribute(\"min\"))||0,l=parseFloat(s.getAttribute(\"max\"))||100,o=parseFloat(s.getAttribute(\"step\"))||1,r=s.getBoundingClientRect(),c=100/r.width*(this.config.thumbWidth/2)/100;return 0>(i=100/r.width*(n.clientX-r.left))?i=0:100i?i-=(100-2*i)*c:50null!=e?e.constructor:null,C=(e,t)=>Boolean(e&&t&&e instanceof t),A=e=>null==e,S=e=>k(e)===Object,E=e=>k(e)===String,P=e=>k(e)===Function,M=e=>Array.isArray(e),N=e=>C(e,NodeList),x=e=>A(e)||(E(e)||M(e)||N(e))&&!e.length||S(e)&&!Object.keys(e).length;var I=A,L=S,$=e=>k(e)===Number&&!Number.isNaN(e),_=E,O=e=>k(e)===Boolean,j=P,D=M,q=N,H=e=>null!==e&&\"object\"==typeof e&&1===e.nodeType&&\"object\"==typeof e.style&&\"object\"==typeof e.ownerDocument,R=e=>C(e,Event),F=e=>C(e,KeyboardEvent),V=e=>C(e,TextTrack)||!A(e)&&E(e.kind),B=e=>C(e,Promise)&&P(e.then),U=e=>{if(C(e,window.URL))return!0;if(!E(e))return!1;let t=e;e.startsWith(\"http://\")&&e.startsWith(\"https://\")||(t=`http://${e}`);try{return!x(new URL(t).hostname)}catch(e){return!1}},W=x;const z=(()=>{const e=document.createElement(\"span\"),t={WebkitTransition:\"webkitTransitionEnd\",MozTransition:\"transitionend\",OTransition:\"oTransitionEnd otransitionend\",transition:\"transitionend\"},i=Object.keys(t).find((t=>void 0!==e.style[t]));return!!_(i)&&t[i]})();function K(e,t){setTimeout((()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}const Y={isIE:Boolean(window.document.documentMode),isEdge:window.navigator.userAgent.includes(\"Edge\"),isWebkit:\"WebkitAppearance\"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:\"MacIntel\"===navigator.platform&&navigator.maxTouchPoints>1||/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function Q(e,t){return t.split(\".\").reduce(((e,t)=>e&&e[t]),e)}function X(e={},...t){if(!t.length)return e;const i=t.shift();return L(i)?(Object.keys(i).forEach((t=>{L(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),X(e[t],i[t])):Object.assign(e,{[t]:i[t]})})),X(e,...t)):e}function J(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach(((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)}))}function G(e,t){H(e)&&!W(t)&&Object.entries(t).filter((([,e])=>!I(e))).forEach((([t,i])=>e.setAttribute(t,i)))}function Z(e,t,i){const s=document.createElement(e);return L(t)&&G(s,t),_(i)&&(s.innerText=i),s}function ee(e,t,i,s){H(t)&&t.appendChild(Z(e,i,s))}function te(e){q(e)||D(e)?Array.from(e).forEach(te):H(e)&&H(e.parentNode)&&e.parentNode.removeChild(e)}function ie(e){if(!H(e))return;let{length:t}=e.childNodes;for(;t>0;)e.removeChild(e.lastChild),t-=1}function se(e,t){return H(t)&&H(t.parentNode)&&H(e)?(t.parentNode.replaceChild(e,t),e):null}function ne(e,t){if(!_(e)||W(e))return{};const i={},s=X({},t);return e.split(\",\").forEach((e=>{const t=e.trim(),n=t.replace(\".\",\"\"),a=t.replace(/[[\\]]/g,\"\").split(\"=\"),[l]=a,o=a.length>1?a[1].replace(/[\"']/g,\"\"):\"\";switch(t.charAt(0)){case\".\":_(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case\"#\":i.id=t.replace(\"#\",\"\");break;case\"[\":i[l]=o}})),X(s,i)}function ae(e,t){if(!H(e))return;let i=t;O(i)||(i=!e.hidden),e.hidden=i}function le(e,t,i){if(q(e))return Array.from(e).map((e=>le(e,t,i)));if(H(e)){let s=\"toggle\";return void 0!==i&&(s=i?\"add\":\"remove\"),e.classList[s](t),e.classList.contains(t)}return!1}function oe(e,t){return H(e)&&e.classList.contains(t)}function re(e,t){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function ce(e){return this.elements.container.querySelectorAll(e)}function he(e){return this.elements.container.querySelector(e)}function ue(e=null,t=!1){H(e)&&(e.focus({preventScroll:!0}),t&&le(e,this.config.classNames.tabFocus))}const de={\"audio/ogg\":\"vorbis\",\"audio/wav\":\"1\",\"video/webm\":\"vp8, vorbis\",\"video/mp4\":\"avc1.42E01E, mp4a.40.2\",\"video/ogg\":\"theora\"},me={audio:\"canPlayType\"in document.createElement(\"audio\"),video:\"canPlayType\"in document.createElement(\"video\"),check(e,t,i){const s=Y.isIPhone&&i&&me.playsinline,n=me[e]||\"html5\"!==t;return{api:n,ui:n&&me.rangeInput&&(\"video\"!==e||!Y.isIPhone||s)}},pip:!(Y.isIPhone||!j(Z(\"video\").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||Z(\"video\").disablePictureInPicture)),airplay:j(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:\"playsInline\"in document.createElement(\"video\"),mime(e){if(W(e))return!1;const[t]=e.split(\"/\");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(de).includes(i)&&(i+=`; codecs=\"${de[e]}\"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,\"\"))}catch(e){return!1}},textTracks:\"textTracks\"in document.createElement(\"video\"),rangeInput:(()=>{const e=document.createElement(\"input\");return e.type=\"range\",\"range\"===e.type})(),touch:\"ontouchstart\"in document.documentElement,transitions:!1!==z,reducedMotion:\"matchMedia\"in window&&window.matchMedia(\"(prefers-reduced-motion)\").matches},pe=(()=>{let e=!1;try{const t=Object.defineProperty({},\"passive\",{get:()=>(e=!0,null)});window.addEventListener(\"test\",null,t),window.removeEventListener(\"test\",null,t)}catch(e){}return e})();function ge(e,t,i,s=!1,n=!0,a=!1){if(!e||!(\"addEventListener\"in e)||W(t)||!j(i))return;const l=t.split(\" \");let o=a;pe&&(o={passive:n,capture:a}),l.forEach((t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:o}),e[s?\"addEventListener\":\"removeEventListener\"](t,i,o)}))}function fe(e,t=\"\",i,s=!0,n=!1){ge.call(this,e,t,i,!0,s,n)}function be(e,t=\"\",i,s=!0,n=!1){ge.call(this,e,t,i,!1,s,n)}function ye(e,t=\"\",i,s=!0,n=!1){const a=(...l)=>{be(e,t,a,s,n),i.apply(this,l)};ge.call(this,e,t,a,!0,s,n)}function ve(e,t=\"\",i=!1,s={}){if(!H(e)||W(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function we(){this&&this.eventListeners&&(this.eventListeners.forEach((e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)})),this.eventListeners=[])}function Te(){return new Promise((e=>this.ready?setTimeout(e,0):fe.call(this,this.elements.container,\"ready\",e))).then((()=>{}))}function ke(e){B(e)&&e.then(null,(()=>{}))}function Ce(e){return D(e)?e.filter(((t,i)=>e.indexOf(t)===i)):e}function Ae(e,t){return D(e)&&e.length?e.reduce(((e,i)=>Math.abs(i-t)({...e,[t/i]:[t,i]})),{});function Pe(e){if(!(D(e)||_(e)&&e.includes(\":\")))return!1;return(D(e)?e:e.split(\":\")).map(Number).every($)}function Me(e){if(!D(e)||!e.every($))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function Ne(e){const t=e=>Pe(e)?e.split(\":\").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!W(this.embed)&&D(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return Me(i)}function xe(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=Ne.call(this,e);if(!D(i))return{};const[s,n]=Me(i),a=100/s*n;if(Se(`aspect-ratio: ${s}/${n}`)?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-a)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function Ie(e,t,i=.05){const s=e/t,n=Ae(Object.keys(Ee),s);return Math.abs(n-s)<=i?Ee[n]:[e,t]}const Le={getSources(){if(!this.isHTML5)return[];return Array.from(this.media.querySelectorAll(\"source\")).filter((e=>{const t=e.getAttribute(\"type\");return!!W(t)||me.mime.call(this,t)}))},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:Le.getSources.call(this).map((e=>Number(e.getAttribute(\"size\")))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,W(this.config.ratio)||xe.call(e),Object.defineProperty(e.media,\"quality\",{get(){const t=Le.getSources.call(e).find((t=>t.getAttribute(\"src\")===e.source));return t&&Number(t.getAttribute(\"size\"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&j(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=Le.getSources.call(e).find((e=>Number(e.getAttribute(\"size\"))===t));if(!i)return;const{currentTime:s,paused:n,preload:a,readyState:l,playbackRate:o}=e.media;e.media.src=i.getAttribute(\"src\"),(\"none\"!==a||l)&&(e.once(\"loadedmetadata\",(()=>{e.speed=o,e.currentTime=s,n||ke(e.play())})),e.media.load())}ve.call(e,e.media,\"qualitychange\",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(te(Le.getSources.call(this)),this.media.setAttribute(\"src\",this.config.blankVideo),this.media.load(),this.debug.log(\"Cancelled network requests\"))}};function $e(e,...t){return W(e)?e:e.toString().replace(/{(\\d+)}/g,((e,i)=>t[i].toString()))}const _e=(e=\"\",t=\"\",i=\"\")=>e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\\]/\\\\])/g,\"\\\\$1\"),\"g\"),i.toString()),Oe=(e=\"\")=>e.toString().replace(/\\w\\S*/g,(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()));function je(e=\"\"){let t=e.toString();return t=function(e=\"\"){let t=e.toString();return t=_e(t,\"-\",\" \"),t=_e(t,\"_\",\" \"),t=Oe(t),_e(t,\" \",\"\")}(t),t.charAt(0).toLowerCase()+t.slice(1)}function De(e){const t=document.createElement(\"div\");return t.appendChild(e),t.innerHTML}const qe={pip:\"PIP\",airplay:\"AirPlay\",html5:\"HTML5\",vimeo:\"Vimeo\",youtube:\"YouTube\"},He={get(e=\"\",t={}){if(W(e)||W(t))return\"\";let i=Q(t.i18n,e);if(W(i))return Object.keys(qe).includes(e)?qe[e]:\"\";const s={\"{seektime}\":t.seekTime,\"{title}\":t.title};return Object.entries(s).forEach((([e,t])=>{i=_e(i,e,t)})),i}};class Re{constructor(t){e(this,\"get\",(e=>{if(!Re.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(W(t))return null;const i=JSON.parse(t);return _(e)&&e.length?i[e]:i})),e(this,\"set\",(e=>{if(!Re.supported||!this.enabled)return;if(!L(e))return;let t=this.get();W(t)&&(t={}),X(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch(e){}})),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}static get supported(){try{if(!(\"localStorage\"in window))return!1;const e=\"___test\";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}function Fe(e,t=\"text\"){return new Promise(((i,s)=>{try{const s=new XMLHttpRequest;if(!(\"withCredentials\"in s))return;s.addEventListener(\"load\",(()=>{if(\"text\"===t)try{i(JSON.parse(s.responseText))}catch(e){i(s.responseText)}else i(s.response)})),s.addEventListener(\"error\",(()=>{throw new Error(s.status)})),s.open(\"GET\",e,!0),s.responseType=t,s.send()}catch(e){s(e)}}))}function Ve(e,t){if(!_(e))return;const i=_(t);let s=!1;const n=()=>null!==document.getElementById(t),a=(e,t)=>{e.innerHTML=t,i&&n()||document.body.insertAdjacentElement(\"afterbegin\",e)};if(!i||!n()){const n=Re.supported,l=document.createElement(\"div\");if(l.setAttribute(\"hidden\",\"\"),i&&l.setAttribute(\"id\",t),n){const e=window.localStorage.getItem(`cache-${t}`);if(s=null!==e,s){const t=JSON.parse(e);a(l,t.content)}}Fe(e).then((e=>{if(!W(e)){if(n)try{window.localStorage.setItem(`cache-${t}`,JSON.stringify({content:e}))}catch(e){}a(l,e)}})).catch((()=>{}))}}const Be=e=>Math.trunc(e/60/60%60,10);function Ue(e=0,t=!1,i=!1){if(!$(e))return Ue(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=Be(e);const a=(l=e,Math.trunc(l/60%60,10));var l;const o=(e=>Math.trunc(e%60,10))(e);return n=t||n>0?`${n}:`:\"\",`${i&&e>0?\"-\":\"\"}${n}${s(a)}:${s(o)}`}const We={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||Y.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=he.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:ce.call(this,this.config.selectors.buttons.play),pause:he.call(this,this.config.selectors.buttons.pause),restart:he.call(this,this.config.selectors.buttons.restart),rewind:he.call(this,this.config.selectors.buttons.rewind),fastForward:he.call(this,this.config.selectors.buttons.fastForward),mute:he.call(this,this.config.selectors.buttons.mute),pip:he.call(this,this.config.selectors.buttons.pip),airplay:he.call(this,this.config.selectors.buttons.airplay),settings:he.call(this,this.config.selectors.buttons.settings),captions:he.call(this,this.config.selectors.buttons.captions),fullscreen:he.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=he.call(this,this.config.selectors.progress),this.elements.inputs={seek:he.call(this,this.config.selectors.inputs.seek),volume:he.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:he.call(this,this.config.selectors.display.buffer),currentTime:he.call(this,this.config.selectors.display.currentTime),duration:he.call(this,this.config.selectors.display.duration)},H(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn(\"It looks like there is a problem with your custom controls HTML\",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i=\"http://www.w3.org/2000/svg\",s=We.getIconUrl.call(this),n=`${s.cors?\"\":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,\"svg\");G(a,X(t,{\"aria-hidden\":\"true\",focusable:\"false\"}));const l=document.createElementNS(i,\"use\"),o=`${n}-${e}`;return\"href\"in l&&l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",o),l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",o),a.appendChild(l),a},createLabel(e,t={}){const i=He.get(e,this.config);return Z(\"span\",{...t,class:[t.class,this.config.classNames.hidden].filter(Boolean).join(\" \")},i)},createBadge(e){if(W(e))return null;const t=Z(\"span\",{class:this.config.classNames.menu.value});return t.appendChild(Z(\"span\",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=X({},t);let s=je(e);const n={element:\"button\",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch([\"element\",\"icon\",\"label\"].forEach((e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])})),\"button\"!==n.element||Object.keys(i).includes(\"type\")||(i.type=\"button\"),Object.keys(i).includes(\"class\")?i.class.split(\" \").some((e=>e===this.config.classNames.control))||X(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case\"play\":n.toggle=!0,n.label=\"play\",n.labelPressed=\"pause\",n.icon=\"play\",n.iconPressed=\"pause\";break;case\"mute\":n.toggle=!0,n.label=\"mute\",n.labelPressed=\"unmute\",n.icon=\"volume\",n.iconPressed=\"muted\";break;case\"captions\":n.toggle=!0,n.label=\"enableCaptions\",n.labelPressed=\"disableCaptions\",n.icon=\"captions-off\",n.iconPressed=\"captions-on\";break;case\"fullscreen\":n.toggle=!0,n.label=\"enterFullscreen\",n.labelPressed=\"exitFullscreen\",n.icon=\"enter-fullscreen\",n.iconPressed=\"exit-fullscreen\";break;case\"play-large\":i.class+=` ${this.config.classNames.control}--overlaid`,s=\"play\",n.label=\"play\",n.icon=\"play\";break;default:W(n.label)&&(n.label=s),W(n.icon)&&(n.icon=e)}const a=Z(n.element);return n.toggle?(a.appendChild(We.createIcon.call(this,n.iconPressed,{class:\"icon--pressed\"})),a.appendChild(We.createIcon.call(this,n.icon,{class:\"icon--not-pressed\"})),a.appendChild(We.createLabel.call(this,n.labelPressed,{class:\"label--pressed\"})),a.appendChild(We.createLabel.call(this,n.label,{class:\"label--not-pressed\"}))):(a.appendChild(We.createIcon.call(this,n.icon)),a.appendChild(We.createLabel.call(this,n.label))),X(i,ne(this.config.selectors.buttons[s],i)),G(a,i),\"play\"===s?(D(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=Z(\"input\",X(ne(this.config.selectors.inputs[e]),{type:\"range\",min:0,max:100,step:.01,value:0,autocomplete:\"off\",role:\"slider\",\"aria-label\":He.get(e,this.config),\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-valuenow\":0},t));return this.elements.inputs[e]=i,We.updateRangeFill.call(this,i),T.setup(i),i},createProgress(e,t){const i=Z(\"progress\",X(ne(this.config.selectors.display[e]),{min:0,max:100,value:0,role:\"progressbar\",\"aria-hidden\":!0},t));if(\"volume\"!==e){i.appendChild(Z(\"span\",null,\"0\"));const t={played:\"played\",buffer:\"buffered\"}[e],s=t?He.get(t,this.config):\"\";i.innerText=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=ne(this.config.selectors.display[e],t),s=Z(\"div\",X(i,{class:`${i.class?i.class:\"\"} ${this.config.classNames.display.time} `.trim(),\"aria-label\":He.get(e,this.config)}),\"00:00\");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){fe.call(this,e,\"keydown keyup\",(i=>{if(![\"Space\",\"ArrowUp\",\"ArrowDown\",\"ArrowRight\"].includes(i.key))return;if(i.preventDefault(),i.stopPropagation(),\"keydown\"===i.type)return;const s=re(e,'[role=\"menuitemradio\"]');if(!s&&[\"Space\",\"ArrowRight\"].includes(i.key))We.showMenuPanel.call(this,t,!0);else{let t;\"Space\"!==i.key&&(\"ArrowDown\"===i.key||s&&\"ArrowRight\"===i.key?(t=e.nextElementSibling,H(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,H(t)||(t=e.parentNode.lastElementChild)),ue.call(this,t,!0))}}),!1),fe.call(this,e,\"keyup\",(e=>{\"Return\"===e.key&&We.focusFirstMenuItem.call(this,null,!0)}))},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const l=ne(this.config.selectors.inputs[i]),o=Z(\"button\",X(l,{type:\"button\",role:\"menuitemradio\",class:`${this.config.classNames.control} ${l.class?l.class:\"\"}`.trim(),\"aria-checked\":a,value:e})),r=Z(\"span\");r.innerHTML=s,H(n)&&r.appendChild(n),o.appendChild(r),Object.defineProperty(o,\"checked\",{enumerable:!0,get:()=>\"true\"===o.getAttribute(\"aria-checked\"),set(e){e&&Array.from(o.parentNode.children).filter((e=>re(e,'[role=\"menuitemradio\"]'))).forEach((e=>e.setAttribute(\"aria-checked\",\"false\"))),o.setAttribute(\"aria-checked\",e?\"true\":\"false\")}}),this.listeners.bind(o,\"click keyup\",(t=>{if(!F(t)||\"Space\"===t.key){switch(t.preventDefault(),t.stopPropagation(),o.checked=!0,i){case\"language\":this.currentTrack=Number(e);break;case\"quality\":this.quality=e;break;case\"speed\":this.speed=parseFloat(e)}We.showMenuPanel.call(this,\"home\",F(t))}}),i,!1),We.bindMenuItemShortcuts.call(this,o,i),t.appendChild(o)},formatTime(e=0,t=!1){if(!$(e))return e;return Ue(e,Be(this.duration)>0,t)},updateTimeDisplay(e=null,t=0,i=!1){H(e)&&$(t)&&(e.innerText=We.formatTime(t,i))},updateVolume(){this.supported.ui&&(H(this.elements.inputs.volume)&&We.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),H(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){H(e)&&(e.value=t,We.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!R(e))return;let t=0;const i=(e,t)=>{const i=$(t)?t:0,s=H(e)?e:this.elements.display.buffer;if(H(s)){s.value=i;const e=s.getElementsByTagName(\"span\")[0];H(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case\"timeupdate\":case\"seeking\":case\"seeked\":s=this.currentTime,n=this.duration,t=0===s||0===n||Number.isNaN(s)||Number.isNaN(n)?0:(s/n*100).toFixed(2),\"timeupdate\"===e.type&&We.setRange.call(this,this.elements.inputs.seek,t);break;case\"playing\":case\"progress\":i(this.elements.display.buffer,100*this.buffered)}var s,n},updateRangeFill(e){const t=R(e)?e.target:e;if(H(t)&&\"range\"===t.getAttribute(\"type\")){if(re(t,this.config.selectors.inputs.seek)){t.setAttribute(\"aria-valuenow\",this.currentTime);const e=We.formatTime(this.currentTime),i=We.formatTime(this.duration),s=He.get(\"seekLabel\",this.config);t.setAttribute(\"aria-valuetext\",s.replace(\"{currentTime}\",e).replace(\"{duration}\",i))}else if(re(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute(\"aria-valuenow\",e),t.setAttribute(\"aria-valuetext\",`${e.toFixed(1)}%`)}else t.setAttribute(\"aria-valuenow\",t.value);Y.isWebkit&&t.style.setProperty(\"--value\",t.value/t.max*100+\"%\")}},updateSeekTooltip(e){var t,i;if(!this.config.tooltips.seek||!H(this.elements.inputs.seek)||!H(this.elements.display.seekTooltip)||0===this.duration)return;const s=this.elements.display.seekTooltip,n=`${this.config.classNames.tooltip}--visible`,a=e=>le(s,n,e);if(this.touch)return void a(!1);let l=0;const o=this.elements.progress.getBoundingClientRect();if(R(e))l=100/o.width*(e.pageX-o.left);else{if(!oe(s,n))return;l=parseFloat(s.style.left,10)}l<0?l=0:l>100&&(l=100);const r=this.duration/100*l;s.innerText=We.formatTime(r);const c=null===(t=this.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(r)));c&&s.insertAdjacentHTML(\"afterbegin\",`${c.label}
`),s.style.left=`${l}%`,R(e)&&[\"mouseenter\",\"mouseleave\"].includes(e.type)&&a(\"mouseenter\"===e.type)},timeUpdate(e){const t=!H(this.elements.display.duration)&&this.config.invertTime;We.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&\"timeupdate\"===e.type&&this.media.seeking||We.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return ae(this.elements.display.currentTime,!0),void ae(this.elements.progress,!0);H(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute(\"aria-valuemax\",this.duration);const e=H(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&We.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&We.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&We.setMarkers.call(this),We.updateSeekTooltip.call(this)},toggleMenuButton(e,t){ae(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if(\"captions\"===e)n=this.currentTrack;else{if(n=W(i)?this[e]:i,W(n)&&(n=this.config[e].default),!W(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(H(a)||(a=s&&s.querySelector('[role=\"menu\"]')),!H(a))return;this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=We.getLabel.call(this,e,n);const l=a&&a.querySelector(`[value=\"${n}\"]`);H(l)&&(l.checked=!0)},getLabel(e,t){switch(e){case\"speed\":return 1===t?He.get(\"normal\",this.config):`${t}×`;case\"quality\":if($(t)){const e=He.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return Oe(t);case\"captions\":return Ye.getLabel.call(this);default:return null}},setQualityMenu(e){if(!H(this.elements.settings.panels.quality))return;const t=\"quality\",i=this.elements.settings.panels.quality.querySelector('[role=\"menu\"]');D(e)&&(this.options.quality=Ce(e).filter((e=>this.config.quality.options.includes(e))));const s=!W(this.options.quality)&&this.options.quality.length>1;if(We.toggleMenuButton.call(this,t,s),ie(i),We.checkMenu.call(this),!s)return;const n=e=>{const t=He.get(`qualityBadge.${e}`,this.config);return t.length?We.createBadge.call(this,t):null};this.options.quality.sort(((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1})).forEach((e=>{We.createMenuItem.call(this,{value:e,list:i,type:t,title:We.getLabel.call(this,\"quality\",e),badge:n(e)})})),We.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!H(this.elements.settings.panels.captions))return;const e=\"captions\",t=this.elements.settings.panels.captions.querySelector('[role=\"menu\"]'),i=Ye.getTracks.call(this),s=Boolean(i.length);if(We.toggleMenuButton.call(this,e,s),ie(t),We.checkMenu.call(this),!s)return;const n=i.map(((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:Ye.getLabel.call(this,e),badge:e.language&&We.createBadge.call(this,e.language.toUpperCase()),list:t,type:\"language\"})));n.unshift({value:-1,checked:!this.captions.toggled,title:He.get(\"disabled\",this.config),list:t,type:\"language\"}),n.forEach(We.createMenuItem.bind(this)),We.updateSetting.call(this,e,t)},setSpeedMenu(){if(!H(this.elements.settings.panels.speed))return;const e=\"speed\",t=this.elements.settings.panels.speed.querySelector('[role=\"menu\"]');this.options.speed=this.options.speed.filter((e=>e>=this.minimumSpeed&&e<=this.maximumSpeed));const i=!W(this.options.speed)&&this.options.speed.length>1;We.toggleMenuButton.call(this,e,i),ie(t),We.checkMenu.call(this),i&&(this.options.speed.forEach((i=>{We.createMenuItem.call(this,{value:i,list:t,type:e,title:We.getLabel.call(this,\"speed\",i)})})),We.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!W(e)&&Object.values(e).some((e=>!e.hidden));ae(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;H(i)||(i=Object.values(this.elements.settings.panels).find((e=>!e.hidden)));const s=i.querySelector('[role^=\"menuitem\"]');ue.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!H(t)||!H(i))return;const{hidden:s}=t;let n=s;if(O(e))n=e;else if(F(e)&&\"Escape\"===e.key)n=!1;else if(R(e)){const s=j(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute(\"aria-expanded\",n),ae(t,!n),le(this.elements.container,this.config.classNames.menu.open,n),n&&F(e)?We.focusFirstMenuItem.call(this,null,!0):n||s||ue.call(this,i,F(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position=\"absolute\",t.style.opacity=0,t.removeAttribute(\"hidden\"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return te(t),{width:i,height:s}},showMenuPanel(e=\"\",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!H(i))return;const s=i.parentNode,n=Array.from(s.children).find((e=>!e.hidden));if(me.transitions&&!me.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=We.getMenuSize.call(this,i),t=e=>{e.target===s&&[\"width\",\"height\"].includes(e.propertyName)&&(s.style.width=\"\",s.style.height=\"\",be.call(this,s,z,t))};fe.call(this,s,z,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}ae(n,!0),ae(i,!1),We.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;H(e)&&e.setAttribute(\"href\",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:l,setSpeedMenu:o,showMenuPanel:r}=We;this.elements.controls=null,D(this.config.controls)&&this.config.controls.includes(\"play-large\")&&this.elements.container.appendChild(i.call(this,\"play-large\"));const c=Z(\"div\",ne(this.config.selectors.controls.wrapper));this.elements.controls=c;const h={class:\"plyr__controls__item\"};return Ce(D(this.config.controls)?this.config.controls:[]).forEach((l=>{if(\"restart\"===l&&c.appendChild(i.call(this,\"restart\",h)),\"rewind\"===l&&c.appendChild(i.call(this,\"rewind\",h)),\"play\"===l&&c.appendChild(i.call(this,\"play\",h)),\"fast-forward\"===l&&c.appendChild(i.call(this,\"fast-forward\",h)),\"progress\"===l){const t=Z(\"div\",{class:`${h.class} plyr__progress__container`}),i=Z(\"div\",ne(this.config.selectors.progress));if(i.appendChild(n.call(this,\"seek\",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,\"buffer\")),this.config.tooltips.seek){const e=Z(\"span\",{class:this.config.classNames.tooltip},\"00:00\");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if(\"current-time\"===l&&c.appendChild(a.call(this,\"currentTime\",h)),\"duration\"===l&&c.appendChild(a.call(this,\"duration\",h)),\"mute\"===l||\"volume\"===l){let{volume:t}=this.elements;if(H(t)&&c.contains(t)||(t=Z(\"div\",X({},h,{class:`${h.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),\"mute\"===l&&t.appendChild(i.call(this,\"mute\")),\"volume\"===l&&!Y.isIos){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,\"volume\",X(i,{id:`plyr-volume-${e.id}`})))}}if(\"captions\"===l&&c.appendChild(i.call(this,\"captions\",h)),\"settings\"===l&&!W(this.config.settings)){const s=Z(\"div\",X({},h,{class:`${h.class} plyr__menu`.trim(),hidden:\"\"}));s.appendChild(i.call(this,\"settings\",{\"aria-haspopup\":!0,\"aria-controls\":`plyr-settings-${e.id}`,\"aria-expanded\":!1}));const n=Z(\"div\",{class:\"plyr__menu__container\",id:`plyr-settings-${e.id}`,hidden:\"\"}),a=Z(\"div\"),l=Z(\"div\",{id:`plyr-settings-${e.id}-home`}),o=Z(\"div\",{role:\"menu\"});l.appendChild(o),a.appendChild(l),this.elements.settings.panels.home=l,this.config.settings.forEach((i=>{const s=Z(\"button\",X(ne(this.config.selectors.buttons.settings),{type:\"button\",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:\"menuitem\",\"aria-haspopup\":!0,hidden:\"\"}));t.call(this,s,i),fe.call(this,s,\"click\",(()=>{r.call(this,i,!1)}));const n=Z(\"span\",null,He.get(i,this.config)),l=Z(\"span\",{class:this.config.classNames.menu.value});l.innerHTML=e[i],n.appendChild(l),s.appendChild(n),o.appendChild(s);const c=Z(\"div\",{id:`plyr-settings-${e.id}-${i}`,hidden:\"\"}),h=Z(\"button\",{type:\"button\",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});h.appendChild(Z(\"span\",{\"aria-hidden\":!0},He.get(i,this.config))),h.appendChild(Z(\"span\",{class:this.config.classNames.hidden},He.get(\"menuBack\",this.config))),fe.call(this,c,\"keydown\",(e=>{\"ArrowLeft\"===e.key&&(e.preventDefault(),e.stopPropagation(),r.call(this,\"home\",!0))}),!1),fe.call(this,h,\"click\",(()=>{r.call(this,\"home\",!1)})),c.appendChild(h),c.appendChild(Z(\"div\",{role:\"menu\"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c})),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if(\"pip\"===l&&me.pip&&c.appendChild(i.call(this,\"pip\",h)),\"airplay\"===l&&me.airplay&&c.appendChild(i.call(this,\"airplay\",h)),\"download\"===l){const e=X({},h,{element:\"a\",href:this.download,target:\"_blank\"});this.isHTML5&&(e.download=\"\");const{download:t}=this.config.urls;!U(t)&&this.isEmbed&&X(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,\"download\",e))}\"fullscreen\"===l&&c.appendChild(i.call(this,\"fullscreen\",h))})),this.isHTML5&&l.call(this,Le.getQualityOptions.call(this)),o.call(this),c},inject(){if(this.config.loadSprite){const e=We.getIconUrl.call(this);e.cors&&Ve(e.url,\"sprite-plyr\")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;j(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),H(this.config.controls)||_(this.config.controls)?e=this.config.controls:(e=We.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:Ye.getLabel.call(this)}),i=!1);let s;i&&_(this.config.controls)&&(e=(e=>{let i=e;return Object.entries(t).forEach((([e,t])=>{i=_e(i,`{${e}}`,t)})),i})(e)),_(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),H(s)||(s=this.elements.container);if(s[H(e)?\"insertAdjacentElement\":\"insertAdjacentHTML\"](\"afterbegin\",e),H(this.elements.controls)||We.findElements.call(this),!W(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;Object.defineProperty(e,\"pressed\",{enumerable:!0,get:()=>oe(e,t),set(i=!1){le(e,t,i)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((t=>{D(t)||q(t)?Array.from(t).filter(Boolean).forEach(e):e(t)}))}if(Y.isEdge&&K(s),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=ce.call(this,i);Array.from(s).forEach((e=>{le(e,this.config.classNames.hidden,!1),le(e,this.config.classNames.tooltip,!0)}))}},setMediaMetadata(){try{\"mediaSession\"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch(e){}},setMarkers(){var e,t;if(!this.duration||this.elements.markers)return;const i=null===(e=this.config.markers)||void 0===e||null===(t=e.points)||void 0===t?void 0:t.filter((({time:e})=>e>0&&ele(a,l,e);i.forEach((e=>{const t=Z(\"span\",{class:this.config.classNames.marker},\"\"),i=e.time/this.duration*100+\"%\";a&&(t.addEventListener(\"mouseenter\",(()=>{e.label||(a.style.left=i,a.innerHTML=e.label,o(!0))})),t.addEventListener(\"mouseleave\",(()=>{o(!1)}))),t.addEventListener(\"click\",(()=>{this.currentTime=e.time})),t.style.left=i,n.appendChild(t)})),s.appendChild(n),this.config.tooltips.seek||(a=Z(\"span\",{class:this.config.classNames.tooltip},\"\"),s.appendChild(a)),this.elements.markers={points:n,tip:a},this.elements.progress.appendChild(s)}};function ze(e,t=!0){let i=e;if(t){const e=document.createElement(\"a\");e.href=i,i=e.href}try{return new URL(i)}catch(e){return null}}function Ke(e){const t=new URLSearchParams;return L(e)&&Object.entries(e).forEach((([e,i])=>{t.set(e,i)})),t}const Ye={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!me.textTracks)return void(D(this.config.controls)&&this.config.controls.includes(\"settings\")&&this.config.settings.includes(\"captions\")&&We.setCaptionsMenu.call(this));var e,t;if(H(this.elements.captions)||(this.elements.captions=Z(\"div\",ne(this.config.selectors.captions)),e=this.elements.captions,t=this.elements.wrapper,H(e)&&H(t)&&t.parentNode.insertBefore(e,t.nextSibling)),Y.isIE&&window.URL){const e=this.media.querySelectorAll(\"track\");Array.from(e).forEach((e=>{const t=e.getAttribute(\"src\"),i=ze(t);null!==i&&i.hostname!==window.location.href.hostname&&[\"http:\",\"https:\"].includes(i.protocol)&&Fe(t,\"blob\").then((t=>{e.setAttribute(\"src\",window.URL.createObjectURL(t))})).catch((()=>{te(e)}))}))}const i=Ce((navigator.languages||[navigator.language||navigator.userLanguage||\"en\"]).map((e=>e.split(\"-\")[0])));let s=(this.storage.get(\"language\")||this.config.captions.language||\"auto\").toLowerCase();\"auto\"===s&&([s]=i);let n=this.storage.get(\"captions\");if(O(n)||({active:n}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:n,language:s,languages:i}),this.isHTML5){const e=this.config.captions.update?\"addtrack removetrack\":\"removetrack\";fe.call(this,this.media.textTracks,e,Ye.update.bind(this))}setTimeout(Ye.update.bind(this),0)},update(){const e=Ye.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find((e=>e.language===i)));this.isHTML5&&this.isVideo&&e.filter((e=>!s.get(e))).forEach((e=>{this.debug.log(\"Track added\",e),s.set(e,{default:\"showing\"===e.mode}),\"showing\"===e.mode&&(e.mode=\"hidden\"),fe.call(this,e,\"cuechange\",(()=>Ye.updateCues.call(this)))})),(a&&this.language!==i||!e.includes(n))&&(Ye.setLanguage.call(this,i),Ye.toggle.call(this,t&&a)),this.elements&&le(this.elements.container,this.config.classNames.captions.enabled,!W(e)),D(this.config.controls)&&this.config.controls.includes(\"settings\")&&this.config.settings.includes(\"captions\")&&We.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=I(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=Ye.getTracks.call(this),t=Ye.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void Ye.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),le(this.elements.container,s,n),this.captions.toggled=n,We.updateSetting.call(this,\"captions\"),ve.call(this,this.media,n?\"captionsenabled\":\"captionsdisabled\")}setTimeout((()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode=\"hidden\")}))},set(e,t=!0){const i=Ye.getTracks.call(this);if(-1!==e)if($(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,We.updateSetting.call(this,\"captions\"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),ve.call(this,this.media,\"languagechange\")}Ye.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&Ye.updateCues.call(this)}else this.debug.warn(\"Track not found\",e);else this.debug.warn(\"Invalid caption argument\",e);else Ye.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!_(e))return void this.debug.warn(\"Invalid language argument\",e);const i=e.toLowerCase();this.captions.language=i;const s=Ye.getTracks.call(this),n=Ye.findTrack.call(this,[i]);Ye.set.call(this,s.indexOf(n),t)},getTracks(e=!1){return Array.from((this.media||{}).textTracks||[]).filter((t=>!this.isHTML5||e||this.captions.meta.has(t))).filter((e=>[\"captions\",\"subtitles\"].includes(e.kind)))},findTrack(e,t=!1){const i=Ye.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort(((e,t)=>s(t)-s(e)));let a;return e.every((e=>(a=n.find((t=>t.language===e)),!a))),a||(t?n[0]:void 0)},getCurrentTrack(){return Ye.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!V(t)&&me.textTracks&&this.captions.toggled&&(t=Ye.getCurrentTrack.call(this)),V(t)?W(t.label)?W(t.language)?He.get(\"enabled\",this.config):e.language.toUpperCase():t.label:He.get(\"disabled\",this.config)},updateCues(e){if(!this.supported.ui)return;if(!H(this.elements.captions))return void this.debug.warn(\"No captions element to render to\");if(!I(e)&&!Array.isArray(e))return void this.debug.warn(\"updateCues: Invalid input\",e);let t=e;if(!t){const e=Ye.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map((e=>e.getCueAsHTML())).map(De)}const i=t.map((e=>e.trim())).join(\"\\n\");if(i!==this.elements.captions.innerHTML){ie(this.elements.captions);const e=Z(\"span\",ne(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),ve.call(this,this.media,\"cuechange\")}}},Qe={enabled:!0,title:\"\",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:\"plyr\",iconUrl:\"https://cdn.plyr.io/3.7.2/plyr.svg\",blankVideo:\"https://cdn.plyr.io/static/blank.mp4\",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:\"auto\",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:\"plyr\"},controls:[\"play-large\",\"play\",\"progress\",\"current-time\",\"mute\",\"volume\",\"captions\",\"settings\",\"pip\",\"airplay\",\"fullscreen\"],settings:[\"captions\",\"quality\",\"speed\"],i18n:{restart:\"Restart\",rewind:\"Rewind {seektime}s\",play:\"Play\",pause:\"Pause\",fastForward:\"Forward {seektime}s\",seek:\"Seek\",seekLabel:\"{currentTime} of {duration}\",played:\"Played\",buffered:\"Buffered\",currentTime:\"Current time\",duration:\"Duration\",volume:\"Volume\",mute:\"Mute\",unmute:\"Unmute\",enableCaptions:\"Enable captions\",disableCaptions:\"Disable captions\",download:\"Download\",enterFullscreen:\"Enter fullscreen\",exitFullscreen:\"Exit fullscreen\",frameTitle:\"Player for {title}\",captions:\"Captions\",settings:\"Settings\",pip:\"PIP\",menuBack:\"Go back to previous menu\",speed:\"Speed\",normal:\"Normal\",quality:\"Quality\",loop:\"Loop\",start:\"Start\",end:\"End\",all:\"All\",reset:\"Reset\",disabled:\"Disabled\",enabled:\"Enabled\",advertisement:\"Ad\",qualityBadge:{2160:\"4K\",1440:\"HD\",1080:\"HD\",720:\"HD\",576:\"SD\",480:\"SD\"}},urls:{download:null,vimeo:{sdk:\"https://player.vimeo.com/api/player.js\",iframe:\"https://player.vimeo.com/video/{0}?{1}\",api:\"https://vimeo.com/api/oembed.json?url={0}\"},youtube:{sdk:\"https://www.youtube.com/iframe_api\",api:\"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}\"},googleIMA:{sdk:\"https://imasdk.googleapis.com/js/sdkloader/ima3.js\"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:[\"ended\",\"progress\",\"stalled\",\"playing\",\"waiting\",\"canplay\",\"canplaythrough\",\"loadstart\",\"loadeddata\",\"loadedmetadata\",\"timeupdate\",\"volumechange\",\"play\",\"pause\",\"error\",\"seeking\",\"seeked\",\"emptied\",\"ratechange\",\"cuechange\",\"download\",\"enterfullscreen\",\"exitfullscreen\",\"captionsenabled\",\"captionsdisabled\",\"languagechange\",\"controlshidden\",\"controlsshown\",\"ready\",\"statechange\",\"qualitychange\",\"adsloaded\",\"adscontentpause\",\"adscontentresume\",\"adstarted\",\"adsmidpoint\",\"adscomplete\",\"adsallcomplete\",\"adsimpression\",\"adsclick\"],selectors:{editable:\"input, textarea, select, [contenteditable]\",container:\".plyr\",controls:{container:null,wrapper:\".plyr__controls\"},labels:\"[data-plyr]\",buttons:{play:'[data-plyr=\"play\"]',pause:'[data-plyr=\"pause\"]',restart:'[data-plyr=\"restart\"]',rewind:'[data-plyr=\"rewind\"]',fastForward:'[data-plyr=\"fast-forward\"]',mute:'[data-plyr=\"mute\"]',captions:'[data-plyr=\"captions\"]',download:'[data-plyr=\"download\"]',fullscreen:'[data-plyr=\"fullscreen\"]',pip:'[data-plyr=\"pip\"]',airplay:'[data-plyr=\"airplay\"]',settings:'[data-plyr=\"settings\"]',loop:'[data-plyr=\"loop\"]'},inputs:{seek:'[data-plyr=\"seek\"]',volume:'[data-plyr=\"volume\"]',speed:'[data-plyr=\"speed\"]',language:'[data-plyr=\"language\"]',quality:'[data-plyr=\"quality\"]'},display:{currentTime:\".plyr__time--current\",duration:\".plyr__time--duration\",buffer:\".plyr__progress__buffer\",loop:\".plyr__progress__loop\",volume:\".plyr__volume--display\"},progress:\".plyr__progress\",captions:\".plyr__captions\",caption:\".plyr__caption\"},classNames:{type:\"plyr--{0}\",provider:\"plyr--{0}\",video:\"plyr__video-wrapper\",embed:\"plyr__video-embed\",videoFixedRatio:\"plyr__video-wrapper--fixed-ratio\",embedContainer:\"plyr__video-embed__container\",poster:\"plyr__poster\",posterEnabled:\"plyr__poster-enabled\",ads:\"plyr__ads\",control:\"plyr__control\",controlPressed:\"plyr__control--pressed\",playing:\"plyr--playing\",paused:\"plyr--paused\",stopped:\"plyr--stopped\",loading:\"plyr--loading\",hover:\"plyr--hover\",tooltip:\"plyr__tooltip\",cues:\"plyr__cues\",marker:\"plyr__progress__marker\",hidden:\"plyr__sr-only\",hideControls:\"plyr--hide-controls\",isIos:\"plyr--is-ios\",isTouch:\"plyr--is-touch\",uiSupported:\"plyr--full-ui\",noTransition:\"plyr--no-transition\",display:{time:\"plyr__time\"},menu:{value:\"plyr__menu__value\",badge:\"plyr__badge\",open:\"plyr--menu-open\"},captions:{enabled:\"plyr--captions-enabled\",active:\"plyr--captions-active\"},fullscreen:{enabled:\"plyr--fullscreen-enabled\",fallback:\"plyr--fullscreen-fallback\"},pip:{supported:\"plyr--pip-supported\",active:\"plyr--pip-active\"},airplay:{supported:\"plyr--airplay-supported\",active:\"plyr--airplay-active\"},tabFocus:\"plyr__tab-focus\",previewThumbnails:{thumbContainer:\"plyr__preview-thumb\",thumbContainerShown:\"plyr__preview-thumb--is-shown\",imageContainer:\"plyr__preview-thumb__image-container\",timeContainer:\"plyr__preview-thumb__time-container\",scrubbingContainer:\"plyr__preview-scrubbing\",scrubbingContainerShown:\"plyr__preview-scrubbing--is-shown\"}},attributes:{embed:{provider:\"data-plyr-provider\",id:\"data-plyr-embed-id\",hash:\"data-plyr-embed-hash\"}},ads:{enabled:!1,publisherId:\"\",tagUrl:\"\"},previewThumbnails:{enabled:!1,src:\"\"},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:\"\",artist:\"\",album:\"\",artwork:[]},markers:{enabled:!1,points:[]}},Xe=\"picture-in-picture\",Je=\"inline\",Ge={html5:\"html5\",youtube:\"youtube\",vimeo:\"vimeo\"},Ze=\"audio\",et=\"video\";const tt=()=>{};class it{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log(\"Debugging enabled\")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):tt}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):tt}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):tt}}class st{constructor(t){e(this,\"onChange\",(()=>{if(!this.enabled)return;const e=this.player.elements.buttons.fullscreen;H(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;ve.call(this.player,t,this.active?\"enterfullscreen\":\"exitfullscreen\",!0)})),e(this,\"toggleFallback\",((e=!1)=>{if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?\"hidden\":\"\",le(this.target,this.player.config.classNames.fullscreen.fallback,e),Y.isIos){let t=document.head.querySelector('meta[name=\"viewport\"]');const i=\"viewport-fit=cover\";t||(t=document.createElement(\"meta\"),t.setAttribute(\"name\",\"viewport\"));const s=_(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(\",\").filter((e=>e.trim()!==i)).join(\",\"))}this.onChange()})),e(this,\"trapFocus\",(e=>{if(Y.isIos||!this.active||\"Tab\"!==e.key)return;const t=document.activeElement,i=ce.call(this.player,\"a[href], button:not(:disabled), input:not(:disabled), [tabindex]\"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())})),e(this,\"update\",(()=>{if(this.enabled){let e;e=this.forceFallback?\"Fallback (forced)\":st.native?\"Native\":\"Fallback\",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log(\"Fullscreen not supported and fallback disabled\");le(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)})),e(this,\"enter\",(()=>{this.enabled&&(Y.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!st.native||this.forceFallback?this.toggleFallback(!0):this.prefix?W(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:\"hide\"}))})),e(this,\"exit\",(()=>{if(this.enabled)if(Y.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),ke(this.player.play());else if(!st.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!W(this.prefix)){const e=\"moz\"===this.prefix?\"Cancel\":\"Exit\";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)})),e(this,\"toggle\",(()=>{this.active?this.exit():this.enter()})),this.player=t,this.prefix=st.prefix,this.property=st.property,this.scrollPosition={x:0,y:0},this.forceFallback=\"force\"===t.config.fullscreen.fallback,this.player.elements.fullscreen=t.config.fullscreen.container&&function(e,t){const{prototype:i}=Element;return(i.closest||function(){let e=this;do{if(re.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,t.config.fullscreen.container),fe.call(this.player,document,\"ms\"===this.prefix?\"MSFullscreenChange\":`${this.prefix}fullscreenchange`,(()=>{this.onChange()})),fe.call(this.player,this.player.elements.container,\"dblclick\",(e=>{H(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,\"fullscreen\")})),fe.call(this,this.player.elements.container,\"keydown\",(e=>this.trapFocus(e))),this.update()}static get native(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get usingNative(){return st.native&&!this.forceFallback}static get prefix(){if(j(document.exitFullscreen))return\"\";let e=\"\";return[\"webkit\",\"moz\",\"ms\"].some((t=>!(!j(document[`${t}ExitFullscreen`])&&!j(document[`${t}CancelFullScreen`]))&&(e=t,!0))),e}static get property(){return\"moz\"===this.prefix?\"FullScreen\":\"Fullscreen\"}get enabled(){return(st.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}get active(){if(!this.enabled)return!1;if(!st.native||this.forceFallback)return oe(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return Y.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}function nt(e,t=1){return new Promise(((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})}))}const at={addStyleHook(){le(this.elements.container,this.config.selectors.container.replace(\".\",\"\"),!0),le(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute(\"controls\",\"\"):this.media.removeAttribute(\"controls\")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void at.toggleNativeControls.call(this,!0);H(this.elements.controls)||(We.inject.call(this),this.listeners.controls()),at.toggleNativeControls.call(this),this.isHTML5&&Ye.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,We.updateVolume.call(this),We.timeUpdate.call(this),We.durationUpdate.call(this),at.checkPlaying.call(this),le(this.elements.container,this.config.classNames.pip.supported,me.pip&&this.isHTML5&&this.isVideo),le(this.elements.container,this.config.classNames.airplay.supported,me.airplay&&this.isHTML5),le(this.elements.container,this.config.classNames.isIos,Y.isIos),le(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((()=>{ve.call(this,this.media,\"ready\")}),0),at.setTitle.call(this),this.poster&&at.setPoster.call(this,this.poster,!1).catch((()=>{})),this.config.duration&&We.durationUpdate.call(this),this.config.mediaMetadata&&We.setMediaMetadata.call(this)},setTitle(){let e=He.get(\"play\",this.config);if(_(this.config.title)&&!W(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach((t=>{t.setAttribute(\"aria-label\",e)})),this.isEmbed){const e=he.call(this,\"iframe\");if(!H(e))return;const t=W(this.config.title)?\"video\":this.config.title,i=He.get(\"frameTitle\",this.config);e.setAttribute(\"title\",i.replace(\"{title}\",t))}},togglePoster(e){le(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error(\"Poster already set\")):(this.media.setAttribute(\"data-poster\",e),this.elements.poster.removeAttribute(\"hidden\"),Te.call(this).then((()=>nt(e))).catch((t=>{throw e===this.poster&&at.togglePoster.call(this,!1),t})).then((()=>{if(e!==this.poster)throw new Error(\"setPoster cancelled by later call to setPoster\")})).then((()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:\"\"}),at.togglePoster.call(this,!0),e))))},checkPlaying(e){le(this.elements.container,this.config.classNames.playing,this.playing),le(this.elements.container,this.config.classNames.paused,this.paused),le(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute(\"aria-label\",He.get(this.playing?\"pause\":\"play\",this.config))})),R(e)&&\"timeupdate\"===e.type||at.toggleControls.call(this)},checkLoading(e){this.loading=[\"stalled\",\"waiting\"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((()=>{le(this.elements.container,this.config.classNames.loading,this.loading),at.toggleControls.call(this)}),this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter((e=>!W(e)&&_(e)&&e.startsWith(\"--plyr\"))).forEach((e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)})),W(this.media.style)&&this.media.removeAttribute(\"style\")}};class lt{constructor(t){e(this,\"firstTouch\",(()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,le(t.container,e.config.classNames.isTouch,!0)})),e(this,\"setTabFocus\",(e=>{const{player:t}=this,{elements:i}=t,{key:s,type:n,timeStamp:a}=e;if(clearTimeout(this.focusTimer),\"keydown\"===n&&\"Tab\"!==s)return;\"keydown\"===n&&(this.lastKeyDown=a);const l=a-this.lastKeyDown<=20;(\"focus\"!==n||l)&&((()=>{const e=t.config.classNames.tabFocus;le(ce.call(t,`.${e}`),e,!1)})(),\"focusout\"!==n&&(this.focusTimer=setTimeout((()=>{const e=document.activeElement;i.container.contains(e)&&le(document.activeElement,t.config.classNames.tabFocus,!0)}),10)))})),e(this,\"global\",((e=!0)=>{const{player:t}=this;t.config.keyboard.global&&ge.call(t,window,\"keydown keyup\",this.handleKey,e,!1),ge.call(t,document.body,\"click\",this.toggleMenu,e),ye.call(t,document.body,\"touchstart\",this.firstTouch),ge.call(t,document.body,\"keydown focus blur focusout\",this.setTabFocus,e,!1,!0)})),e(this,\"container\",(()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&fe.call(e,i.container,\"keydown keyup\",this.handleKey,!1),fe.call(e,i.container,\"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen\",(t=>{const{controls:n}=i;n&&\"enterfullscreen\"===t.type&&(n.pressed=!1,n.hover=!1);let a=0;[\"touchstart\",\"touchmove\",\"mousemove\"].includes(t.type)&&(at.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),a)}));const n=()=>{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=Ne.call(e),l=Se(`aspect-ratio: ${n} / ${a}`);if(!s)return void(l?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[o,r]=[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)],c=o/r>n/a;l?(t.style.width=c?\"auto\":\"100%\",t.style.height=c?\"100%\":\"auto\"):(t.style.maxWidth=c?r/a*n+\"px\":null,t.style.margin=c?\"0 auto\":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};fe.call(e,i.container,\"enterfullscreen exitfullscreen\",(t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&W(e.config.ratio))return;n();(\"enterfullscreen\"===t.type?fe:be).call(e,window,\"resize\",a)}))})),e(this,\"media\",(()=>{const{player:e}=this,{elements:t}=e;if(fe.call(e,e.media,\"timeupdate seeking seeked\",(t=>We.timeUpdate.call(e,t))),fe.call(e,e.media,\"durationchange loadeddata loadedmetadata\",(t=>We.durationUpdate.call(e,t))),fe.call(e,e.media,\"ended\",(()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())})),fe.call(e,e.media,\"progress playing seeking seeked\",(t=>We.updateProgress.call(e,t))),fe.call(e,e.media,\"volumechange\",(t=>We.updateVolume.call(e,t))),fe.call(e,e.media,\"playing play pause ended emptied timeupdate\",(t=>at.checkPlaying.call(e,t))),fe.call(e,e.media,\"waiting canplay seeked playing\",(t=>at.checkLoading.call(e,t))),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=he.call(e,`.${e.config.classNames.video}`);if(!H(i))return;fe.call(e,t.container,\"click\",(s=>{([t.container,i].includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,\"restart\"),this.proxy(s,(()=>{ke(e.play())}),\"play\")):this.proxy(s,(()=>{ke(e.togglePlay())}),\"play\")))}))}e.supported.ui&&e.config.disableContextMenu&&fe.call(e,t.wrapper,\"contextmenu\",(e=>{e.preventDefault()}),!1),fe.call(e,e.media,\"volumechange\",(()=>{e.storage.set({volume:e.volume,muted:e.muted})})),fe.call(e,e.media,\"ratechange\",(()=>{We.updateSetting.call(e,\"speed\"),e.storage.set({speed:e.speed})})),fe.call(e,e.media,\"qualitychange\",(t=>{We.updateSetting.call(e,\"quality\",null,t.detail.quality)})),fe.call(e,e.media,\"ready qualitychange\",(()=>{We.setDownloadUrl.call(e)}));const i=e.config.events.concat([\"keyup\",\"keydown\"]).join(\" \");fe.call(e,e.media,i,(i=>{let{detail:s={}}=i;\"error\"===i.type&&(s=e.media.error),ve.call(e,t.container,i.type,!0,s)}))})),e(this,\"proxy\",((e,t,i)=>{const{player:s}=this,n=s.config.listeners[i];let a=!0;j(n)&&(a=n.call(s,e)),!1!==a&&j(t)&&t.call(s,e)})),e(this,\"bind\",((e,t,i,s,n=!0)=>{const{player:a}=this,l=a.config.listeners[s],o=j(l);fe.call(a,e,t,(e=>this.proxy(e,i,s)),n&&!o)})),e(this,\"controls\",(()=>{const{player:e}=this,{elements:t}=e,i=Y.isIE?\"change\":\"input\";if(t.buttons.play&&Array.from(t.buttons.play).forEach((t=>{this.bind(t,\"click\",(()=>{ke(e.togglePlay())}),\"play\")})),this.bind(t.buttons.restart,\"click\",e.restart,\"restart\"),this.bind(t.buttons.rewind,\"click\",(()=>{e.lastSeekTime=Date.now(),e.rewind()}),\"rewind\"),this.bind(t.buttons.fastForward,\"click\",(()=>{e.lastSeekTime=Date.now(),e.forward()}),\"fastForward\"),this.bind(t.buttons.mute,\"click\",(()=>{e.muted=!e.muted}),\"mute\"),this.bind(t.buttons.captions,\"click\",(()=>e.toggleCaptions())),this.bind(t.buttons.download,\"click\",(()=>{ve.call(e,e.media,\"download\")}),\"download\"),this.bind(t.buttons.fullscreen,\"click\",(()=>{e.fullscreen.toggle()}),\"fullscreen\"),this.bind(t.buttons.pip,\"click\",(()=>{e.pip=\"toggle\"}),\"pip\"),this.bind(t.buttons.airplay,\"click\",e.airplay,\"airplay\"),this.bind(t.buttons.settings,\"click\",(t=>{t.stopPropagation(),t.preventDefault(),We.toggleMenu.call(e,t)}),null,!1),this.bind(t.buttons.settings,\"keyup\",(t=>{[\"Space\",\"Enter\"].includes(t.key)&&(\"Enter\"!==t.key?(t.preventDefault(),t.stopPropagation(),We.toggleMenu.call(e,t)):We.focusFirstMenuItem.call(e,null,!0))}),null,!1),this.bind(t.settings.menu,\"keydown\",(t=>{\"Escape\"===t.key&&We.toggleMenu.call(e,t)})),this.bind(t.inputs.seek,\"mousedown mousemove\",(e=>{const i=t.progress.getBoundingClientRect(),s=100/i.width*(e.pageX-i.left);e.currentTarget.setAttribute(\"seek-value\",s)})),this.bind(t.inputs.seek,\"mousedown mouseup keydown keyup touchstart touchend\",(t=>{const i=t.currentTarget,s=\"play-on-seeked\";if(F(t)&&![\"ArrowLeft\",\"ArrowRight\"].includes(t.key))return;e.lastSeekTime=Date.now();const n=i.hasAttribute(s),a=[\"mouseup\",\"touchend\",\"keyup\"].includes(t.type);n&&a?(i.removeAttribute(s),ke(e.play())):!a&&e.playing&&(i.setAttribute(s,\"\"),e.pause())})),Y.isIos){const t=ce.call(e,'input[type=\"range\"]');Array.from(t).forEach((e=>this.bind(e,i,(e=>K(e.target)))))}this.bind(t.inputs.seek,i,(t=>{const i=t.currentTarget;let s=i.getAttribute(\"seek-value\");W(s)&&(s=i.value),i.removeAttribute(\"seek-value\"),e.currentTime=s/i.max*e.duration}),\"seek\"),this.bind(t.progress,\"mouseenter mouseleave mousemove\",(t=>We.updateSeekTooltip.call(e,t))),this.bind(t.progress,\"mousemove touchmove\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)})),this.bind(t.progress,\"mouseleave touchend click\",(()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)})),this.bind(t.progress,\"mousedown touchstart\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)})),this.bind(t.progress,\"mouseup touchend\",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)})),Y.isWebkit&&Array.from(ce.call(e,'input[type=\"range\"]')).forEach((t=>{this.bind(t,\"input\",(t=>We.updateRangeFill.call(e,t.target)))})),e.config.toggleInvert&&!H(t.display.duration)&&this.bind(t.display.currentTime,\"click\",(()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,We.timeUpdate.call(e))})),this.bind(t.inputs.volume,i,(t=>{e.volume=t.target.value}),\"volume\"),this.bind(t.controls,\"mouseenter mouseleave\",(i=>{t.controls.hover=!e.touch&&\"mouseenter\"===i.type})),t.fullscreen&&Array.from(t.fullscreen.children).filter((e=>!e.contains(t.container))).forEach((i=>{this.bind(i,\"mouseenter mouseleave\",(i=>{t.controls&&(t.controls.hover=!e.touch&&\"mouseenter\"===i.type)}))})),this.bind(t.controls,\"mousedown mouseup touchstart touchend touchcancel\",(e=>{t.controls.pressed=[\"mousedown\",\"touchstart\"].includes(e.type)})),this.bind(t.controls,\"focusin\",(()=>{const{config:i,timers:s}=e;le(t.controls,i.classNames.noTransition,!0),at.toggleControls.call(e,!0),setTimeout((()=>{le(t.controls,i.classNames.noTransition,!1)}),0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout((()=>at.toggleControls.call(e,!1)),n)})),this.bind(t.inputs.volume,\"wheel\",(t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map((e=>i?-e:e)),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:l}=e.media;(1===a&&l<1||-1===a&&l>0)&&t.preventDefault()}),\"volume\",!1)})),this.player=t,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,{key:s,type:n,altKey:a,ctrlKey:l,metaKey:o,shiftKey:r}=e,c=\"keydown\"===n,h=c&&s===this.lastKey;if(a||l||o||r)return;if(!s)return;if(c){const n=document.activeElement;if(H(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&re(n,s))return;if(\"Space\"===e.key&&re(n,'button, [role^=\"menuitem\"]'))return}switch([\"Space\",\"ArrowLeft\",\"ArrowUp\",\"ArrowRight\",\"ArrowDown\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"c\",\"f\",\"k\",\"l\",\"m\"].includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case\"0\":case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":h||(u=parseInt(s,10),t.currentTime=t.duration/10*u);break;case\"Space\":case\"k\":h||ke(t.togglePlay());break;case\"ArrowUp\":t.increaseVolume(.1);break;case\"ArrowDown\":t.decreaseVolume(.1);break;case\"m\":h||(t.muted=!t.muted);break;case\"ArrowRight\":t.forward();break;case\"ArrowLeft\":t.rewind();break;case\"f\":t.fullscreen.toggle();break;case\"c\":h||t.toggleCaptions();break;case\"l\":t.loop=!t.loop}\"Escape\"===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null;var u}toggleMenu(e){We.toggleMenu.call(this.player,e)}}\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self&&self;var ot=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,l,o=[],r=e.length,c=r;for(n=function(e,i){i.length&&o.push(e),--c||t(o)};r--;)a=e[r],(l=i[a])?n(a,l):(s[a]=s[a]||[]).push(n)}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)for(;n.length;)n[0](e,t),n.splice(0,1)}}function l(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function o(t,i,s,n){var a,l,r=document,c=s.async,h=(s.numRetries||0)+1,u=s.before||e,d=t.replace(/[\\?|#].*$/,\"\"),m=t.replace(/^(css|img)!/,\"\");n=n||0,/(^css!|\\.css$)/.test(d)?((l=r.createElement(\"link\")).rel=\"stylesheet\",l.href=m,(a=\"hideFocus\"in l)&&l.relList&&(a=0,l.rel=\"preload\",l.as=\"style\")):/(^img!|\\.(png|gif|jpg|svg|webp)$)/.test(d)?(l=r.createElement(\"img\")).src=m:((l=r.createElement(\"script\")).src=t,l.async=void 0===c||c),l.onload=l.onerror=l.onbeforeload=function(e){var r=e.type[0];if(a)try{l.sheet.cssText.length||(r=\"e\")}catch(e){18!=e.code&&(r=\"e\")}if(\"e\"==r){if((n+=1){ot(e,{success:t,error:i})}))}function ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?\"play\":\"pause\"))}const ht={setup(){const e=this;le(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,xe.call(e),L(window.Vimeo)?ht.ready.call(e):rt(e.config.urls.vimeo.sdk).then((()=>{ht.ready.call(e)})).catch((t=>{e.debug.warn(\"Vimeo SDK (player.js) failed to load\",t)}))},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute(\"src\"),l=\"\";W(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),l=e.media.getAttribute(e.config.attributes.embed.hash)):l=function(e){const t=e.match(/^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*&*h=|\\/)+([\\d,a-f]+)/);return t&&5===t.length?t[4]:null}(a);const o=l?{h:l}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const r=Ke({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:\"media\",playsinline:!this.config.fullscreen.iosNative,...o,...n}),c=W(h=a)?null:$(Number(h))?h:h.match(/^.*(vimeo.com\\/|video\\/)(\\d+).*/)?RegExp.$2:h;var h;const u=Z(\"iframe\"),d=$e(e.config.urls.vimeo.iframe,c,r);if(u.setAttribute(\"src\",d),u.setAttribute(\"allowfullscreen\",\"\"),u.setAttribute(\"allow\",[\"autoplay\",\"fullscreen\",\"picture-in-picture\",\"encrypted-media\",\"accelerometer\",\"gyroscope\"].join(\"; \")),W(s)||u.setAttribute(\"referrerPolicy\",s),i||!t.customControls)u.setAttribute(\"data-poster\",e.poster),e.media=se(u,e.media);else{const t=Z(\"div\",{class:e.config.classNames.embedContainer,\"data-poster\":e.poster});t.appendChild(u),e.media=se(t,e.media)}t.customControls||Fe($e(e.config.urls.vimeo.api,d)).then((t=>{!W(t)&&t.thumbnail_url&&at.setPoster.call(e,t.thumbnail_url).catch((()=>{}))})),e.embed=new window.Vimeo.Player(u,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>(ct.call(e,!0),e.embed.play()),e.media.pause=()=>(ct.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:m}=e.media;Object.defineProperty(e.media,\"currentTime\",{get:()=>m,set(t){const{embed:i,media:s,paused:n,volume:a}=e,l=n&&!i.hasPlayed;s.seeking=!0,ve.call(e,s,\"seeking\"),Promise.resolve(l&&i.setVolume(0)).then((()=>i.setCurrentTime(t))).then((()=>l&&i.pause())).then((()=>l&&i.setVolume(a))).catch((()=>{}))}});let p=e.config.speed.selected;Object.defineProperty(e.media,\"playbackRate\",{get:()=>p,set(t){e.embed.setPlaybackRate(t).then((()=>{p=t,ve.call(e,e.media,\"ratechange\")})).catch((()=>{e.options.speed=[1]}))}});let{volume:g}=e.config;Object.defineProperty(e.media,\"volume\",{get:()=>g,set(t){e.embed.setVolume(t).then((()=>{g=t,ve.call(e,e.media,\"volumechange\")}))}});let{muted:f}=e.config;Object.defineProperty(e.media,\"muted\",{get:()=>f,set(t){const i=!!O(t)&&t;e.embed.setVolume(i?0:e.config.volume).then((()=>{f=i,ve.call(e,e.media,\"volumechange\")}))}});let b,{loop:y}=e.config;Object.defineProperty(e.media,\"loop\",{get:()=>y,set(t){const i=O(t)?t:e.config.loop.active;e.embed.setLoop(i).then((()=>{y=i}))}}),e.embed.getVideoUrl().then((t=>{b=t,We.setDownloadUrl.call(e)})).catch((e=>{this.debug.warn(e)})),Object.defineProperty(e.media,\"currentSrc\",{get:()=>b}),Object.defineProperty(e.media,\"ended\",{get:()=>e.currentTime===e.duration}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then((t=>{const[i,s]=t;e.embed.ratio=Ie(i,s),xe.call(this)})),e.embed.setAutopause(e.config.autopause).then((t=>{e.config.autopause=t})),e.embed.getVideoTitle().then((t=>{e.config.title=t,at.setTitle.call(this)})),e.embed.getCurrentTime().then((t=>{m=t,ve.call(e,e.media,\"timeupdate\")})),e.embed.getDuration().then((t=>{e.media.duration=t,ve.call(e,e.media,\"durationchange\")})),e.embed.getTextTracks().then((t=>{e.media.textTracks=t,Ye.setup.call(e)})),e.embed.on(\"cuechange\",(({cues:t=[]})=>{const i=t.map((e=>function(e){const t=document.createDocumentFragment(),i=document.createElement(\"div\");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)));Ye.updateCues.call(e,i)})),e.embed.on(\"loaded\",(()=>{if(e.embed.getPaused().then((t=>{ct.call(e,!t),t||ve.call(e,e.media,\"playing\")})),H(e.embed.element)&&e.supported.ui){e.embed.element.setAttribute(\"tabindex\",-1)}})),e.embed.on(\"bufferstart\",(()=>{ve.call(e,e.media,\"waiting\")})),e.embed.on(\"bufferend\",(()=>{ve.call(e,e.media,\"playing\")})),e.embed.on(\"play\",(()=>{ct.call(e,!0),ve.call(e,e.media,\"playing\")})),e.embed.on(\"pause\",(()=>{ct.call(e,!1)})),e.embed.on(\"timeupdate\",(t=>{e.media.seeking=!1,m=t.seconds,ve.call(e,e.media,\"timeupdate\")})),e.embed.on(\"progress\",(t=>{e.media.buffered=t.percent,ve.call(e,e.media,\"progress\"),1===parseInt(t.percent,10)&&ve.call(e,e.media,\"canplaythrough\"),e.embed.getDuration().then((t=>{t!==e.media.duration&&(e.media.duration=t,ve.call(e,e.media,\"durationchange\"))}))})),e.embed.on(\"seeked\",(()=>{e.media.seeking=!1,ve.call(e,e.media,\"seeked\")})),e.embed.on(\"ended\",(()=>{e.media.paused=!0,ve.call(e,e.media,\"ended\")})),e.embed.on(\"error\",(t=>{e.media.error=t,ve.call(e,e.media,\"error\")})),t.customControls&&setTimeout((()=>at.build.call(e)),0)}};function ut(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,ve.call(this,this.media,e?\"play\":\"pause\"))}function dt(e){return e.noCookie?\"https://www.youtube-nocookie.com\":\"http:\"===window.location.protocol?\"http://www.youtube.com\":void 0}const mt={setup(){if(le(this.elements.wrapper,this.config.classNames.embed,!0),L(window.YT)&&j(window.YT.Player))mt.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{j(e)&&e(),mt.ready.call(this)},rt(this.config.urls.youtube.sdk).catch((e=>{this.debug.warn(\"YouTube API failed to load\",e)}))}},getTitle(e){Fe($e(this.config.urls.youtube.api,e)).then((e=>{if(L(e)){const{title:t,height:i,width:s}=e;this.config.title=t,at.setTitle.call(this),this.embed.ratio=Ie(s,i)}xe.call(this)})).catch((()=>{xe.call(this)}))},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute(\"id\");if(!W(i)&&i.startsWith(\"youtube-\"))return;let s=e.media.getAttribute(\"src\");W(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=W(a=s)?null:a.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/)?RegExp.$2:a;var a;const l=Z(\"div\",{id:`${e.provider}-${Math.floor(1e4*Math.random())}`,\"data-poster\":t.customControls?e.poster:void 0});if(e.media=se(l,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;nt(t(\"maxres\"),121).catch((()=>nt(t(\"sd\"),121))).catch((()=>nt(t(\"hq\")))).then((t=>at.setPoster.call(e,t.src))).then((t=>{t.includes(\"maxres\")||(e.elements.poster.style.backgroundSize=\"cover\")})).catch((()=>{}))}e.embed=new window.YT.Player(e.media,{videoId:n,host:dt(t),playerVars:X({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:\"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.\",5:\"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.\",100:\"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.\",101:\"The owner of the requested video does not allow it to be played in embedded players.\",150:\"The owner of the requested video does not allow it to be played in embedded players.\"}[i]||\"An unknown error occured\";e.media.error={code:i,message:s},ve.call(e,e.media,\"error\")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),ve.call(e,e.media,\"ratechange\")},onReady(i){if(j(e.media.play))return;const s=i.target;mt.getTitle.call(e,n),e.media.play=()=>{ut.call(e,!0),s.playVideo()},e.media.pause=()=>{ut.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,\"currentTime\",{get:()=>Number(s.getCurrentTime()),set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,ve.call(e,e.media,\"seeking\"),s.seekTo(t)}}),Object.defineProperty(e.media,\"playbackRate\",{get:()=>s.getPlaybackRate(),set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,\"volume\",{get:()=>a,set(t){a=t,s.setVolume(100*a),ve.call(e,e.media,\"volumechange\")}});let{muted:l}=e.config;Object.defineProperty(e.media,\"muted\",{get:()=>l,set(t){const i=O(t)?t:l;l=i,s[i?\"mute\":\"unMute\"](),s.setVolume(100*a),ve.call(e,e.media,\"volumechange\")}}),Object.defineProperty(e.media,\"currentSrc\",{get:()=>s.getVideoUrl()}),Object.defineProperty(e.media,\"ended\",{get:()=>e.currentTime===e.duration});const o=s.getAvailablePlaybackRates();e.options.speed=o.filter((t=>e.config.speed.options.includes(t))),e.supported.ui&&t.customControls&&e.media.setAttribute(\"tabindex\",-1),ve.call(e,e.media,\"timeupdate\"),ve.call(e,e.media,\"durationchange\"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBufferedat.build.call(e)),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);switch(e.media.seeking&&[1,2].includes(i.data)&&(e.media.seeking=!1,ve.call(e,e.media,\"seeked\")),i.data){case-1:ve.call(e,e.media,\"timeupdate\"),e.media.buffered=s.getVideoLoadedFraction(),ve.call(e,e.media,\"progress\");break;case 0:ut.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):ve.call(e,e.media,\"ended\");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(ut.call(e,!0),ve.call(e,e.media,\"playing\"),e.timers.playing=setInterval((()=>{ve.call(e,e.media,\"timeupdate\")}),50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),ve.call(e,e.media,\"durationchange\")));break;case 2:e.muted||e.embed.unMute(),ut.call(e,!1);break;case 3:ve.call(e,e.media,\"waiting\")}ve.call(e,e.elements.container,\"statechange\",!1,{code:i.data})}}})}},pt={setup(){this.media?(le(this.elements.container,this.config.classNames.type.replace(\"{0}\",this.type),!0),le(this.elements.container,this.config.classNames.provider.replace(\"{0}\",this.provider),!0),this.isEmbed&&le(this.elements.container,this.config.classNames.type.replace(\"{0}\",\"video\"),!0),this.isVideo&&(this.elements.wrapper=Z(\"div\",{class:this.config.classNames.video}),J(this.media,this.elements.wrapper),this.elements.poster=Z(\"div\",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Le.setup.call(this):this.isYouTube?mt.setup.call(this):this.isVimeo&&ht.setup.call(this)):this.debug.warn(\"No media element found!\")}};class gt{constructor(t){e(this,\"load\",(()=>{this.enabled&&(L(window.google)&&L(window.google.ima)?this.ready():rt(this.player.config.urls.googleIMA.sdk).then((()=>{this.ready()})).catch((()=>{this.trigger(\"error\",new Error(\"Google IMA SDK failed to load\"))})))})),e(this,\"ready\",(()=>{var e;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,\"ready()\"),this.managerPromise.then((()=>{this.clearSafetyTimer(\"onAdsManagerLoaded()\")})),this.listeners(),this.setupIMA()})),e(this,\"setupIMA\",(()=>{this.elements.container=Z(\"div\",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(e=>this.onAdsManagerLoaded(e)),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e)),!1),this.requestAds()})),e(this,\"requestAds\",(()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}})),e(this,\"pollCountdown\",((e=!1)=>{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute(\"data-badge-text\");this.countdownTimer=setInterval((()=>{const e=Ue(Math.max(this.manager.getRemainingTime(),0)),t=`${He.get(\"advertisement\",this.player.config)} - ${e}`;this.elements.container.setAttribute(\"data-badge-text\",t)}),100)})),e(this,\"onAdsManagerLoaded\",(e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e))),Object.keys(google.ima.AdEvent.Type).forEach((e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],(e=>this.onAdEvent(e)))})),this.trigger(\"loaded\")})),e(this,\"addCuePoints\",(()=>{W(this.cuePoints)||this.cuePoints.forEach((e=>{if(0!==e&&-1!==e&&e{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData();switch((e=>{ve.call(this.player,this.player.media,`ads${e.replace(/_/g,\"\").toLowerCase()}`)})(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger(\"loaded\"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`)}})),e(this,\"onAdError\",(e=>{this.cancel(),this.player.debug.warn(\"Ads error\",e)})),e(this,\"listeners\",(()=>{const{container:e}=this.player.elements;let t;this.player.on(\"canplay\",(()=>{this.addCuePoints()})),this.player.on(\"ended\",(()=>{this.loader.contentComplete()})),this.player.on(\"timeupdate\",(()=>{t=this.player.currentTime})),this.player.on(\"seeked\",(()=>{const e=this.player.currentTime;W(this.cuePoints)||this.cuePoints.forEach(((i,s)=>{t{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)}))})),e(this,\"play\",(()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then((()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(e){this.onAdError(e)}})).catch((()=>{}))})),e(this,\"resumeContent\",(()=>{this.elements.container.style.zIndex=\"\",this.playing=!1,ke(this.player.media.play())})),e(this,\"pauseContent\",(()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()})),e(this,\"cancel\",(()=>{this.initialized&&this.resumeContent(),this.trigger(\"error\"),this.loadAds()})),e(this,\"loadAds\",(()=>{this.managerPromise.then((()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise((e=>{this.on(\"loaded\",e),this.player.debug.log(this.manager)})),this.initialized=!1,this.requestAds()})).catch((()=>{}))})),e(this,\"trigger\",((e,...t)=>{const i=this.events[e];D(i)&&i.forEach((e=>{j(e)&&e.apply(this,t)}))})),e(this,\"on\",((e,t)=>(D(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this))),e(this,\"startSafetyTimer\",((e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout((()=>{this.cancel(),this.clearSafetyTimer(\"startSafetyTimer()\")}),e)})),e(this,\"clearSafetyTimer\",(e=>{I(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)})),this.player=t,this.config=t.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(((e,t)=>{this.on(\"loaded\",e),this.on(\"error\",t)})),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!W(e.publisherId)||U(e.tagUrl))}get tagUrl(){const{config:e}=this;if(U(e.tagUrl))return e.tagUrl;return`https://go.aniview.com/api/adserver6/vast/?${Ke({AV_PUBLISHERID:\"58c25bb0073ef448b1087ad6\",AV_CHANNELID:\"5a0458dc28a06145e4519d21\",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function ft(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}const bt=e=>{const t=[];return e.split(/\\r\\n\\r\\n|\\n\\n|\\r\\r/).forEach((e=>{const i={};e.split(/\\r\\n|\\n|\\r/).forEach((e=>{if($(i.startTime)){if(!W(e.trim())&&W(i.text)){const t=e.trim().split(\"#xywh=\");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(\",\"))}}else{const t=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}})),i.text&&t.push(i)})),t},yt=(e,t)=>{const i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i};class vt{constructor(t){e(this,\"load\",(()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.loaded=!0)}))})),e(this,\"getThumbnails\",(()=>new Promise((e=>{const{src:t}=this.player.config.previewThumbnails;if(W(t))throw new Error(\"Missing previewThumbnails.src config attribute\");const i=()=>{this.thumbnails.sort(((e,t)=>e.height-t.height)),this.player.debug.log(\"Preview thumbnails\",this.thumbnails),e()};if(j(t))t((e=>{this.thumbnails=e,i()}));else{const e=(_(t)?[t]:t).map((e=>this.getThumbnail(e)));Promise.all(e).then(i)}})))),e(this,\"getThumbnail\",(e=>new Promise((t=>{Fe(e).then((i=>{const s={frames:bt(i),height:null,urlPrefix:\"\"};s.frames[0].text.startsWith(\"/\")||s.frames[0].text.startsWith(\"http://\")||s.frames[0].text.startsWith(\"https://\")||(s.urlPrefix=e.substring(0,e.lastIndexOf(\"/\")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text}))})))),e(this,\"startMove\",(e=>{if(this.loaded&&R(e)&&[\"touchmove\",\"mousemove\"].includes(e.type)&&this.player.media.duration){if(\"touchmove\"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t,i;const s=this.player.elements.progress.getBoundingClientRect(),n=100/s.width*(e.pageX-s.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Ue(this.seekTime);const a=null===(t=this.player.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(this.seekTime)));a&&this.elements.thumb.time.insertAdjacentHTML(\"afterbegin\",`${a.label}
`)}this.showImageAtCurrentTime()}})),e(this,\"endMove\",(()=>{this.toggleThumbContainer(!1,!0)})),e(this,\"startScrubbing\",(e=>{(I(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))})),e(this,\"endScrubbing\",(()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):ye.call(this.player,this.player.media,\"timeupdate\",(()=>{this.mouseDown||this.toggleScrubbingContainer(!1)}))})),e(this,\"listeners\",(()=>{this.player.on(\"play\",(()=>{this.toggleThumbContainer(!1,!0)})),this.player.on(\"seeked\",(()=>{this.toggleThumbContainer(!1)})),this.player.on(\"timeupdate\",(()=>{this.lastTime=this.player.media.currentTime}))})),e(this,\"render\",(()=>{this.elements.thumb.container=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=Z(\"span\",{},\"00:00\"),e.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(e),H(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=Z(\"div\",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)})),e(this,\"destroy\",(()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()})),e(this,\"showImageAtCurrentTime\",(()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex((e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime)),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach(((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)})),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))})),e(this,\"loadImage\",((e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,l=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=l,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${l}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}})),e(this,\"showImage\",((e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))})),e(this,\"removeOldImages\",(e=>{Array.from(this.currentImageContainer.children).forEach((t=>{if(\"img\"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout((()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)}),i)}}))})),e(this,\"preloadNearby\",((e,t=!0)=>new Promise((i=>{setTimeout((()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach((e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}})),a||i()}}),300)})))),e(this,\"getHigherQuality\",((e,t,i,s)=>{if(e{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))}),300)}})),e(this,\"toggleThumbContainer\",((e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,\"toggleScrubbingContainer\",((e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,\"determineContainerAutoSizing\",(()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)})),e(this,\"setThumbContainerSizeAndPos\",(()=>{const{imageContainer:e}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(e.clientHeight>20&&e.clientWidth<20){const t=Math.floor(e.clientHeight*this.thumbAspectRatio);e.style.width=`${t}px`}else if(e.clientHeight<20&&e.clientWidth>20){const t=Math.floor(e.clientWidth/this.thumbAspectRatio);e.style.height=`${t}px`}}else{const t=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);e.style.height=`${this.thumbContainerHeight}px`,e.style.width=`${t}px`}this.setThumbContainerPos()})),e(this,\"setThumbContainerPos\",(()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10,a=this.mousePosX-e.left-i.clientWidth/2,l=ft(a,s,n);i.style.left=`${l}px`,i.style.setProperty(\"--preview-arrow-offset\",a-l+\"px\")})),e(this,\"setScrubbingContainerSize\",(()=>{const{width:e,height:t}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`})),e(this,\"setImageSizeAndOffset\",((e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+\"px\",e.style.width=e.naturalWidth*i+\"px\",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`})),this.player=t,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes(\"w\")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=yt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const wt={insertElements(e,t){_(t)?ee(e,this.media,{src:t}):D(t)&&t.forEach((t=>{ee(e,this.media,t)}))},change(e){Q(e,\"sources.length\")?(Le.cancelRequests.call(this),this.destroy.call(this,(()=>{this.options.quality=[],te(this.media),this.media=null,H(this.elements.container)&&this.elements.container.removeAttribute(\"class\");const{sources:t,type:i}=e,[{provider:s=Ge.html5,src:n}]=t,a=\"html5\"===s?i:\"div\",l=\"html5\"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:me.check(i,s,this.config.playsinline),media:Z(a,l)}),this.elements.container.appendChild(this.media),O(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute(\"crossorigin\",\"\"),this.config.autoplay&&this.media.setAttribute(\"autoplay\",\"\"),W(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute(\"loop\",\"\"),this.config.muted&&this.media.setAttribute(\"muted\",\"\"),this.config.playsinline&&this.media.setAttribute(\"playsinline\",\"\")),at.addStyleHook.call(this),this.isHTML5&&wt.insertElements.call(this,\"source\",t),this.config.title=e.title,pt.setup.call(this),this.isHTML5&&Object.keys(e).includes(\"tracks\")&&wt.insertElements.call(this,\"track\",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.isHTML5&&this.media.load(),W(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))),this.fullscreen.update()}),!0)):this.debug.warn(\"Invalid source format\")}};class Tt{constructor(t,i){if(e(this,\"play\",(()=>j(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((()=>this.ads.play())).catch((()=>ke(this.media.play()))),this.media.play()):null)),e(this,\"pause\",(()=>this.playing&&j(this.media.pause)?this.media.pause():null)),e(this,\"togglePlay\",(e=>(O(e)?e:!this.playing)?this.play():this.pause())),e(this,\"stop\",(()=>{this.isHTML5?(this.pause(),this.restart()):j(this.media.stop)&&this.media.stop()})),e(this,\"restart\",(()=>{this.currentTime=0})),e(this,\"rewind\",(e=>{this.currentTime-=$(e)?e:this.config.seekTime})),e(this,\"forward\",(e=>{this.currentTime+=$(e)?e:this.config.seekTime})),e(this,\"increaseVolume\",(e=>{const t=this.media.muted?0:this.volume;this.volume=t+($(e)?e:0)})),e(this,\"decreaseVolume\",(e=>{this.increaseVolume(-e)})),e(this,\"airplay\",(()=>{me.airplay&&this.media.webkitShowPlaybackTargetPicker()})),e(this,\"toggleControls\",(e=>{if(this.supported.ui&&!this.isAudio){const t=oe(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,s=le(this.elements.container,this.config.classNames.hideControls,i);if(s&&D(this.config.controls)&&this.config.controls.includes(\"settings\")&&!W(this.config.settings)&&We.toggleMenu.call(this,!1),s!==t){const e=s?\"controlshidden\":\"controlsshown\";ve.call(this,this.media,e)}return!s}return!1})),e(this,\"on\",((e,t)=>{fe.call(this,this.elements.container,e,t)})),e(this,\"once\",((e,t)=>{ye.call(this,this.elements.container,e,t)})),e(this,\"off\",((e,t)=>{be(this.elements.container,e,t)})),e(this,\"destroy\",((e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow=\"\",this.embed=null,t?(Object.keys(this.elements).length&&(te(this.elements.buttons.play),te(this.elements.captions),te(this.elements.controls),te(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),j(e)&&e()):(we.call(this),Le.cancelRequests.call(this),se(this.elements.original,this.elements.container),ve.call(this,this.elements.original,\"destroyed\",!0),j(e)&&e.call(this.elements.original),this.ready=!1,setTimeout((()=>{this.elements=null,this.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(at.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&j(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))})),e(this,\"supports\",(e=>me.mime.call(this,e))),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=me.touch,this.media=t,_(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||q(this.media)||D(this.media))&&(this.media=this.media[0]),this.config=X({},Qe,Tt.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute(\"data-plyr-config\"))}catch(e){return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new it(this.config.debug),this.debug.log(\"Config\",this.config),this.debug.log(\"Support\",me),I(this.media)||!H(this.media))return void this.debug.error(\"Setup failed: no suitable element passed\");if(this.media.plyr)return void this.debug.warn(\"Target already setup\");if(!this.config.enabled)return void this.debug.error(\"Setup failed: disabled by config\");if(!me.check().api)return void this.debug.error(\"Setup failed: no support\");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const n=this.media.tagName.toLowerCase();let a=null,l=null;switch(n){case\"div\":if(a=this.media.querySelector(\"iframe\"),H(a)){if(l=ze(a.getAttribute(\"src\")),this.provider=function(e){return/^(https?:\\/\\/)?(www\\.)?(youtube\\.com|youtube-nocookie\\.com|youtu\\.?be)\\/.+$/.test(e)?Ge.youtube:/^https?:\\/\\/player.vimeo.com\\/video\\/\\d{0,9}(?=\\b|\\/)/.test(e)?Ge.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className=\"\",l.search.length){const e=[\"1\",\"true\"];e.includes(l.searchParams.get(\"autoplay\"))&&(this.config.autoplay=!0),e.includes(l.searchParams.get(\"loop\"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(l.searchParams.get(\"playsinline\")),this.config.youtube.hl=l.searchParams.get(\"hl\")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(W(this.provider)||!Object.values(Ge).includes(this.provider))return void this.debug.error(\"Setup failed: Invalid provider\");this.type=et;break;case\"video\":case\"audio\":this.type=n,this.provider=Ge.html5,this.media.hasAttribute(\"crossorigin\")&&(this.config.crossorigin=!0),this.media.hasAttribute(\"autoplay\")&&(this.config.autoplay=!0),(this.media.hasAttribute(\"playsinline\")||this.media.hasAttribute(\"webkit-playsinline\"))&&(this.config.playsinline=!0),this.media.hasAttribute(\"muted\")&&(this.config.muted=!0),this.media.hasAttribute(\"loop\")&&(this.config.loop.active=!0);break;default:return void this.debug.error(\"Setup failed: unsupported type\")}this.supported=me.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new lt(this),this.storage=new Re(this),this.media.plyr=this,H(this.elements.container)||(this.elements.container=Z(\"div\",{tabindex:0}),J(this.media,this.elements.container)),at.migrateStyles.call(this),at.addStyleHook.call(this),pt.setup.call(this),this.config.debug&&fe.call(this,this.elements.container,this.config.events.join(\" \"),(e=>{this.debug.log(`event: ${e.type}`)})),this.fullscreen=new st(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&at.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new gt(this)),this.isHTML5&&this.config.autoplay&&this.once(\"canplay\",(()=>ke(this.play()))),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))):this.debug.error(\"Setup failed: no support\")}get isHTML5(){return this.provider===Ge.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===Ge.youtube}get isVimeo(){return this.provider===Ge.vimeo}get isVideo(){return this.type===et}get isAudio(){return this.type===Ze}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=$(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return $(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=$(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;_(t)&&(t=Number(t)),$(t)||(t=this.storage.get(\"volume\")),$(t)||({volume:t}=this.config),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!W(e)&&this.muted&&t>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;O(t)||(t=this.storage.get(\"muted\")),O(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;$(e)&&(t=e),$(t)||(t=this.storage.get(\"speed\")),$(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=ft(t,i,s),this.config.speed.selected=t,setTimeout((()=>{this.media&&(this.media.playbackRate=t)}),0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!W(e)&&Number(e),this.storage.get(\"quality\"),t.selected,t.default].find($),n=!0;if(!i.includes(s)){const e=Ae(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=O(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){wt.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return U(e)?e:this.source}set download(e){U(e)&&(this.config.urls.download=e,We.setDownloadUrl.call(this))}set poster(e){this.isVideo?at.setPoster.call(this,e,!1).catch((()=>{})):this.debug.warn(\"Poster can only be set for video\")}get poster(){return this.isVideo?this.media.getAttribute(\"poster\")||this.media.getAttribute(\"data-poster\"):null}get ratio(){if(!this.isVideo)return null;const e=Me(Ne.call(this));return D(e)?e.join(\":\"):e}set ratio(e){this.isVideo?_(e)&&Pe(e)?(this.config.ratio=Me(e),xe.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn(\"Aspect ratio can only be set for video\")}set autoplay(e){this.config.autoplay=O(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){Ye.toggle.call(this,e,!1)}set currentTrack(e){Ye.set.call(this,e,!1),Ye.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){Ye.setLanguage.call(this,e,!1)}get language(){return(Ye.getCurrentTrack.call(this)||{}).language}set pip(e){if(!me.pip)return;const t=O(e)?e:!this.pip;j(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?Xe:Je),j(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return me.pip?W(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===Xe:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new vt(this))}static supported(e,t,i){return me.check(e,t,i)}static loadSprite(e,t){return Ve(e,t)}static setup(e,t={}){let i=null;return _(e)?i=Array.from(document.querySelectorAll(e)):q(e)?i=Array.from(e):D(e)&&(i=e.filter(H)),W(i)?null:i.map((e=>new Tt(e,t)))}}var kt;return Tt.defaults=(kt=Qe,JSON.parse(JSON.stringify(kt))),Tt}));\n//# sourceMappingURL=plyr.min.js.map\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\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 LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\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;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = 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 // eslint-disable-next-line no-loop-func\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","exports.f = {}.propertyIsEnumerable;\n","'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\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 && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\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 (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may 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 (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\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 values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(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.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\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 forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _node = require('./node');\n\nvar _node2 = _interopRequireDefault(_node);\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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/**\n * Represents a CSS declaration.\n *\n * @extends Node\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.type //=> 'decl'\n * decl.toString() //=> ' color: black'\n */\nvar Declaration = function (_Node) {\n _inherits(Declaration, _Node);\n\n function Declaration(defaults) {\n _classCallCheck(this, Declaration);\n\n var _this = _possibleConstructorReturn(this, _Node.call(this, defaults));\n\n _this.type = 'decl';\n return _this;\n }\n\n _createClass(Declaration, [{\n key: '_value',\n get: function get() {\n (0, _warnOnce2.default)('Node#_value was deprecated. Use Node#raws.value');\n return this.raws.value;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#_value was deprecated. Use Node#raws.value');\n this.raws.value = val;\n }\n }, {\n key: '_important',\n get: function get() {\n (0, _warnOnce2.default)('Node#_important was deprecated. Use Node#raws.important');\n return this.raws.important;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#_important was deprecated. Use Node#raws.important');\n this.raws.important = val;\n }\n\n /**\n * @memberof Declaration#\n * @member {string} prop - the declaration’s property name\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.prop //=> 'color'\n */\n\n /**\n * @memberof Declaration#\n * @member {string} value - the declaration’s value\n *\n * @example\n * const root = postcss.parse('a { color: black }');\n * const decl = root.first.first;\n * decl.value //=> 'black'\n */\n\n /**\n * @memberof Declaration#\n * @member {boolean} important - `true` if the declaration\n * has an !important annotation.\n *\n * @example\n * const root = postcss.parse('a { color: black !important; color: red }');\n * root.first.first.important //=> true\n * root.first.last.important //=> undefined\n */\n\n /**\n * @memberof Declaration#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `between`: the symbols between the property and value\n * for declarations.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans declaration from comments and extra spaces,\n * but it stores origin content in raws properties.\n * As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n\n return Declaration;\n}(_node2.default);\n\nexports.default = Declaration;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRlY2xhcmF0aW9uLmVzNiJdLCJuYW1lcyI6WyJEZWNsYXJhdGlvbiIsImRlZmF1bHRzIiwidHlwZSIsInJhd3MiLCJ2YWx1ZSIsInZhbCIsImltcG9ydGFudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7O0lBV01BLFc7OztBQUVGLHlCQUFZQyxRQUFaLEVBQXNCO0FBQUE7O0FBQUEscURBQ2xCLGlCQUFNQSxRQUFOLENBRGtCOztBQUVsQixjQUFLQyxJQUFMLEdBQVksTUFBWjtBQUZrQjtBQUdyQjs7Ozs0QkFFWTtBQUNULG9DQUFTLGlEQUFUO0FBQ0EsbUJBQU8sS0FBS0MsSUFBTCxDQUFVQyxLQUFqQjtBQUNILFM7MEJBRVVDLEcsRUFBSztBQUNaLG9DQUFTLGlEQUFUO0FBQ0EsaUJBQUtGLElBQUwsQ0FBVUMsS0FBVixHQUFrQkMsR0FBbEI7QUFDSDs7OzRCQUVnQjtBQUNiLG9DQUFTLHlEQUFUO0FBQ0EsbUJBQU8sS0FBS0YsSUFBTCxDQUFVRyxTQUFqQjtBQUNILFM7MEJBRWNELEcsRUFBSztBQUNoQixvQ0FBUyx5REFBVDtBQUNBLGlCQUFLRixJQUFMLENBQVVHLFNBQVYsR0FBc0JELEdBQXRCO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQTs7Ozs7Ozs7OztBQVVBOzs7Ozs7Ozs7OztBQVdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBMkJXTCxXIiwiZmlsZSI6ImRlY2xhcmF0aW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdhcm5PbmNlIGZyb20gJy4vd2Fybi1vbmNlJztcbmltcG9ydCBOb2RlICAgICBmcm9tICcuL25vZGUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBDU1MgZGVjbGFyYXRpb24uXG4gKlxuICogQGV4dGVuZHMgTm9kZVxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7IGNvbG9yOiBibGFjayB9Jyk7XG4gKiBjb25zdCBkZWNsID0gcm9vdC5maXJzdC5maXJzdDtcbiAqIGRlY2wudHlwZSAgICAgICAvLz0+ICdkZWNsJ1xuICogZGVjbC50b1N0cmluZygpIC8vPT4gJyBjb2xvcjogYmxhY2snXG4gKi9cbmNsYXNzIERlY2xhcmF0aW9uIGV4dGVuZHMgTm9kZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihkZWZhdWx0cykge1xuICAgICAgICBzdXBlcihkZWZhdWx0cyk7XG4gICAgICAgIHRoaXMudHlwZSA9ICdkZWNsJztcbiAgICB9XG5cbiAgICBnZXQgX3ZhbHVlKCkge1xuICAgICAgICB3YXJuT25jZSgnTm9kZSNfdmFsdWUgd2FzIGRlcHJlY2F0ZWQuIFVzZSBOb2RlI3Jhd3MudmFsdWUnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3cy52YWx1ZTtcbiAgICB9XG5cbiAgICBzZXQgX3ZhbHVlKHZhbCkge1xuICAgICAgICB3YXJuT25jZSgnTm9kZSNfdmFsdWUgd2FzIGRlcHJlY2F0ZWQuIFVzZSBOb2RlI3Jhd3MudmFsdWUnKTtcbiAgICAgICAgdGhpcy5yYXdzLnZhbHVlID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBfaW1wb3J0YW50KCkge1xuICAgICAgICB3YXJuT25jZSgnTm9kZSNfaW1wb3J0YW50IHdhcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyYXdzLmltcG9ydGFudCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yYXdzLmltcG9ydGFudDtcbiAgICB9XG5cbiAgICBzZXQgX2ltcG9ydGFudCh2YWwpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjX2ltcG9ydGFudCB3YXMgZGVwcmVjYXRlZC4gVXNlIE5vZGUjcmF3cy5pbXBvcnRhbnQnKTtcbiAgICAgICAgdGhpcy5yYXdzLmltcG9ydGFudCA9IHZhbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgRGVjbGFyYXRpb24jXG4gICAgICogQG1lbWJlciB7c3RyaW5nfSBwcm9wIC0gdGhlIGRlY2xhcmF0aW9u4oCZcyBwcm9wZXJ0eSBuYW1lXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhIHsgY29sb3I6IGJsYWNrIH0nKTtcbiAgICAgKiBjb25zdCBkZWNsID0gcm9vdC5maXJzdC5maXJzdDtcbiAgICAgKiBkZWNsLnByb3AgLy89PiAnY29sb3InXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgRGVjbGFyYXRpb24jXG4gICAgICogQG1lbWJlciB7c3RyaW5nfSB2YWx1ZSAtIHRoZSBkZWNsYXJhdGlvbuKAmXMgdmFsdWVcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2EgeyBjb2xvcjogYmxhY2sgfScpO1xuICAgICAqIGNvbnN0IGRlY2wgPSByb290LmZpcnN0LmZpcnN0O1xuICAgICAqIGRlY2wudmFsdWUgLy89PiAnYmxhY2snXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgRGVjbGFyYXRpb24jXG4gICAgICogQG1lbWJlciB7Ym9vbGVhbn0gaW1wb3J0YW50IC0gYHRydWVgIGlmIHRoZSBkZWNsYXJhdGlvblxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhcyBhbiAhaW1wb3J0YW50IGFubm90YXRpb24uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IHJvb3QgPSBwb3N0Y3NzLnBhcnNlKCdhIHsgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7IGNvbG9yOiByZWQgfScpO1xuICAgICAqIHJvb3QuZmlyc3QuZmlyc3QuaW1wb3J0YW50IC8vPT4gdHJ1ZVxuICAgICAqIHJvb3QuZmlyc3QubGFzdC5pbXBvcnRhbnQgIC8vPT4gdW5kZWZpbmVkXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgRGVjbGFyYXRpb24jXG4gICAgICogQG1lbWJlciB7b2JqZWN0fSByYXdzIC0gSW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYnl0ZS10by1ieXRlIGVxdWFsXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSBzdHJpbmcgYXMgaXQgd2FzIGluIHRoZSBvcmlnaW4gaW5wdXQuXG4gICAgICpcbiAgICAgKiBFdmVyeSBwYXJzZXIgc2F2ZXMgaXRzIG93biBwcm9wZXJ0aWVzLFxuICAgICAqIGJ1dCB0aGUgZGVmYXVsdCBDU1MgcGFyc2VyIHVzZXM6XG4gICAgICpcbiAgICAgKiAqIGBiZWZvcmVgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZWZvcmUgdGhlIG5vZGUuIEl0IGFsc28gc3RvcmVzIGAqYFxuICAgICAqICAgYW5kIGBfYCBzeW1ib2xzIGJlZm9yZSB0aGUgZGVjbGFyYXRpb24gKElFIGhhY2spLlxuICAgICAqICogYGJldHdlZW5gOiB0aGUgc3ltYm9scyBiZXR3ZWVuIHRoZSBwcm9wZXJ0eSBhbmQgdmFsdWVcbiAgICAgKiAgIGZvciBkZWNsYXJhdGlvbnMuXG4gICAgICogKiBgaW1wb3J0YW50YDogdGhlIGNvbnRlbnQgb2YgdGhlIGltcG9ydGFudCBzdGF0ZW1lbnQsXG4gICAgICogICBpZiBpdCBpcyBub3QganVzdCBgIWltcG9ydGFudGAuXG4gICAgICpcbiAgICAgKiBQb3N0Q1NTIGNsZWFucyBkZWNsYXJhdGlvbiBmcm9tIGNvbW1lbnRzIGFuZCBleHRyYSBzcGFjZXMsXG4gICAgICogYnV0IGl0IHN0b3JlcyBvcmlnaW4gY29udGVudCBpbiByYXdzIHByb3BlcnRpZXMuXG4gICAgICogQXMgc3VjaCwgaWYgeW91IGRvbuKAmXQgY2hhbmdlIGEgZGVjbGFyYXRpb27igJlzIHZhbHVlLFxuICAgICAqIFBvc3RDU1Mgd2lsbCB1c2UgdGhlIHJhdyB2YWx1ZSB3aXRoIGNvbW1lbnRzLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7XFxuICBjb2xvcjpibGFja1xcbn0nKVxuICAgICAqIHJvb3QuZmlyc3QuZmlyc3QucmF3cyAvLz0+IHsgYmVmb3JlOiAnXFxuICAnLCBiZXR3ZWVuOiAnOicgfVxuICAgICAqL1xuXG59XG5cbmV4cG9ydCBkZWZhdWx0IERlY2xhcmF0aW9uO1xuIl19\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n\n(function(window, document) {\n'use strict';\n\n\n// Exits early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}(window, document));\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar isMaybe = require('./isMaybe');\nvar isIdentity = require('./isIdentity');\nvar Any = require('./Any');\nvar create = require('./create');\nvar Nil = require('./Nil');\nvar forbidNewOperator = require('./forbidNewOperator');\nvar is = require('./is');\nvar getTypeName = require('./getTypeName');\n\nfunction getDefaultName(type) {\n return '?' + getTypeName(type);\n}\n\nfunction maybe(type, name) {\n\n if (isMaybe(type) || type === Any || type === Nil) { // makes the combinator idempotent and handle Any, Nil\n return type;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(type), function () { return 'Invalid argument type ' + assert.stringify(type) + ' supplied to maybe(type, [name]) combinator (expected a type)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to maybe(type, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(type);\n\n function Maybe(value, path) {\n if (process.env.NODE_ENV !== 'production') {\n forbidNewOperator(this, Maybe);\n }\n return Nil.is(value) ? null : create(type, value, path);\n }\n\n Maybe.meta = {\n kind: 'maybe',\n type: type,\n name: name,\n identity: isIdentity(type)\n };\n\n Maybe.displayName = displayName;\n\n Maybe.is = function (x) {\n return Nil.is(x) || is(x, type);\n };\n\n return Maybe;\n}\n\nmaybe.getDefaultName = getDefaultName;\nmodule.exports = maybe;\n","'use strict';\nmodule.exports = function () {\n\treturn /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.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 new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","var irreducible = require('./irreducible');\nvar isFunction = require('./isFunction');\n\nmodule.exports = irreducible('Function', isFunction);\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _warning = require('./warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\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\n/**\n * Provides the result of the PostCSS transformations.\n *\n * A Result instance is returned by {@link LazyResult#then}\n * or {@link Root#toResult} methods.\n *\n * @example\n * postcss([cssnext]).process(css).then(function (result) {\n * console.log(result.css);\n * });\n *\n * @example\n * var result2 = postcss.parse(css).toResult();\n */\nvar Result = function () {\n\n /**\n * @param {Processor} processor - processor used for this transformation.\n * @param {Root} root - Root node after all transformations.\n * @param {processOptions} opts - options from the {@link Processor#process}\n * or {@link Root#toResult}\n */\n function Result(processor, root, opts) {\n _classCallCheck(this, Result);\n\n /**\n * @member {Processor} - The Processor instance used\n * for this transformation.\n *\n * @example\n * for ( let plugin of result.processor.plugins) {\n * if ( plugin.postcssPlugin === 'postcss-bad' ) {\n * throw 'postcss-good is incompatible with postcss-bad';\n * }\n * });\n */\n this.processor = processor;\n /**\n * @member {Message[]} - Contains messages from plugins\n * (e.g., warnings or custom messages).\n * Each message should have type\n * and plugin properties.\n *\n * @example\n * postcss.plugin('postcss-min-browser', () => {\n * return (root, result) => {\n * var browsers = detectMinBrowsersByCanIUse(root);\n * result.messages.push({\n * type: 'min-browser',\n * plugin: 'postcss-min-browser',\n * browsers: browsers\n * });\n * };\n * });\n */\n this.messages = [];\n /**\n * @member {Root} - Root node after all transformations.\n *\n * @example\n * root.toResult().root == root;\n */\n this.root = root;\n /**\n * @member {processOptions} - Options from the {@link Processor#process}\n * or {@link Root#toResult} call\n * that produced this Result instance.\n *\n * @example\n * root.toResult(opts).opts == opts;\n */\n this.opts = opts;\n /**\n * @member {string} - A CSS string representing of {@link Result#root}.\n *\n * @example\n * postcss.parse('a{}').toResult().css //=> \"a{}\"\n */\n this.css = undefined;\n /**\n * @member {SourceMapGenerator} - An instance of `SourceMapGenerator`\n * class from the `source-map` library,\n * representing changes\n * to the {@link Result#root} instance.\n *\n * @example\n * result.map.toJSON() //=> { version: 3, file: 'a.css', … }\n *\n * @example\n * if ( result.map ) {\n * fs.writeFileSync(result.opts.to + '.map', result.map.toString());\n * }\n */\n this.map = undefined;\n }\n\n /**\n * Returns for @{link Result#css} content.\n *\n * @example\n * result + '' === result.css\n *\n * @return {string} string representing of {@link Result#root}\n */\n\n\n Result.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Creates an instance of {@link Warning} and adds it\n * to {@link Result#messages}.\n *\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n *\n * @return {Warning} created warning\n */\n\n\n Result.prototype.warn = function warn(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin;\n }\n }\n\n var warning = new _warning2.default(text, opts);\n this.messages.push(warning);\n\n return warning;\n };\n\n /**\n * Returns warnings from plugins. Filters {@link Warning} instances\n * from {@link Result#messages}.\n *\n * @example\n * result.warnings().forEach(warn => {\n * console.warn(warn.toString());\n * });\n *\n * @return {Warning[]} warnings from plugins\n */\n\n\n Result.prototype.warnings = function warnings() {\n return this.messages.filter(function (i) {\n return i.type === 'warning';\n });\n };\n\n /**\n * An alias for the {@link Result#css} property.\n * Use it with syntaxes that generate non-CSS output.\n * @type {string}\n *\n * @example\n * result.css === result.content;\n */\n\n\n _createClass(Result, [{\n key: 'content',\n get: function get() {\n return this.css;\n }\n }]);\n\n return Result;\n}();\n\nexports.default = Result;\n\n/**\n * @typedef {object} Message\n * @property {string} type - message type\n * @property {string} plugin - source PostCSS plugin name\n */\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlc3VsdC5lczYiXSwibmFtZXMiOlsiUmVzdWx0IiwicHJvY2Vzc29yIiwicm9vdCIsIm9wdHMiLCJtZXNzYWdlcyIsImNzcyIsInVuZGVmaW5lZCIsIm1hcCIsInRvU3RyaW5nIiwid2FybiIsInRleHQiLCJwbHVnaW4iLCJsYXN0UGx1Z2luIiwicG9zdGNzc1BsdWdpbiIsIndhcm5pbmciLCJwdXNoIiwid2FybmluZ3MiLCJmaWx0ZXIiLCJpIiwidHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O0lBY01BLE07O0FBRUY7Ozs7OztBQU1BLGtCQUFZQyxTQUFaLEVBQXVCQyxJQUF2QixFQUE2QkMsSUFBN0IsRUFBbUM7QUFBQTs7QUFDL0I7Ozs7Ozs7Ozs7O0FBV0EsU0FBS0YsU0FBTCxHQUFpQkEsU0FBakI7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLFNBQUtHLFFBQUwsR0FBZ0IsRUFBaEI7QUFDQTs7Ozs7O0FBTUEsU0FBS0YsSUFBTCxHQUFZQSxJQUFaO0FBQ0E7Ozs7Ozs7O0FBUUEsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0E7Ozs7OztBQU1BLFNBQUtFLEdBQUwsR0FBV0MsU0FBWDtBQUNBOzs7Ozs7Ozs7Ozs7OztBQWNBLFNBQUtDLEdBQUwsR0FBV0QsU0FBWDtBQUNIOztBQUVEOzs7Ozs7Ozs7O21CQVFBRSxRLHVCQUFXO0FBQ1AsV0FBTyxLQUFLSCxHQUFaO0FBQ0gsRzs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O21CQWdCQUksSSxpQkFBS0MsSSxFQUFrQjtBQUFBLFFBQVpQLElBQVksdUVBQUwsRUFBSzs7QUFDbkIsUUFBSyxDQUFDQSxLQUFLUSxNQUFYLEVBQW9CO0FBQ2hCLFVBQUssS0FBS0MsVUFBTCxJQUFtQixLQUFLQSxVQUFMLENBQWdCQyxhQUF4QyxFQUF3RDtBQUNwRFYsYUFBS1EsTUFBTCxHQUFjLEtBQUtDLFVBQUwsQ0FBZ0JDLGFBQTlCO0FBQ0g7QUFDSjs7QUFFRCxRQUFJQyxVQUFVLHNCQUFZSixJQUFaLEVBQWtCUCxJQUFsQixDQUFkO0FBQ0EsU0FBS0MsUUFBTCxDQUFjVyxJQUFkLENBQW1CRCxPQUFuQjs7QUFFQSxXQUFPQSxPQUFQO0FBQ0gsRzs7QUFFRDs7Ozs7Ozs7Ozs7OzttQkFXQUUsUSx1QkFBVztBQUNQLFdBQU8sS0FBS1osUUFBTCxDQUFjYSxNQUFkLENBQXNCO0FBQUEsYUFBS0MsRUFBRUMsSUFBRixLQUFXLFNBQWhCO0FBQUEsS0FBdEIsQ0FBUDtBQUNILEc7O0FBRUQ7Ozs7Ozs7Ozs7Ozt3QkFRYztBQUNWLGFBQU8sS0FBS2QsR0FBWjtBQUNIOzs7Ozs7a0JBSVVMLE07O0FBRWYiLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFdhcm5pbmcgZnJvbSAnLi93YXJuaW5nJztcblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgcmVzdWx0IG9mIHRoZSBQb3N0Q1NTIHRyYW5zZm9ybWF0aW9ucy5cbiAqXG4gKiBBIFJlc3VsdCBpbnN0YW5jZSBpcyByZXR1cm5lZCBieSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufVxuICogb3Ige0BsaW5rIFJvb3QjdG9SZXN1bHR9IG1ldGhvZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIHBvc3Rjc3MoW2Nzc25leHRdKS5wcm9jZXNzKGNzcykudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7XG4gKiAgICBjb25zb2xlLmxvZyhyZXN1bHQuY3NzKTtcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiB2YXIgcmVzdWx0MiA9IHBvc3Rjc3MucGFyc2UoY3NzKS50b1Jlc3VsdCgpO1xuICovXG5jbGFzcyBSZXN1bHQge1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtQcm9jZXNzb3J9IHByb2Nlc3NvciAtIHByb2Nlc3NvciB1c2VkIGZvciB0aGlzIHRyYW5zZm9ybWF0aW9uLlxuICAgICAqIEBwYXJhbSB7Um9vdH0gICAgICByb290ICAgICAgLSBSb290IG5vZGUgYWZ0ZXIgYWxsIHRyYW5zZm9ybWF0aW9ucy5cbiAgICAgKiBAcGFyYW0ge3Byb2Nlc3NPcHRpb25zfSBvcHRzIC0gb3B0aW9ucyBmcm9tIHRoZSB7QGxpbmsgUHJvY2Vzc29yI3Byb2Nlc3N9XG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHtAbGluayBSb290I3RvUmVzdWx0fVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByb2Nlc3Nvciwgcm9vdCwgb3B0cykge1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1lbWJlciB7UHJvY2Vzc29yfSAtIFRoZSBQcm9jZXNzb3IgaW5zdGFuY2UgdXNlZFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgdHJhbnNmb3JtYXRpb24uXG4gICAgICAgICAqXG4gICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAqIGZvciAoIGxldCBwbHVnaW4gb2YgcmVzdWx0LnByb2Nlc3Nvci5wbHVnaW5zKSB7XG4gICAgICAgICAqICAgaWYgKCBwbHVnaW4ucG9zdGNzc1BsdWdpbiA9PT0gJ3Bvc3Rjc3MtYmFkJyApIHtcbiAgICAgICAgICogICAgIHRocm93ICdwb3N0Y3NzLWdvb2QgaXMgaW5jb21wYXRpYmxlIHdpdGggcG9zdGNzcy1iYWQnO1xuICAgICAgICAgKiAgIH1cbiAgICAgICAgICogfSk7XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnByb2Nlc3NvciA9IHByb2Nlc3NvcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZW1iZXIge01lc3NhZ2VbXX0gLSBDb250YWlucyBtZXNzYWdlcyBmcm9tIHBsdWdpbnNcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgIChlLmcuLCB3YXJuaW5ncyBvciBjdXN0b20gbWVzc2FnZXMpLlxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgRWFjaCBtZXNzYWdlIHNob3VsZCBoYXZlIHR5cGVcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgIGFuZCBwbHVnaW4gcHJvcGVydGllcy5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogcG9zdGNzcy5wbHVnaW4oJ3Bvc3Rjc3MtbWluLWJyb3dzZXInLCAoKSA9PiB7XG4gICAgICAgICAqICAgcmV0dXJuIChyb290LCByZXN1bHQpID0+IHtcbiAgICAgICAgICogICAgIHZhciBicm93c2VycyA9IGRldGVjdE1pbkJyb3dzZXJzQnlDYW5JVXNlKHJvb3QpO1xuICAgICAgICAgKiAgICAgcmVzdWx0Lm1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgKiAgICAgICB0eXBlOiAgICAnbWluLWJyb3dzZXInLFxuICAgICAgICAgKiAgICAgICBwbHVnaW46ICAncG9zdGNzcy1taW4tYnJvd3NlcicsXG4gICAgICAgICAqICAgICAgIGJyb3dzZXJzOiBicm93c2Vyc1xuICAgICAgICAgKiAgICAgfSk7XG4gICAgICAgICAqICAgfTtcbiAgICAgICAgICogfSk7XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm1lc3NhZ2VzID0gW107XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtSb290fSAtIFJvb3Qgbm9kZSBhZnRlciBhbGwgdHJhbnNmb3JtYXRpb25zLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiByb290LnRvUmVzdWx0KCkucm9vdCA9PSByb290O1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yb290ID0gcm9vdDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZW1iZXIge3Byb2Nlc3NPcHRpb25zfSAtIE9wdGlvbnMgZnJvbSB0aGUge0BsaW5rIFByb2Nlc3NvciNwcm9jZXNzfVxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciB7QGxpbmsgUm9vdCN0b1Jlc3VsdH0gY2FsbFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHByb2R1Y2VkIHRoaXMgUmVzdWx0IGluc3RhbmNlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiByb290LnRvUmVzdWx0KG9wdHMpLm9wdHMgPT0gb3B0cztcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3B0cyA9IG9wdHM7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IC0gQSBDU1Mgc3RyaW5nIHJlcHJlc2VudGluZyBvZiB7QGxpbmsgUmVzdWx0I3Jvb3R9LlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiBwb3N0Y3NzLnBhcnNlKCdhe30nKS50b1Jlc3VsdCgpLmNzcyAvLz0+IFwiYXt9XCJcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY3NzID0gdW5kZWZpbmVkO1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1lbWJlciB7U291cmNlTWFwR2VuZXJhdG9yfSAtIEFuIGluc3RhbmNlIG9mIGBTb3VyY2VNYXBHZW5lcmF0b3JgXG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcyBmcm9tIHRoZSBgc291cmNlLW1hcGAgbGlicmFyeSxcbiAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyBjaGFuZ2VzXG4gICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUge0BsaW5rIFJlc3VsdCNyb290fSBpbnN0YW5jZS5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogcmVzdWx0Lm1hcC50b0pTT04oKSAvLz0+IHsgdmVyc2lvbjogMywgZmlsZTogJ2EuY3NzJywg4oCmIH1cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogaWYgKCByZXN1bHQubWFwICkge1xuICAgICAgICAgKiAgIGZzLndyaXRlRmlsZVN5bmMocmVzdWx0Lm9wdHMudG8gKyAnLm1hcCcsIHJlc3VsdC5tYXAudG9TdHJpbmcoKSk7XG4gICAgICAgICAqIH1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubWFwID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgZm9yIEB7bGluayBSZXN1bHQjY3NzfSBjb250ZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiByZXN1bHQgKyAnJyA9PT0gcmVzdWx0LmNzc1xuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBzdHJpbmcgcmVwcmVzZW50aW5nIG9mIHtAbGluayBSZXN1bHQjcm9vdH1cbiAgICAgKi9cbiAgICB0b1N0cmluZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3NzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2Yge0BsaW5rIFdhcm5pbmd9IGFuZCBhZGRzIGl0XG4gICAgICogdG8ge0BsaW5rIFJlc3VsdCNtZXNzYWdlc30uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAgICAgICAgLSB3YXJuaW5nIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdICAgICAgLSB3YXJuaW5nIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0ge05vZGV9ICAgb3B0cy5ub2RlICAgLSBDU1Mgbm9kZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLndvcmQgICAtIHdvcmQgaW4gQ1NTIHNvdXJjZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmluZGV4ICAtIGluZGV4IGluIENTUyBub2RlIHN0cmluZyB0aGF0IGNhdXNlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB3YXJuaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMucGx1Z2luIC0gbmFtZSBvZiB0aGUgcGx1Z2luIHRoYXQgY3JlYXRlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgd2FybmluZy4ge0BsaW5rIFJlc3VsdCN3YXJufSBmaWxsc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcHJvcGVydHkgYXV0b21hdGljYWxseS5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1dhcm5pbmd9IGNyZWF0ZWQgd2FybmluZ1xuICAgICAqL1xuICAgIHdhcm4odGV4dCwgb3B0cyA9IHsgfSkge1xuICAgICAgICBpZiAoICFvcHRzLnBsdWdpbiApIHtcbiAgICAgICAgICAgIGlmICggdGhpcy5sYXN0UGx1Z2luICYmIHRoaXMubGFzdFBsdWdpbi5wb3N0Y3NzUGx1Z2luICkge1xuICAgICAgICAgICAgICAgIG9wdHMucGx1Z2luID0gdGhpcy5sYXN0UGx1Z2luLnBvc3Rjc3NQbHVnaW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgd2FybmluZyA9IG5ldyBXYXJuaW5nKHRleHQsIG9wdHMpO1xuICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2god2FybmluZyk7XG5cbiAgICAgICAgcmV0dXJuIHdhcm5pbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3YXJuaW5ncyBmcm9tIHBsdWdpbnMuIEZpbHRlcnMge0BsaW5rIFdhcm5pbmd9IGluc3RhbmNlc1xuICAgICAqIGZyb20ge0BsaW5rIFJlc3VsdCNtZXNzYWdlc30uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJlc3VsdC53YXJuaW5ncygpLmZvckVhY2god2FybiA9PiB7XG4gICAgICogICBjb25zb2xlLndhcm4od2Fybi50b1N0cmluZygpKTtcbiAgICAgKiB9KTtcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1dhcm5pbmdbXX0gd2FybmluZ3MgZnJvbSBwbHVnaW5zXG4gICAgICovXG4gICAgd2FybmluZ3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzLmZpbHRlciggaSA9PiBpLnR5cGUgPT09ICd3YXJuaW5nJyApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFuIGFsaWFzIGZvciB0aGUge0BsaW5rIFJlc3VsdCNjc3N9IHByb3BlcnR5LlxuICAgICAqIFVzZSBpdCB3aXRoIHN5bnRheGVzIHRoYXQgZ2VuZXJhdGUgbm9uLUNTUyBvdXRwdXQuXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcmVzdWx0LmNzcyA9PT0gcmVzdWx0LmNvbnRlbnQ7XG4gICAgICovXG4gICAgZ2V0IGNvbnRlbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNzcztcbiAgICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgUmVzdWx0O1xuXG4vKipcbiAqIEB0eXBlZGVmICB7b2JqZWN0fSBNZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdHlwZSAgIC0gbWVzc2FnZSB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGx1Z2luIC0gc291cmNlIFBvc3RDU1MgcGx1Z2luIG5hbWVcbiAqL1xuIl19\n","'use strict';\nvar escapeStringRegexp = require('escape-string-regexp');\nvar ansiStyles = require('ansi-styles');\nvar stripAnsi = require('strip-ansi');\nvar hasAnsi = require('has-ansi');\nvar supportsColor = require('supports-color');\nvar defineProps = Object.defineProperties;\nvar isSimpleWindowsTerm = process.platform === 'win32' && !/^xterm/i.test(process.env.TERM);\n\nfunction Chalk(options) {\n\t// detect mode if not set manually\n\tthis.enabled = !options || options.enabled === undefined ? supportsColor : options.enabled;\n}\n\n// use bright blue on Windows as the normal blue color is illegible\nif (isSimpleWindowsTerm) {\n\tansiStyles.blue.open = '\\u001b[94m';\n}\n\nvar styles = (function () {\n\tvar ret = {};\n\n\tObject.keys(ansiStyles).forEach(function (key) {\n\t\tansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n\n\t\tret[key] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, this._styles.concat(key));\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n})();\n\nvar proto = defineProps(function chalk() {}, styles);\n\nfunction build(_styles) {\n\tvar builder = function () {\n\t\treturn applyStyle.apply(builder, arguments);\n\t};\n\n\tbuilder._styles = _styles;\n\tbuilder.enabled = this.enabled;\n\t// __proto__ is used because we must return a function, but there is\n\t// no way to create a function with a different prototype.\n\t/* eslint-disable no-proto */\n\tbuilder.__proto__ = proto;\n\n\treturn builder;\n}\n\nfunction applyStyle() {\n\t// support varags, but simply cast to string in case there's only one arg\n\tvar args = arguments;\n\tvar argsLen = args.length;\n\tvar str = argsLen !== 0 && String(arguments[0]);\n\n\tif (argsLen > 1) {\n\t\t// don't slice `arguments`, it prevents v8 optimizations\n\t\tfor (var a = 1; a < argsLen; a++) {\n\t\t\tstr += ' ' + args[a];\n\t\t}\n\t}\n\n\tif (!this.enabled || !str) {\n\t\treturn str;\n\t}\n\n\tvar nestedStyles = this._styles;\n\tvar i = nestedStyles.length;\n\n\t// Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,\n\t// see https://github.com/chalk/chalk/issues/58\n\t// If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.\n\tvar originalDim = ansiStyles.dim.open;\n\tif (isSimpleWindowsTerm && (nestedStyles.indexOf('gray') !== -1 || nestedStyles.indexOf('grey') !== -1)) {\n\t\tansiStyles.dim.open = '';\n\t}\n\n\twhile (i--) {\n\t\tvar code = ansiStyles[nestedStyles[i]];\n\n\t\t// Replace any instances already present with a re-opening code\n\t\t// otherwise only the part of the string until said closing code\n\t\t// will be colored, and the rest will simply be 'plain'.\n\t\tstr = code.open + str.replace(code.closeRe, code.open) + code.close;\n\t}\n\n\t// Reset the original 'dim' if we changed it to work around the Windows dimmed gray issue.\n\tansiStyles.dim.open = originalDim;\n\n\treturn str;\n}\n\nfunction init() {\n\tvar ret = {};\n\n\tObject.keys(styles).forEach(function (name) {\n\t\tret[name] = {\n\t\t\tget: function () {\n\t\t\t\treturn build.call(this, [name]);\n\t\t\t}\n\t\t};\n\t});\n\n\treturn ret;\n}\n\ndefineProps(Chalk.prototype, init());\n\nmodule.exports = new Chalk();\nmodule.exports.styles = ansiStyles;\nmodule.exports.hasColor = hasAnsi;\nmodule.exports.stripColor = stripAnsi;\nmodule.exports.supportsColor = supportsColor;\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","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\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 setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\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 setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _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\nvar _mapGenerator = require('./map-generator');\n\nvar _mapGenerator2 = _interopRequireDefault(_mapGenerator);\n\nvar _stringify2 = require('./stringify');\n\nvar _stringify3 = _interopRequireDefault(_stringify2);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\n\nvar _result = require('./result');\n\nvar _result2 = _interopRequireDefault(_result);\n\nvar _parse = require('./parse');\n\nvar _parse2 = _interopRequireDefault(_parse);\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 isPromise(obj) {\n return (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && typeof obj.then === 'function';\n}\n\n/**\n * A Promise proxy for the result of PostCSS transformations.\n *\n * A `LazyResult` instance is returned by {@link Processor#process}.\n *\n * @example\n * const lazy = postcss([cssnext]).process(css);\n */\n\nvar LazyResult = function () {\n function LazyResult(processor, css, opts) {\n _classCallCheck(this, LazyResult);\n\n this.stringified = false;\n this.processed = false;\n\n var root = void 0;\n if ((typeof css === 'undefined' ? 'undefined' : _typeof(css)) === 'object' && css.type === 'root') {\n root = css;\n } else if (css instanceof LazyResult || css instanceof _result2.default) {\n root = css.root;\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {};\n if (!opts.map.inline) opts.map.inline = false;\n opts.map.prev = css.map;\n }\n } else {\n var parser = _parse2.default;\n if (opts.syntax) parser = opts.syntax.parse;\n if (opts.parser) parser = opts.parser;\n if (parser.parse) parser = parser.parse;\n\n try {\n root = parser(css, opts);\n } catch (error) {\n this.error = error;\n }\n }\n\n this.result = new _result2.default(processor, root, opts);\n }\n\n /**\n * Returns a {@link Processor} instance, which will be used\n * for CSS transformations.\n * @type {Processor}\n */\n\n\n /**\n * Processes input CSS through synchronous plugins\n * and calls {@link Result#warnings()}.\n *\n * @return {Warning[]} warnings from plugins\n */\n LazyResult.prototype.warnings = function warnings() {\n return this.sync().warnings();\n };\n\n /**\n * Alias for the {@link LazyResult#css} property.\n *\n * @example\n * lazy + '' === lazy.css;\n *\n * @return {string} output CSS\n */\n\n\n LazyResult.prototype.toString = function toString() {\n return this.css;\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls `onFulfilled` with a Result instance. If a plugin throws\n * an error, the `onRejected` callback will be executed.\n *\n * It implements standard Promise API.\n *\n * @param {onFulfilled} onFulfilled - callback will be executed\n * when all plugins will finish work\n * @param {onRejected} onRejected - callback will be executed on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * });\n */\n\n\n LazyResult.prototype.then = function then(onFulfilled, onRejected) {\n return this.async().then(onFulfilled, onRejected);\n };\n\n /**\n * Processes input CSS through synchronous and asynchronous plugins\n * and calls onRejected for each error thrown in any plugin.\n *\n * It implements standard Promise API.\n *\n * @param {onRejected} onRejected - callback will be executed on any error\n *\n * @return {Promise} Promise API to make queue\n *\n * @example\n * postcss([cssnext]).process(css).then(result => {\n * console.log(result.css);\n * }).catch(error => {\n * console.error(error);\n * });\n */\n\n\n LazyResult.prototype.catch = function _catch(onRejected) {\n return this.async().catch(onRejected);\n };\n\n LazyResult.prototype.handleError = function handleError(error, plugin) {\n try {\n this.error = error;\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin;\n error.setMessage();\n } else if (plugin.postcssVersion) {\n var pluginName = plugin.postcssPlugin;\n var pluginVer = plugin.postcssVersion;\n var runtimeVer = this.result.processor.version;\n var a = pluginVer.split('.');\n var b = runtimeVer.split('.');\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n (0, _warnOnce2.default)('Your current PostCSS version ' + 'is ' + runtimeVer + ', but ' + pluginName + ' ' + 'uses ' + pluginVer + '. Perhaps this is ' + 'the source of the error below.');\n }\n }\n } catch (err) {\n if (console && console.error) console.error(err);\n }\n };\n\n LazyResult.prototype.asyncTick = function asyncTick(resolve, reject) {\n var _this = this;\n\n if (this.plugin >= this.processor.plugins.length) {\n this.processed = true;\n return resolve();\n }\n\n try {\n var plugin = this.processor.plugins[this.plugin];\n var promise = this.run(plugin);\n this.plugin += 1;\n\n if (isPromise(promise)) {\n promise.then(function () {\n _this.asyncTick(resolve, reject);\n }).catch(function (error) {\n _this.handleError(error, plugin);\n _this.processed = true;\n reject(error);\n });\n } else {\n this.asyncTick(resolve, reject);\n }\n } catch (error) {\n this.processed = true;\n reject(error);\n }\n };\n\n LazyResult.prototype.async = function async() {\n var _this2 = this;\n\n if (this.processed) {\n return new Promise(function (resolve, reject) {\n if (_this2.error) {\n reject(_this2.error);\n } else {\n resolve(_this2.stringify());\n }\n });\n }\n if (this.processing) {\n return this.processing;\n }\n\n this.processing = new Promise(function (resolve, reject) {\n if (_this2.error) return reject(_this2.error);\n _this2.plugin = 0;\n _this2.asyncTick(resolve, reject);\n }).then(function () {\n _this2.processed = true;\n return _this2.stringify();\n });\n\n return this.processing;\n };\n\n LazyResult.prototype.sync = function sync() {\n if (this.processed) return this.result;\n this.processed = true;\n\n if (this.processing) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n\n if (this.error) throw this.error;\n\n for (var _iterator = this.result.processor.plugins, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var plugin = _ref;\n\n var promise = this.run(plugin);\n if (isPromise(promise)) {\n throw new Error('Use process(css).then(cb) to work with async plugins');\n }\n }\n\n return this.result;\n };\n\n LazyResult.prototype.run = function run(plugin) {\n this.result.lastPlugin = plugin;\n\n try {\n return plugin(this.result.root, this.result);\n } catch (error) {\n this.handleError(error, plugin);\n throw error;\n }\n };\n\n LazyResult.prototype.stringify = function stringify() {\n if (this.stringified) return this.result;\n this.stringified = true;\n\n this.sync();\n\n var opts = this.result.opts;\n var str = _stringify3.default;\n if (opts.syntax) str = opts.syntax.stringify;\n if (opts.stringifier) str = opts.stringifier;\n if (str.stringify) str = str.stringify;\n\n var map = new _mapGenerator2.default(str, this.result.root, this.result.opts);\n var data = map.generate();\n this.result.css = data[0];\n this.result.map = data[1];\n\n return this.result;\n };\n\n _createClass(LazyResult, [{\n key: 'processor',\n get: function get() {\n return this.result.processor;\n }\n\n /**\n * Options from the {@link Processor#process} call.\n * @type {processOptions}\n */\n\n }, {\n key: 'opts',\n get: function get() {\n return this.result.opts;\n }\n\n /**\n * Processes input CSS through synchronous plugins, converts `Root`\n * to a CSS string and returns {@link Result#css}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#css\n */\n\n }, {\n key: 'css',\n get: function get() {\n return this.stringify().css;\n }\n\n /**\n * An alias for the `css` property. Use it with syntaxes\n * that generate non-CSS output.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {string}\n * @see Result#content\n */\n\n }, {\n key: 'content',\n get: function get() {\n return this.stringify().content;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#map}.\n *\n * This property will only work with synchronous plugins.\n * If the processor contains any asynchronous plugins\n * it will throw an error. This is why this method is only\n * for debug purpose, you should always use {@link LazyResult#then}.\n *\n * @type {SourceMapGenerator}\n * @see Result#map\n */\n\n }, {\n key: 'map',\n get: function get() {\n return this.stringify().map;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#root}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Root}\n * @see Result#root\n */\n\n }, {\n key: 'root',\n get: function get() {\n return this.sync().root;\n }\n\n /**\n * Processes input CSS through synchronous plugins\n * and returns {@link Result#messages}.\n *\n * This property will only work with synchronous plugins. If the processor\n * contains any asynchronous plugins it will throw an error.\n *\n * This is why this method is only for debug purpose,\n * you should always use {@link LazyResult#then}.\n *\n * @type {Message[]}\n * @see Result#messages\n */\n\n }, {\n key: 'messages',\n get: function get() {\n return this.sync().messages;\n }\n }]);\n\n return LazyResult;\n}();\n\nexports.default = LazyResult;\n\n/**\n * @callback onFulfilled\n * @param {Result} result\n */\n\n/**\n * @callback onRejected\n * @param {Error} error\n */\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxhenktcmVzdWx0LmVzNiJdLCJuYW1lcyI6WyJpc1Byb21pc2UiLCJvYmoiLCJ0aGVuIiwiTGF6eVJlc3VsdCIsInByb2Nlc3NvciIsImNzcyIsIm9wdHMiLCJzdHJpbmdpZmllZCIsInByb2Nlc3NlZCIsInJvb3QiLCJ0eXBlIiwibWFwIiwiaW5saW5lIiwicHJldiIsInBhcnNlciIsInN5bnRheCIsInBhcnNlIiwiZXJyb3IiLCJyZXN1bHQiLCJ3YXJuaW5ncyIsInN5bmMiLCJ0b1N0cmluZyIsIm9uRnVsZmlsbGVkIiwib25SZWplY3RlZCIsImFzeW5jIiwiY2F0Y2giLCJoYW5kbGVFcnJvciIsInBsdWdpbiIsIm5hbWUiLCJwb3N0Y3NzUGx1Z2luIiwic2V0TWVzc2FnZSIsInBvc3Rjc3NWZXJzaW9uIiwicGx1Z2luTmFtZSIsInBsdWdpblZlciIsInJ1bnRpbWVWZXIiLCJ2ZXJzaW9uIiwiYSIsInNwbGl0IiwiYiIsInBhcnNlSW50IiwiZXJyIiwiY29uc29sZSIsImFzeW5jVGljayIsInJlc29sdmUiLCJyZWplY3QiLCJwbHVnaW5zIiwibGVuZ3RoIiwicHJvbWlzZSIsInJ1biIsIlByb21pc2UiLCJzdHJpbmdpZnkiLCJwcm9jZXNzaW5nIiwiRXJyb3IiLCJsYXN0UGx1Z2luIiwic3RyIiwic3RyaW5naWZpZXIiLCJkYXRhIiwiZ2VuZXJhdGUiLCJjb250ZW50IiwibWVzc2FnZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7QUFFQSxTQUFTQSxTQUFULENBQW1CQyxHQUFuQixFQUF3QjtBQUNwQixXQUFPLFFBQU9BLEdBQVAseUNBQU9BLEdBQVAsT0FBZSxRQUFmLElBQTJCLE9BQU9BLElBQUlDLElBQVgsS0FBb0IsVUFBdEQ7QUFDSDs7QUFFRDs7Ozs7Ozs7O0lBUU1DLFU7QUFFRix3QkFBWUMsU0FBWixFQUF1QkMsR0FBdkIsRUFBNEJDLElBQTVCLEVBQWtDO0FBQUE7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LENBQVlaLElBQXBELENBQVg7QUFDQSxZQUFJa0QsT0FBTzdDLElBQUk4QyxRQUFKLEVBQVg7QUFDQSxhQUFLdkMsTUFBTCxDQUFZYixHQUFaLEdBQWtCbUQsS0FBSyxDQUFMLENBQWxCO0FBQ0EsYUFBS3RDLE1BQUwsQ0FBWVAsR0FBWixHQUFrQjZDLEtBQUssQ0FBTCxDQUFsQjs7QUFFQSxlQUFPLEtBQUt0QyxNQUFaO0FBQ0gsSzs7Ozs0QkFsU2U7QUFDWixtQkFBTyxLQUFLQSxNQUFMLENBQVlkLFNBQW5CO0FBQ0g7O0FBRUQ7Ozs7Ozs7NEJBSVc7QUFDUCxtQkFBTyxLQUFLYyxNQUFMLENBQVlaLElBQW5CO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs0QkFZVTtBQUNOLG1CQUFPLEtBQUs0QyxTQUFMLEdBQWlCN0MsR0FBeEI7QUFDSDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OzRCQVljO0FBQ1YsbUJBQU8sS0FBSzZDLFNBQUwsR0FBaUJRLE9BQXhCO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs0QkFZVTtBQUNOLG1CQUFPLEtBQUtSLFNBQUwsR0FBaUJ2QyxHQUF4QjtBQUNIOztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OzRCQWFXO0FBQ1AsbUJBQU8sS0FBS1MsSUFBTCxHQUFZWCxJQUFuQjtBQUNIOztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7OzRCQWFlO0FBQ1gsbUJBQU8sS0FBS1csSUFBTCxHQUFZdUMsUUFBbkI7QUFDSDs7Ozs7O2tCQTBNVXhELFU7O0FBRWY7Ozs7O0FBS0EiLCJmaWxlIjoibGF6eS1yZXN1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTWFwR2VuZXJhdG9yIGZyb20gJy4vbWFwLWdlbmVyYXRvcic7XG5pbXBvcnQgc3RyaW5naWZ5ICAgIGZyb20gJy4vc3RyaW5naWZ5JztcbmltcG9ydCB3YXJuT25jZSAgICAgZnJvbSAnLi93YXJuLW9uY2UnO1xuaW1wb3J0IFJlc3VsdCAgICAgICBmcm9tICcuL3Jlc3VsdCc7XG5pbXBvcnQgcGFyc2UgICAgICAgIGZyb20gJy4vcGFyc2UnO1xuXG5mdW5jdGlvbiBpc1Byb21pc2Uob2JqKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIHR5cGVvZiBvYmoudGhlbiA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBBIFByb21pc2UgcHJveHkgZm9yIHRoZSByZXN1bHQgb2YgUG9zdENTUyB0cmFuc2Zvcm1hdGlvbnMuXG4gKlxuICogQSBgTGF6eVJlc3VsdGAgaW5zdGFuY2UgaXMgcmV0dXJuZWQgYnkge0BsaW5rIFByb2Nlc3NvciNwcm9jZXNzfS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgbGF6eSA9IHBvc3Rjc3MoW2Nzc25leHRdKS5wcm9jZXNzKGNzcyk7XG4gKi9cbmNsYXNzIExhenlSZXN1bHQge1xuXG4gICAgY29uc3RydWN0b3IocHJvY2Vzc29yLCBjc3MsIG9wdHMpIHtcbiAgICAgICAgdGhpcy5zdHJpbmdpZmllZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnByb2Nlc3NlZCAgID0gZmFsc2U7XG5cbiAgICAgICAgbGV0IHJvb3Q7XG4gICAgICAgIGlmICggdHlwZW9mIGNzcyA9PT0gJ29iamVjdCcgJiYgY3NzLnR5cGUgPT09ICdyb290JyApIHtcbiAgICAgICAgICAgIHJvb3QgPSBjc3M7XG4gICAgICAgIH0gZWxzZSBpZiAoIGNzcyBpbnN0YW5jZW9mIExhenlSZXN1bHQgfHwgY3NzIGluc3RhbmNlb2YgUmVzdWx0ICkge1xuICAgICAgICAgICAgcm9vdCA9IGNzcy5yb290O1xuICAgICAgICAgICAgaWYgKCBjc3MubWFwICkge1xuICAgICAgICAgICAgICAgIGlmICggdHlwZW9mIG9wdHMubWFwID09PSAndW5kZWZpbmVkJyApIG9wdHMubWFwID0geyB9O1xuICAgICAgICAgICAgICAgIGlmICggIW9wdHMubWFwLmlubGluZSApIG9wdHMubWFwLmlubGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIG9wdHMubWFwLnByZXYgPSBjc3MubWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhcnNlciA9IHBhcnNlO1xuICAgICAgICAgICAgaWYgKCBvcHRzLnN5bnRheCApICBwYXJzZXIgPSBvcHRzLnN5bnRheC5wYXJzZTtcbiAgICAgICAgICAgIGlmICggb3B0cy5wYXJzZXIgKSAgcGFyc2VyID0gb3B0cy5wYXJzZXI7XG4gICAgICAgICAgICBpZiAoIHBhcnNlci5wYXJzZSApIHBhcnNlciA9IHBhcnNlci5wYXJzZTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByb290ID0gcGFyc2VyKGNzcywgb3B0cyk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzdWx0ID0gbmV3IFJlc3VsdChwcm9jZXNzb3IsIHJvb3QsIG9wdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSB7QGxpbmsgUHJvY2Vzc29yfSBpbnN0YW5jZSwgd2hpY2ggd2lsbCBiZSB1c2VkXG4gICAgICogZm9yIENTUyB0cmFuc2Zvcm1hdGlvbnMuXG4gICAgICogQHR5cGUge1Byb2Nlc3Nvcn1cbiAgICAgKi9cbiAgICBnZXQgcHJvY2Vzc29yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHQucHJvY2Vzc29yO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9wdGlvbnMgZnJvbSB0aGUge0BsaW5rIFByb2Nlc3NvciNwcm9jZXNzfSBjYWxsLlxuICAgICAqIEB0eXBlIHtwcm9jZXNzT3B0aW9uc31cbiAgICAgKi9cbiAgICBnZXQgb3B0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0Lm9wdHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGlucHV0IENTUyB0aHJvdWdoIHN5bmNocm9ub3VzIHBsdWdpbnMsIGNvbnZlcnRzIGBSb290YFxuICAgICAqIHRvIGEgQ1NTIHN0cmluZyBhbmQgcmV0dXJucyB7QGxpbmsgUmVzdWx0I2Nzc30uXG4gICAgICpcbiAgICAgKiBUaGlzIHByb3BlcnR5IHdpbGwgb25seSB3b3JrIHdpdGggc3luY2hyb25vdXMgcGx1Z2lucy5cbiAgICAgKiBJZiB0aGUgcHJvY2Vzc29yIGNvbnRhaW5zIGFueSBhc3luY2hyb25vdXMgcGx1Z2luc1xuICAgICAqIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuIFRoaXMgaXMgd2h5IHRoaXMgbWV0aG9kIGlzIG9ubHlcbiAgICAgKiBmb3IgZGVidWcgcHVycG9zZSwgeW91IHNob3VsZCBhbHdheXMgdXNlIHtAbGluayBMYXp5UmVzdWx0I3RoZW59LlxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKiBAc2VlIFJlc3VsdCNjc3NcbiAgICAgKi9cbiAgICBnZXQgY3NzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jc3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW4gYWxpYXMgZm9yIHRoZSBgY3NzYCBwcm9wZXJ0eS4gVXNlIGl0IHdpdGggc3ludGF4ZXNcbiAgICAgKiB0aGF0IGdlbmVyYXRlIG5vbi1DU1Mgb3V0cHV0LlxuICAgICAqXG4gICAgICogVGhpcyBwcm9wZXJ0eSB3aWxsIG9ubHkgd29yayB3aXRoIHN5bmNocm9ub3VzIHBsdWdpbnMuXG4gICAgICogSWYgdGhlIHByb2Nlc3NvciBjb250YWlucyBhbnkgYXN5bmNocm9ub3VzIHBsdWdpbnNcbiAgICAgKiBpdCB3aWxsIHRocm93IGFuIGVycm9yLiBUaGlzIGlzIHdoeSB0aGlzIG1ldGhvZCBpcyBvbmx5XG4gICAgICogZm9yIGRlYnVnIHB1cnBvc2UsIHlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICogQHNlZSBSZXN1bHQjY29udGVudFxuICAgICAqL1xuICAgIGdldCBjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdpZnkoKS5jb250ZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBpbnB1dCBDU1MgdGhyb3VnaCBzeW5jaHJvbm91cyBwbHVnaW5zXG4gICAgICogYW5kIHJldHVybnMge0BsaW5rIFJlc3VsdCNtYXB9LlxuICAgICAqXG4gICAgICogVGhpcyBwcm9wZXJ0eSB3aWxsIG9ubHkgd29yayB3aXRoIHN5bmNocm9ub3VzIHBsdWdpbnMuXG4gICAgICogSWYgdGhlIHByb2Nlc3NvciBjb250YWlucyBhbnkgYXN5bmNocm9ub3VzIHBsdWdpbnNcbiAgICAgKiBpdCB3aWxsIHRocm93IGFuIGVycm9yLiBUaGlzIGlzIHdoeSB0aGlzIG1ldGhvZCBpcyBvbmx5XG4gICAgICogZm9yIGRlYnVnIHB1cnBvc2UsIHlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtTb3VyY2VNYXBHZW5lcmF0b3J9XG4gICAgICogQHNlZSBSZXN1bHQjbWFwXG4gICAgICovXG4gICAgZ2V0IG1hcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5naWZ5KCkubWFwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyBpbnB1dCBDU1MgdGhyb3VnaCBzeW5jaHJvbm91cyBwbHVnaW5zXG4gICAgICogYW5kIHJldHVybnMge0BsaW5rIFJlc3VsdCNyb290fS5cbiAgICAgKlxuICAgICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IHdvcmsgd2l0aCBzeW5jaHJvbm91cyBwbHVnaW5zLiBJZiB0aGUgcHJvY2Vzc29yXG4gICAgICogY29udGFpbnMgYW55IGFzeW5jaHJvbm91cyBwbHVnaW5zIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHdoeSB0aGlzIG1ldGhvZCBpcyBvbmx5IGZvciBkZWJ1ZyBwdXJwb3NlLFxuICAgICAqIHlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtSb290fVxuICAgICAqIEBzZWUgUmVzdWx0I3Jvb3RcbiAgICAgKi9cbiAgICBnZXQgcm9vdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3luYygpLnJvb3Q7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGlucHV0IENTUyB0aHJvdWdoIHN5bmNocm9ub3VzIHBsdWdpbnNcbiAgICAgKiBhbmQgcmV0dXJucyB7QGxpbmsgUmVzdWx0I21lc3NhZ2VzfS5cbiAgICAgKlxuICAgICAqIFRoaXMgcHJvcGVydHkgd2lsbCBvbmx5IHdvcmsgd2l0aCBzeW5jaHJvbm91cyBwbHVnaW5zLiBJZiB0aGUgcHJvY2Vzc29yXG4gICAgICogY29udGFpbnMgYW55IGFzeW5jaHJvbm91cyBwbHVnaW5zIGl0IHdpbGwgdGhyb3cgYW4gZXJyb3IuXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIHdoeSB0aGlzIG1ldGhvZCBpcyBvbmx5IGZvciBkZWJ1ZyBwdXJwb3NlLFxuICAgICAqIHlvdSBzaG91bGQgYWx3YXlzIHVzZSB7QGxpbmsgTGF6eVJlc3VsdCN0aGVufS5cbiAgICAgKlxuICAgICAqIEB0eXBlIHtNZXNzYWdlW119XG4gICAgICogQHNlZSBSZXN1bHQjbWVzc2FnZXNcbiAgICAgKi9cbiAgICBnZXQgbWVzc2FnZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN5bmMoKS5tZXNzYWdlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgaW5wdXQgQ1NTIHRocm91Z2ggc3luY2hyb25vdXMgcGx1Z2luc1xuICAgICAqIGFuZCBjYWxscyB7QGxpbmsgUmVzdWx0I3dhcm5pbmdzKCl9LlxuICAgICAqXG4gICAgICogQHJldHVybiB7V2FybmluZ1tdfSB3YXJuaW5ncyBmcm9tIHBsdWdpbnNcbiAgICAgKi9cbiAgICB3YXJuaW5ncygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3luYygpLndhcm5pbmdzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWxpYXMgZm9yIHRoZSB7QGxpbmsgTGF6eVJlc3VsdCNjc3N9IHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBsYXp5ICsgJycgPT09IGxhenkuY3NzO1xuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBvdXRwdXQgQ1NTXG4gICAgICovXG4gICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNzcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzZXMgaW5wdXQgQ1NTIHRocm91Z2ggc3luY2hyb25vdXMgYW5kIGFzeW5jaHJvbm91cyBwbHVnaW5zXG4gICAgICogYW5kIGNhbGxzIGBvbkZ1bGZpbGxlZGAgd2l0aCBhIFJlc3VsdCBpbnN0YW5jZS4gSWYgYSBwbHVnaW4gdGhyb3dzXG4gICAgICogYW4gZXJyb3IsIHRoZSBgb25SZWplY3RlZGAgY2FsbGJhY2sgd2lsbCBiZSBleGVjdXRlZC5cbiAgICAgKlxuICAgICAqIEl0IGltcGxlbWVudHMgc3RhbmRhcmQgUHJvbWlzZSBBUEkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge29uRnVsZmlsbGVkfSBvbkZ1bGZpbGxlZCAtIGNhbGxiYWNrIHdpbGwgYmUgZXhlY3V0ZWRcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gYWxsIHBsdWdpbnMgd2lsbCBmaW5pc2ggd29ya1xuICAgICAqIEBwYXJhbSB7b25SZWplY3RlZH0gIG9uUmVqZWN0ZWQgIC0gY2FsbGJhY2sgd2lsbCBiZSBleGVjdXRlZCBvbiBhbnkgZXJyb3JcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge1Byb21pc2V9IFByb21pc2UgQVBJIHRvIG1ha2UgcXVldWVcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcG9zdGNzcyhbY3NzbmV4dF0pLnByb2Nlc3MoY3NzKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICogICBjb25zb2xlLmxvZyhyZXN1bHQuY3NzKTtcbiAgICAgKiB9KTtcbiAgICAgKi9cbiAgICB0aGVuKG9uRnVsZmlsbGVkLCBvblJlamVjdGVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFzeW5jKCkudGhlbihvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2Vzc2VzIGlucHV0IENTUyB0aHJvdWdoIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgcGx1Z2luc1xuICAgICAqIGFuZCBjYWxscyBvblJlamVjdGVkIGZvciBlYWNoIGVycm9yIHRocm93biBpbiBhbnkgcGx1Z2luLlxuICAgICAqXG4gICAgICogSXQgaW1wbGVtZW50cyBzdGFuZGFyZCBQcm9taXNlIEFQSS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b25SZWplY3RlZH0gb25SZWplY3RlZCAtIGNhbGxiYWNrIHdpbGwgYmUgZXhlY3V0ZWQgb24gYW55IGVycm9yXG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlfSBQcm9taXNlIEFQSSB0byBtYWtlIHF1ZXVlXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHBvc3Rjc3MoW2Nzc25leHRdKS5wcm9jZXNzKGNzcykudGhlbihyZXN1bHQgPT4ge1xuICAgICAqICAgY29uc29sZS5sb2cocmVzdWx0LmNzcyk7XG4gICAgICogfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAqICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICogfSk7XG4gICAgICovXG4gICAgY2F0Y2gob25SZWplY3RlZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hc3luYygpLmNhdGNoKG9uUmVqZWN0ZWQpO1xuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKGVycm9yLCBwbHVnaW4pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgIGlmICggZXJyb3IubmFtZSA9PT0gJ0Nzc1N5bnRheEVycm9yJyAmJiAhZXJyb3IucGx1Z2luICkge1xuICAgICAgICAgICAgICAgIGVycm9yLnBsdWdpbiA9IHBsdWdpbi5wb3N0Y3NzUGx1Z2luO1xuICAgICAgICAgICAgICAgIGVycm9yLnNldE1lc3NhZ2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIHBsdWdpbi5wb3N0Y3NzVmVyc2lvbiApIHtcbiAgICAgICAgICAgICAgICBsZXQgcGx1Z2luTmFtZSA9IHBsdWdpbi5wb3N0Y3NzUGx1Z2luO1xuICAgICAgICAgICAgICAgIGxldCBwbHVnaW5WZXIgID0gcGx1Z2luLnBvc3Rjc3NWZXJzaW9uO1xuICAgICAgICAgICAgICAgIGxldCBydW50aW1lVmVyID0gdGhpcy5yZXN1bHQucHJvY2Vzc29yLnZlcnNpb247XG4gICAgICAgICAgICAgICAgbGV0IGEgPSBwbHVnaW5WZXIuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgYiA9IHJ1bnRpbWVWZXIuc3BsaXQoJy4nKTtcblxuICAgICAgICAgICAgICAgIGlmICggYVswXSAhPT0gYlswXSB8fCBwYXJzZUludChhWzFdKSA+IHBhcnNlSW50KGJbMV0pICkge1xuICAgICAgICAgICAgICAgICAgICB3YXJuT25jZSgnWW91ciBjdXJyZW50IFBvc3RDU1MgdmVyc2lvbiAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzICcgKyBydW50aW1lVmVyICsgJywgYnV0ICcgKyBwbHVnaW5OYW1lICsgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXMgJyArIHBsdWdpblZlciArICcuIFBlcmhhcHMgdGhpcyBpcyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBzb3VyY2Ugb2YgdGhlIGVycm9yIGJlbG93LicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBpZiAoIGNvbnNvbGUgJiYgY29uc29sZS5lcnJvciApIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jVGljayhyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgaWYgKCB0aGlzLnBsdWdpbiA+PSB0aGlzLnByb2Nlc3Nvci5wbHVnaW5zLmxlbmd0aCApIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHBsdWdpbiAgPSB0aGlzLnByb2Nlc3Nvci5wbHVnaW5zW3RoaXMucGx1Z2luXTtcbiAgICAgICAgICAgIGxldCBwcm9taXNlID0gdGhpcy5ydW4ocGx1Z2luKTtcbiAgICAgICAgICAgIHRoaXMucGx1Z2luICs9IDE7XG5cbiAgICAgICAgICAgIGlmICggaXNQcm9taXNlKHByb21pc2UpICkge1xuICAgICAgICAgICAgICAgIHByb21pc2UudGhlbiggKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzeW5jVGljayhyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IsIHBsdWdpbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hc3luY1RpY2socmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jKCkge1xuICAgICAgICBpZiAoIHRoaXMucHJvY2Vzc2VkICkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCB0aGlzLmVycm9yICkge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QodGhpcy5lcnJvcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnN0cmluZ2lmeSgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHRoaXMucHJvY2Vzc2luZyApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3Npbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByb2Nlc3NpbmcgPSBuZXcgUHJvbWlzZSggKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKCB0aGlzLmVycm9yICkgcmV0dXJuIHJlamVjdCh0aGlzLmVycm9yKTtcbiAgICAgICAgICAgIHRoaXMucGx1Z2luID0gMDtcbiAgICAgICAgICAgIHRoaXMuYXN5bmNUaWNrKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH0pLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ2lmeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzaW5nO1xuICAgIH1cblxuICAgIHN5bmMoKSB7XG4gICAgICAgIGlmICggdGhpcy5wcm9jZXNzZWQgKSByZXR1cm4gdGhpcy5yZXN1bHQ7XG4gICAgICAgIHRoaXMucHJvY2Vzc2VkID0gdHJ1ZTtcblxuICAgICAgICBpZiAoIHRoaXMucHJvY2Vzc2luZyApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnVXNlIHByb2Nlc3MoY3NzKS50aGVuKGNiKSB0byB3b3JrIHdpdGggYXN5bmMgcGx1Z2lucycpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCB0aGlzLmVycm9yICkgdGhyb3cgdGhpcy5lcnJvcjtcblxuICAgICAgICBmb3IgKCBsZXQgcGx1Z2luIG9mIHRoaXMucmVzdWx0LnByb2Nlc3Nvci5wbHVnaW5zICkge1xuICAgICAgICAgICAgbGV0IHByb21pc2UgPSB0aGlzLnJ1bihwbHVnaW4pO1xuICAgICAgICAgICAgaWYgKCBpc1Byb21pc2UocHJvbWlzZSkgKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAnVXNlIHByb2Nlc3MoY3NzKS50aGVuKGNiKSB0byB3b3JrIHdpdGggYXN5bmMgcGx1Z2lucycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICAgIH1cblxuICAgIHJ1bihwbHVnaW4pIHtcbiAgICAgICAgdGhpcy5yZXN1bHQubGFzdFBsdWdpbiA9IHBsdWdpbjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHBsdWdpbih0aGlzLnJlc3VsdC5yb290LCB0aGlzLnJlc3VsdCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yLCBwbHVnaW4pO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdHJpbmdpZnkoKSB7XG4gICAgICAgIGlmICggdGhpcy5zdHJpbmdpZmllZCApIHJldHVybiB0aGlzLnJlc3VsdDtcbiAgICAgICAgdGhpcy5zdHJpbmdpZmllZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5zeW5jKCk7XG5cbiAgICAgICAgbGV0IG9wdHMgPSB0aGlzLnJlc3VsdC5vcHRzO1xuICAgICAgICBsZXQgc3RyICA9IHN0cmluZ2lmeTtcbiAgICAgICAgaWYgKCBvcHRzLnN5bnRheCApICAgICAgc3RyID0gb3B0cy5zeW50YXguc3RyaW5naWZ5O1xuICAgICAgICBpZiAoIG9wdHMuc3RyaW5naWZpZXIgKSBzdHIgPSBvcHRzLnN0cmluZ2lmaWVyO1xuICAgICAgICBpZiAoIHN0ci5zdHJpbmdpZnkgKSAgICBzdHIgPSBzdHIuc3RyaW5naWZ5O1xuXG4gICAgICAgIGxldCBtYXAgID0gbmV3IE1hcEdlbmVyYXRvcihzdHIsIHRoaXMucmVzdWx0LnJvb3QsIHRoaXMucmVzdWx0Lm9wdHMpO1xuICAgICAgICBsZXQgZGF0YSA9IG1hcC5nZW5lcmF0ZSgpO1xuICAgICAgICB0aGlzLnJlc3VsdC5jc3MgPSBkYXRhWzBdO1xuICAgICAgICB0aGlzLnJlc3VsdC5tYXAgPSBkYXRhWzFdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJlc3VsdDtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF6eVJlc3VsdDtcblxuLyoqXG4gKiBAY2FsbGJhY2sgb25GdWxmaWxsZWRcbiAqIEBwYXJhbSB7UmVzdWx0fSByZXN1bHRcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBvblJlamVjdGVkXG4gKiBAcGFyYW0ge0Vycm9yfSBlcnJvclxuICovXG4iXX0=\n","'use strict';\nvar ansiRegex = require('ansi-regex')();\n\nmodule.exports = function (str) {\n\treturn typeof str === 'string' ? str.replace(ansiRegex, '') : str;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _cssSyntaxError = require('./css-syntax-error');\n\nvar _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError);\n\nvar _previousMap = require('./previous-map');\n\nvar _previousMap2 = _interopRequireDefault(_previousMap);\n\nvar _path = require('path');\n\nvar _path2 = _interopRequireDefault(_path);\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\nvar sequence = 0;\n\n/**\n * Represents the source CSS.\n *\n * @example\n * const root = postcss.parse(css, { from: file });\n * const input = root.source.input;\n */\n\nvar Input = function () {\n\n /**\n * @param {string} css - input CSS source\n * @param {object} [opts] - {@link Processor#process} options\n */\n function Input(css) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Input);\n\n /**\n * @member {string} - input CSS source\n *\n * @example\n * const input = postcss.parse('a{}', { from: file }).input;\n * input.css //=> \"a{}\";\n */\n this.css = css.toString();\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.css = this.css.slice(1);\n }\n\n if (opts.from) {\n if (/^\\w+:\\/\\//.test(opts.from)) {\n /**\n * @member {string} - The absolute path to the CSS source file\n * defined with the `from` option.\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.file //=> '/home/ai/a.css'\n */\n this.file = opts.from;\n } else {\n this.file = _path2.default.resolve(opts.from);\n }\n }\n\n var map = new _previousMap2.default(this.css, opts);\n if (map.text) {\n /**\n * @member {PreviousMap} - The input source map passed from\n * a compilation step before PostCSS\n * (for example, from Sass compiler).\n *\n * @example\n * root.source.input.map.consumer().sources //=> ['a.sass']\n */\n this.map = map;\n var file = map.consumer().file;\n if (!this.file && file) this.file = this.mapResolve(file);\n }\n\n if (!this.file) {\n sequence += 1;\n /**\n * @member {string} - The unique ID of the CSS source. It will be\n * created if `from` option is not provided\n * (because PostCSS does not know the file path).\n *\n * @example\n * const root = postcss.parse(css);\n * root.source.input.file //=> undefined\n * root.source.input.id //=> \"\"\n */\n this.id = '';\n }\n if (this.map) this.map.file = this.from;\n }\n\n Input.prototype.error = function error(message, line, column) {\n var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n var result = void 0;\n var origin = this.origin(line, column);\n if (origin) {\n result = new _cssSyntaxError2.default(message, origin.line, origin.column, origin.source, origin.file, opts.plugin);\n } else {\n result = new _cssSyntaxError2.default(message, line, column, this.css, this.file, opts.plugin);\n }\n\n result.input = { line: line, column: column, source: this.css };\n if (this.file) result.input.file = this.file;\n\n return result;\n };\n\n /**\n * Reads the input source map and returns a symbol position\n * in the input source (e.g., in a Sass file that was compiled\n * to CSS before being passed to PostCSS).\n *\n * @param {number} line - line in input CSS\n * @param {number} column - column in input CSS\n *\n * @return {filePosition} position in input source\n *\n * @example\n * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 }\n */\n\n\n Input.prototype.origin = function origin(line, column) {\n if (!this.map) return false;\n var consumer = this.map.consumer();\n\n var from = consumer.originalPositionFor({ line: line, column: column });\n if (!from.source) return false;\n\n var result = {\n file: this.mapResolve(from.source),\n line: from.line,\n column: from.column\n };\n\n var source = consumer.sourceContentFor(from.source);\n if (source) result.source = source;\n\n return result;\n };\n\n Input.prototype.mapResolve = function mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file;\n } else {\n return _path2.default.resolve(this.map.consumer().sourceRoot || '.', file);\n }\n };\n\n /**\n * The CSS source identifier. Contains {@link Input#file} if the user\n * set the `from` option, or {@link Input#id} if they did not.\n * @type {string}\n *\n * @example\n * const root = postcss.parse(css, { from: 'a.css' });\n * root.source.input.from //=> \"/home/ai/a.css\"\n *\n * const root = postcss.parse(css);\n * root.source.input.from //=> \"\"\n */\n\n\n _createClass(Input, [{\n key: 'from',\n get: function get() {\n return this.file || this.id;\n }\n }]);\n\n return Input;\n}();\n\nexports.default = Input;\n\n/**\n * @typedef {object} filePosition\n * @property {string} file - path to file\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlucHV0LmVzNiJdLCJuYW1lcyI6WyJzZXF1ZW5jZSIsIklucHV0IiwiY3NzIiwib3B0cyIsInRvU3RyaW5nIiwic2xpY2UiLCJmcm9tIiwidGVzdCIsImZpbGUiLCJyZXNvbHZlIiwibWFwIiwidGV4dCIsImNvbnN1bWVyIiwibWFwUmVzb2x2ZSIsImlkIiwiZXJyb3IiLCJtZXNzYWdlIiwibGluZSIsImNvbHVtbiIsInJlc3VsdCIsIm9yaWdpbiIsInNvdXJjZSIsInBsdWdpbiIsImlucHV0Iiwib3JpZ2luYWxQb3NpdGlvbkZvciIsInNvdXJjZUNvbnRlbnRGb3IiLCJzb3VyY2VSb290Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBRUE7Ozs7Ozs7O0FBRUEsSUFBSUEsV0FBVyxDQUFmOztBQUVBOzs7Ozs7OztJQU9NQyxLOztBQUVGOzs7O0FBSUEsbUJBQVlDLEdBQVosRUFBNkI7QUFBQSxZQUFaQyxJQUFZLHVFQUFMLEVBQUs7O0FBQUE7O0FBQ3pCOzs7Ozs7O0FBT0EsYUFBS0QsR0FBTCxHQUFXQSxJQUFJRSxRQUFKLEVBQVg7O0FBRUEsWUFBSyxLQUFLRixHQUFMLENBQVMsQ0FBVCxNQUFnQixRQUFoQixJQUE0QixLQUFLQSxHQUFMLENBQVMsQ0FBVCxNQUFnQixRQUFqRCxFQUE0RDtBQUN4RCxpQkFBS0EsR0FBTCxHQUFXLEtBQUtBLEdBQUwsQ0FBU0csS0FBVCxDQUFlLENBQWYsQ0FBWDtBQUNIOztBQUVELFlBQUtGLEtBQUtHLElBQVYsRUFBaUI7QUFDYixnQkFBSyxZQUFZQyxJQUFaLENBQWlCSixLQUFLRyxJQUF0QixDQUFMLEVBQW1DO0FBQy9COzs7Ozs7OztBQVFBLHFCQUFLRSxJQUFMLEdBQVlMLEtBQUtHLElBQWpCO0FBQ0gsYUFWRCxNQVVPO0FBQ0gscUJBQUtFLElBQUwsR0FBWSxlQUFLQyxPQUFMLENBQWFOLEtBQUtHLElBQWxCLENBQVo7QUFDSDtBQUNKOztBQUVELFlBQUlJLE1BQU0sMEJBQWdCLEtBQUtS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aWxlIjoiaW5wdXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ3NzU3ludGF4RXJyb3IgZnJvbSAnLi9jc3Mtc3ludGF4LWVycm9yJztcbmltcG9ydCBQcmV2aW91c01hcCAgICBmcm9tICcuL3ByZXZpb3VzLW1hcCc7XG5cbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5sZXQgc2VxdWVuY2UgPSAwO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNvdXJjZSBDU1MuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHJvb3QgID0gcG9zdGNzcy5wYXJzZShjc3MsIHsgZnJvbTogZmlsZSB9KTtcbiAqIGNvbnN0IGlucHV0ID0gcm9vdC5zb3VyY2UuaW5wdXQ7XG4gKi9cbmNsYXNzIElucHV0IHtcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjc3MgICAgLSBpbnB1dCBDU1Mgc291cmNlXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRzXSAtIHtAbGluayBQcm9jZXNzb3IjcHJvY2Vzc30gb3B0aW9uc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNzcywgb3B0cyA9IHsgfSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIGlucHV0IENTUyBzb3VyY2VcbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogY29uc3QgaW5wdXQgPSBwb3N0Y3NzLnBhcnNlKCdhe30nLCB7IGZyb206IGZpbGUgfSkuaW5wdXQ7XG4gICAgICAgICAqIGlucHV0LmNzcyAvLz0+IFwiYXt9XCI7XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNzcyA9IGNzcy50b1N0cmluZygpO1xuXG4gICAgICAgIGlmICggdGhpcy5jc3NbMF0gPT09ICdcXHVGRUZGJyB8fCB0aGlzLmNzc1swXSA9PT0gJ1xcdUZGRkUnICkge1xuICAgICAgICAgICAgdGhpcy5jc3MgPSB0aGlzLmNzcy5zbGljZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICggb3B0cy5mcm9tICkge1xuICAgICAgICAgICAgaWYgKCAvXlxcdys6XFwvXFwvLy50ZXN0KG9wdHMuZnJvbSkgKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIFRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBDU1Mgc291cmNlIGZpbGVcbiAgICAgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCB3aXRoIHRoZSBgZnJvbWAgb3B0aW9uLlxuICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICAgICAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZShjc3MsIHsgZnJvbTogJ2EuY3NzJyB9KTtcbiAgICAgICAgICAgICAgICAgKiByb290LnNvdXJjZS5pbnB1dC5maWxlIC8vPT4gJy9ob21lL2FpL2EuY3NzJ1xuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsZSA9IG9wdHMuZnJvbTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlID0gcGF0aC5yZXNvbHZlKG9wdHMuZnJvbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbWFwID0gbmV3IFByZXZpb3VzTWFwKHRoaXMuY3NzLCBvcHRzKTtcbiAgICAgICAgaWYgKCBtYXAudGV4dCApIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQG1lbWJlciB7UHJldmlvdXNNYXB9IC0gVGhlIGlucHV0IHNvdXJjZSBtYXAgcGFzc2VkIGZyb21cbiAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGEgY29tcGlsYXRpb24gc3RlcCBiZWZvcmUgUG9zdENTU1xuICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgKGZvciBleGFtcGxlLCBmcm9tIFNhc3MgY29tcGlsZXIpLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAgICAgKiByb290LnNvdXJjZS5pbnB1dC5tYXAuY29uc3VtZXIoKS5zb3VyY2VzIC8vPT4gWydhLnNhc3MnXVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICAgICAgICAgIGxldCBmaWxlID0gbWFwLmNvbnN1bWVyKCkuZmlsZTtcbiAgICAgICAgICAgIGlmICggIXRoaXMuZmlsZSAmJiBmaWxlICkgdGhpcy5maWxlID0gdGhpcy5tYXBSZXNvbHZlKGZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCAhdGhpcy5maWxlICkge1xuICAgICAgICAgICAgc2VxdWVuY2UgKz0gMTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQG1lbWJlciB7c3RyaW5nfSAtIFRoZSB1bmlxdWUgSUQgb2YgdGhlIENTUyBzb3VyY2UuIEl0IHdpbGwgYmVcbiAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGlmIGBmcm9tYCBvcHRpb24gaXMgbm90IHByb3ZpZGVkXG4gICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgKGJlY2F1c2UgUG9zdENTUyBkb2VzIG5vdCBrbm93IHRoZSBmaWxlIHBhdGgpLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIEBleGFtcGxlXG4gICAgICAgICAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZShjc3MpO1xuICAgICAgICAgICAgICogcm9vdC5zb3VyY2UuaW5wdXQuZmlsZSAvLz0+IHVuZGVmaW5lZFxuICAgICAgICAgICAgICogcm9vdC5zb3VyY2UuaW5wdXQuaWQgICAvLz0+IFwiPGlucHV0IGNzcyAxPlwiXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaWQgICA9ICc8aW5wdXQgY3NzICcgKyBzZXF1ZW5jZSArICc+JztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIHRoaXMubWFwICkgdGhpcy5tYXAuZmlsZSA9IHRoaXMuZnJvbTtcbiAgICB9XG5cbiAgICBlcnJvcihtZXNzYWdlLCBsaW5lLCBjb2x1bW4sIG9wdHMgPSB7IH0pIHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgbGV0IG9yaWdpbiA9IHRoaXMub3JpZ2luKGxpbmUsIGNvbHVtbik7XG4gICAgICAgIGlmICggb3JpZ2luICkge1xuICAgICAgICAgICAgcmVzdWx0ID0gbmV3IENzc1N5bnRheEVycm9yKG1lc3NhZ2UsIG9yaWdpbi5saW5lLCBvcmlnaW4uY29sdW1uLFxuICAgICAgICAgICAgICAgIG9yaWdpbi5zb3VyY2UsIG9yaWdpbi5maWxlLCBvcHRzLnBsdWdpbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSBuZXcgQ3NzU3ludGF4RXJyb3IobWVzc2FnZSwgbGluZSwgY29sdW1uLFxuICAgICAgICAgICAgICAgIHRoaXMuY3NzLCB0aGlzLmZpbGUsIG9wdHMucGx1Z2luKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdC5pbnB1dCA9IHsgbGluZSwgY29sdW1uLCBzb3VyY2U6IHRoaXMuY3NzIH07XG4gICAgICAgIGlmICggdGhpcy5maWxlICkgcmVzdWx0LmlucHV0LmZpbGUgPSB0aGlzLmZpbGU7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWFkcyB0aGUgaW5wdXQgc291cmNlIG1hcCBhbmQgcmV0dXJucyBhIHN5bWJvbCBwb3NpdGlvblxuICAgICAqIGluIHRoZSBpbnB1dCBzb3VyY2UgKGUuZy4sIGluIGEgU2FzcyBmaWxlIHRoYXQgd2FzIGNvbXBpbGVkXG4gICAgICogdG8gQ1NTIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gUG9zdENTUykuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZSAgIC0gbGluZSBpbiBpbnB1dCBDU1NcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gY29sdW1uIC0gY29sdW1uIGluIGlucHV0IENTU1xuICAgICAqXG4gICAgICogQHJldHVybiB7ZmlsZVBvc2l0aW9ufSBwb3NpdGlvbiBpbiBpbnB1dCBzb3VyY2VcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcm9vdC5zb3VyY2UuaW5wdXQub3JpZ2luKDEsIDEpIC8vPT4geyBmaWxlOiAnYS5jc3MnLCBsaW5lOiAzLCBjb2x1bW46IDEgfVxuICAgICAqL1xuICAgIG9yaWdpbihsaW5lLCBjb2x1bW4pIHtcbiAgICAgICAgaWYgKCAhdGhpcy5tYXAgKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCBjb25zdW1lciA9IHRoaXMubWFwLmNvbnN1bWVyKCk7XG5cbiAgICAgICAgbGV0IGZyb20gPSBjb25zdW1lci5vcmlnaW5hbFBvc2l0aW9uRm9yKHsgbGluZSwgY29sdW1uIH0pO1xuICAgICAgICBpZiAoICFmcm9tLnNvdXJjZSApIHJldHVybiBmYWxzZTtcblxuICAgICAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgICAgICAgZmlsZTogICB0aGlzLm1hcFJlc29sdmUoZnJvbS5zb3VyY2UpLFxuICAgICAgICAgICAgbGluZTogICBmcm9tLmxpbmUsXG4gICAgICAgICAgICBjb2x1bW46IGZyb20uY29sdW1uXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHNvdXJjZSA9IGNvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3IoZnJvbS5zb3VyY2UpO1xuICAgICAgICBpZiAoIHNvdXJjZSApIHJlc3VsdC5zb3VyY2UgPSBzb3VyY2U7XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBtYXBSZXNvbHZlKGZpbGUpIHtcbiAgICAgICAgaWYgKCAvXlxcdys6XFwvXFwvLy50ZXN0KGZpbGUpICkge1xuICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMubWFwLmNvbnN1bWVyKCkuc291cmNlUm9vdCB8fCAnLicsIGZpbGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIENTUyBzb3VyY2UgaWRlbnRpZmllci4gQ29udGFpbnMge0BsaW5rIElucHV0I2ZpbGV9IGlmIHRoZSB1c2VyXG4gICAgICogc2V0IHRoZSBgZnJvbWAgb3B0aW9uLCBvciB7QGxpbmsgSW5wdXQjaWR9IGlmIHRoZXkgZGlkIG5vdC5cbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZShjc3MsIHsgZnJvbTogJ2EuY3NzJyB9KTtcbiAgICAgKiByb290LnNvdXJjZS5pbnB1dC5mcm9tIC8vPT4gXCIvaG9tZS9haS9hLmNzc1wiXG4gICAgICpcbiAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZShjc3MpO1xuICAgICAqIHJvb3Quc291cmNlLmlucHV0LmZyb20gLy89PiBcIjxpbnB1dCBjc3MgMT5cIlxuICAgICAqL1xuICAgIGdldCBmcm9tKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWxlIHx8IHRoaXMuaWQ7XG4gICAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IElucHV0O1xuXG4vKipcbiAqIEB0eXBlZGVmICB7b2JqZWN0fSBmaWxlUG9zaXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmaWxlICAgLSBwYXRoIHRvIGZpbGVcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsaW5lICAgLSBzb3VyY2UgbGluZSBpbiBmaWxlXG4gKiBAcHJvcGVydHkge251bWJlcn0gY29sdW1uIC0gc291cmNlIGNvbHVtbiBpbiBmaWxlXG4gKi9cbiJdfQ==\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\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 (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var irreducible = require('./irreducible');\nvar isString = require('./isString');\n\nmodule.exports = irreducible('String', isString);\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar getTypeName = require('./getTypeName');\nvar isIdentity = require('./isIdentity');\nvar isObject = require('./isObject');\nvar create = require('./create');\nvar is = require('./is');\n\nfunction getDefaultName(domain, codomain) {\n return '{[key: ' + getTypeName(domain) + ']: ' + getTypeName(codomain) + '}';\n}\n\nfunction dict(domain, codomain, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isFunction(domain), function () { return 'Invalid argument domain ' + assert.stringify(domain) + ' supplied to dict(domain, codomain, [name]) combinator (expected a type)'; });\n assert(isFunction(codomain), function () { return 'Invalid argument codomain ' + assert.stringify(codomain) + ' supplied to dict(domain, codomain, [name]) combinator (expected a type)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to dict(domain, codomain, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(domain, codomain);\n var domainNameCache = getTypeName(domain);\n var codomainNameCache = getTypeName(codomain);\n var identity = isIdentity(domain) && isIdentity(codomain);\n\n function Dict(value, path) {\n\n if (process.env.NODE_ENV === 'production') {\n if (identity) {\n return value; // just trust the input if elements must not be hydrated\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n path = path || [displayName];\n assert(isObject(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/'); });\n }\n\n var idempotent = true; // will remain true if I can reutilise the input\n var ret = {}; // make a temporary copy, will be discarded if idempotent remains true\n for (var k in value) {\n if (value.hasOwnProperty(k)) {\n k = create(domain, k, ( process.env.NODE_ENV !== 'production' ? path.concat(domainNameCache) : null ));\n var actual = value[k];\n var instance = create(codomain, actual, ( process.env.NODE_ENV !== 'production' ? path.concat(k + ': ' + codomainNameCache) : null ));\n idempotent = idempotent && ( actual === instance );\n ret[k] = instance;\n }\n }\n\n if (idempotent) { // implements idempotency\n ret = value;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(ret);\n }\n\n return ret;\n }\n\n Dict.meta = {\n kind: 'dict',\n domain: domain,\n codomain: codomain,\n name: name,\n identity: identity\n };\n\n Dict.displayName = displayName;\n\n Dict.is = function (x) {\n if (!isObject(x)) {\n return false;\n }\n for (var k in x) {\n if (x.hasOwnProperty(k)) {\n if (!is(k, domain) || !is(x[k], codomain)) {\n return false;\n }\n }\n }\n return true;\n };\n\n Dict.update = function (instance, patch) {\n return Dict(assert.update(instance, patch));\n };\n\n return Dict;\n}\n\ndict.getDefaultName = getDefaultName;\nmodule.exports = dict;\n","module.exports = function getFunctionName(f) {\n return f.displayName || f.name || '';\n};","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n\nexports.__esModule = true;\n/**\n * Contains helpers for working with vendor prefixes.\n *\n * @example\n * const vendor = postcss.vendor;\n *\n * @namespace vendor\n */\nvar vendor = {\n\n /**\n * Returns the vendor prefix extracted from an input string.\n *\n * @param {string} prop - string with or without vendor prefix\n *\n * @return {string} vendor prefix or empty string\n *\n * @example\n * postcss.vendor.prefix('-moz-tab-size') //=> '-moz-'\n * postcss.vendor.prefix('tab-size') //=> ''\n */\n prefix: function prefix(prop) {\n var match = prop.match(/^(-\\w+-)/);\n if (match) {\n return match[0];\n } else {\n return '';\n }\n },\n\n\n /**\n * Returns the input string stripped of its vendor prefix.\n *\n * @param {string} prop - string with or without vendor prefix\n *\n * @return {string} string name without vendor prefixes\n *\n * @example\n * postcss.vendor.unprefixed('-moz-tab-size') //=> 'tab-size'\n */\n unprefixed: function unprefixed(prop) {\n return prop.replace(/^-\\w+-/, '');\n }\n};\n\nexports.default = vendor;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZlbmRvci5lczYiXSwibmFtZXMiOlsidmVuZG9yIiwicHJlZml4IiwicHJvcCIsIm1hdGNoIiwidW5wcmVmaXhlZCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7OztBQVFBLElBQUlBLFNBQVM7O0FBRVQ7Ozs7Ozs7Ozs7O0FBV0FDLFVBYlMsa0JBYUZDLElBYkUsRUFhSTtBQUNULFlBQUlDLFFBQVFELEtBQUtDLEtBQUwsQ0FBVyxVQUFYLENBQVo7QUFDQSxZQUFLQSxLQUFMLEVBQWE7QUFDVCxtQkFBT0EsTUFBTSxDQUFOLENBQVA7QUFDSCxTQUZELE1BRU87QUFDSCxtQkFBTyxFQUFQO0FBQ0g7QUFDSixLQXBCUTs7O0FBc0JUOzs7Ozs7Ozs7O0FBVUFDLGNBaENTLHNCQWdDRUYsSUFoQ0YsRUFnQ1E7QUFDYixlQUFPQSxLQUFLRyxPQUFMLENBQWEsUUFBYixFQUF1QixFQUF2QixDQUFQO0FBQ0g7QUFsQ1EsQ0FBYjs7a0JBc0NlTCxNIiwiZmlsZSI6InZlbmRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udGFpbnMgaGVscGVycyBmb3Igd29ya2luZyB3aXRoIHZlbmRvciBwcmVmaXhlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdmVuZG9yID0gcG9zdGNzcy52ZW5kb3I7XG4gKlxuICogQG5hbWVzcGFjZSB2ZW5kb3JcbiAqL1xubGV0IHZlbmRvciA9IHtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHZlbmRvciBwcmVmaXggZXh0cmFjdGVkIGZyb20gYW4gaW5wdXQgc3RyaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHByb3AgLSBzdHJpbmcgd2l0aCBvciB3aXRob3V0IHZlbmRvciBwcmVmaXhcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gdmVuZG9yIHByZWZpeCBvciBlbXB0eSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcG9zdGNzcy52ZW5kb3IucHJlZml4KCctbW96LXRhYi1zaXplJykgLy89PiAnLW1vei0nXG4gICAgICogcG9zdGNzcy52ZW5kb3IucHJlZml4KCd0YWItc2l6ZScpICAgICAgLy89PiAnJ1xuICAgICAqL1xuICAgIHByZWZpeChwcm9wKSB7XG4gICAgICAgIGxldCBtYXRjaCA9IHByb3AubWF0Y2goL14oLVxcdystKS8pO1xuICAgICAgICBpZiAoIG1hdGNoICkge1xuICAgICAgICAgICAgcmV0dXJuIG1hdGNoWzBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGlucHV0IHN0cmluZyBzdHJpcHBlZCBvZiBpdHMgdmVuZG9yIHByZWZpeC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wIC0gc3RyaW5nIHdpdGggb3Igd2l0aG91dCB2ZW5kb3IgcHJlZml4XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IHN0cmluZyBuYW1lIHdpdGhvdXQgdmVuZG9yIHByZWZpeGVzXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHBvc3Rjc3MudmVuZG9yLnVucHJlZml4ZWQoJy1tb3otdGFiLXNpemUnKSAvLz0+ICd0YWItc2l6ZSdcbiAgICAgKi9cbiAgICB1bnByZWZpeGVkKHByb3ApIHtcbiAgICAgICAgcmV0dXJuIHByb3AucmVwbGFjZSgvXi1cXHcrLS8sICcnKTtcbiAgICB9XG5cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHZlbmRvcjtcbiJdfQ==\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar String = require('./String');\nvar Function = require('./Function');\nvar isArray = require('./isArray');\nvar isObject = require('./isObject');\nvar create = require('./create');\nvar mixin = require('./mixin');\nvar isStruct = require('./isStruct');\nvar getTypeName = require('./getTypeName');\nvar dict = require('./dict');\n\nfunction getDefaultName(props) {\n return '{' + Object.keys(props).map(function (prop) {\n return prop + ': ' + getTypeName(props[prop]);\n }).join(', ') + '}';\n}\n\nfunction extend(mixins, name) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(mixins) && mixins.every(function (x) {\n return isObject(x) || isStruct(x);\n }), function () { return 'Invalid argument mixins supplied to extend(mixins, name), expected an array of objects or structs'; });\n }\n var props = {};\n var prototype = {};\n mixins.forEach(function (struct) {\n if (isObject(struct)) {\n mixin(props, struct);\n }\n else {\n mixin(props, struct.meta.props);\n mixin(prototype, struct.prototype);\n }\n });\n var ret = struct(props, name);\n mixin(ret.prototype, prototype);\n return ret;\n}\n\nfunction struct(props, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(dict(String, Function).is(props), function () { return 'Invalid argument props ' + assert.stringify(props) + ' supplied to struct(props, [name]) combinator (expected a dictionary String -> Type)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to struct(props, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(props);\n\n function Struct(value, path) {\n\n if (Struct.is(value)) { // implements idempotency\n return value;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n path = path || [displayName];\n assert(isObject(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/') + ' (expected an object)'; });\n }\n\n if (!(this instanceof Struct)) { // `new` is optional\n return new Struct(value, path);\n }\n\n for (var k in props) {\n if (props.hasOwnProperty(k)) {\n var expected = props[k];\n var actual = value[k];\n this[k] = create(expected, actual, ( process.env.NODE_ENV !== 'production' ? path.concat(k + ': ' + getTypeName(expected)) : null ));\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(this);\n }\n\n }\n\n Struct.meta = {\n kind: 'struct',\n props: props,\n name: name,\n identity: false\n };\n\n Struct.displayName = displayName;\n\n Struct.is = function (x) {\n return x instanceof Struct;\n };\n\n Struct.update = function (instance, patch) {\n return new Struct(assert.update(instance, patch));\n };\n\n Struct.extend = function (structs, name) {\n return extend([Struct].concat(structs), name);\n };\n\n return Struct;\n}\n\nstruct.getDefaultName = getDefaultName;\nstruct.extend = extend;\nmodule.exports = struct;\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","import Plyr from 'plyr';\n\n//\nvar script = {\n name: 'vue-plyr',\n props: {\n /** Options object for plyr config. **/\n options: {\n type: Object,\n required: false,\n default: function _default() {\n return {};\n }\n },\n\n /** Array of events to emit from the plyr object **/\n emit: {\n type: Array,\n required: false,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n player: {}\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n this.player = new Plyr(this.$el.firstChild, this.opts);\n this.$emit('player', this.player);\n this.emit.forEach(function (element) {\n _this.player.on(element, _this.emitPlayerEvent);\n });\n },\n beforeDestroy: function beforeDestroy() {\n try {\n this.player.destroy();\n } catch (e) {\n if (!(this.opts.hideYouTubeDOMError && e.message === 'The YouTube player is not attached to the DOM.')) {\n console.error(e);\n }\n }\n },\n methods: {\n emitPlayerEvent: function emitPlayerEvent(event) {\n this.$emit(event.type, event);\n }\n },\n computed: {\n opts: function opts() {\n var options = this.options;\n\n if (!this.options.hasOwnProperty('hideYouTubeDOMError')) {\n options.hideYouTubeDOMError = true;\n }\n\n return options;\n }\n }\n};\n\nfunction normalizeComponent(compiledTemplate, injectStyle, defaultExport, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, isShadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof isShadowMode === 'function') {\n createInjectorSSR = createInjector;\n createInjector = isShadowMode;\n isShadowMode = false;\n }\n // Vue.extend constructor export interop\n const options = typeof defaultExport === 'function' ? defaultExport.options : defaultExport;\n // render functions\n if (compiledTemplate && compiledTemplate.render) {\n options.render = compiledTemplate.render;\n options.staticRenderFns = compiledTemplate.staticRenderFns;\n options._compiled = true;\n // functional template\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n }\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId;\n }\n let hook;\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n }\n // inject component styles\n if (injectStyle) {\n injectStyle.call(this, createInjectorSSR(context));\n }\n // register component module identifier for async chunk inference\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook;\n }\n else if (injectStyle) {\n hook = isShadowMode\n ? function () {\n injectStyle.call(this, createInjectorShadow(this.$root.$options.shadowRoot));\n }\n : function (context) {\n injectStyle.call(this, createInjector(context));\n };\n }\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n const originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n }\n else {\n // inject component registration as beforeCreate hook\n const existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return defaultExport;\n}\n\n/* script */\nconst __vue_script__ = script;\n// For security concerns, we use only base name in production mode. See https://github.com/vuejs/rollup-plugin-vue/issues/258\nscript.__file = \"VuePlyr.vue\";\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\")],2)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n\n \n var VuePlyr = normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n undefined,\n undefined\n );\n\nvar Components = {\n VuePlyr: VuePlyr\n};\nvar VuePlyrPlugin = {\n install: function install(Vue, options) {\n Object.keys(Components).forEach(function (component) {\n Vue.component(Components[component].name, Components[component]);\n });\n }\n}; // Credit to https://github.com/irazasyed for this auto Vue.use() when\n// installing from unpkg or similar.\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VuePlyrPlugin);\n}\n\nexport default VuePlyrPlugin;\nexport { VuePlyr, VuePlyrPlugin };\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\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 gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","'use strict';\nvar ansiRegex = require('ansi-regex');\nvar re = new RegExp(ansiRegex().source); // remove the `g` flag\nmodule.exports = re.test.bind(re);\n","'use strict';\n\nexports.__esModule = true;\nexports.default = tokenize;\nvar SINGLE_QUOTE = 39;\nvar DOUBLE_QUOTE = 34;\nvar BACKSLASH = 92;\nvar SLASH = 47;\nvar NEWLINE = 10;\nvar SPACE = 32;\nvar FEED = 12;\nvar TAB = 9;\nvar CR = 13;\nvar OPEN_SQUARE = 91;\nvar CLOSE_SQUARE = 93;\nvar OPEN_PARENTHESES = 40;\nvar CLOSE_PARENTHESES = 41;\nvar OPEN_CURLY = 123;\nvar CLOSE_CURLY = 125;\nvar SEMICOLON = 59;\nvar ASTERISK = 42;\nvar COLON = 58;\nvar AT = 64;\n\nvar RE_AT_END = /[ \\n\\t\\r\\f\\{\\(\\)'\"\\\\;/\\[\\]#]/g;\nvar RE_WORD_END = /[ \\n\\t\\r\\f\\(\\)\\{\\}:;@!'\"\\\\\\]\\[#]|\\/(?=\\*)/g;\nvar RE_BAD_BRACKET = /.[\\\\\\/\\(\"'\\n]/;\n\nfunction tokenize(input) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var tokens = [];\n var css = input.css.valueOf();\n\n var ignore = options.ignoreErrors;\n\n var code = void 0,\n next = void 0,\n quote = void 0,\n lines = void 0,\n last = void 0,\n content = void 0,\n escape = void 0,\n nextLine = void 0,\n nextOffset = void 0,\n escaped = void 0,\n escapePos = void 0,\n prev = void 0,\n n = void 0;\n\n var length = css.length;\n var offset = -1;\n var line = 1;\n var pos = 0;\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, line, pos - offset);\n }\n\n while (pos < length) {\n code = css.charCodeAt(pos);\n\n if (code === NEWLINE || code === FEED || code === CR && css.charCodeAt(pos + 1) !== NEWLINE) {\n offset = pos;\n line += 1;\n }\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED:\n next = pos;\n do {\n next += 1;\n code = css.charCodeAt(next);\n if (code === NEWLINE) {\n offset = next;\n line += 1;\n }\n } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED);\n\n tokens.push(['space', css.slice(pos, next)]);\n pos = next - 1;\n break;\n\n case OPEN_SQUARE:\n tokens.push(['[', '[', line, pos - offset]);\n break;\n\n case CLOSE_SQUARE:\n tokens.push([']', ']', line, pos - offset]);\n break;\n\n case OPEN_CURLY:\n tokens.push(['{', '{', line, pos - offset]);\n break;\n\n case CLOSE_CURLY:\n tokens.push(['}', '}', line, pos - offset]);\n break;\n\n case COLON:\n tokens.push([':', ':', line, pos - offset]);\n break;\n\n case SEMICOLON:\n tokens.push([';', ';', line, pos - offset]);\n break;\n\n case OPEN_PARENTHESES:\n prev = tokens.length ? tokens[tokens.length - 1][1] : '';\n n = css.charCodeAt(pos + 1);\n if (prev === 'url' && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) {\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(')', next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos;\n break;\n } else {\n unclosed('bracket');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n tokens.push(['brackets', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n } else {\n next = css.indexOf(')', pos + 1);\n content = css.slice(pos, next + 1);\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n tokens.push(['(', '(', line, pos - offset]);\n } else {\n tokens.push(['brackets', content, line, pos - offset, line, next - offset]);\n pos = next;\n }\n }\n\n break;\n\n case CLOSE_PARENTHESES:\n tokens.push([')', ')', line, pos - offset]);\n break;\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE:\n quote = code === SINGLE_QUOTE ? '\\'' : '\"';\n next = pos;\n do {\n escaped = false;\n next = css.indexOf(quote, next + 1);\n if (next === -1) {\n if (ignore) {\n next = pos + 1;\n break;\n } else {\n unclosed('string');\n }\n }\n escapePos = next;\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1;\n escaped = !escaped;\n }\n } while (escaped);\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n break;\n\n case AT:\n RE_AT_END.lastIndex = pos + 1;\n RE_AT_END.test(css);\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_AT_END.lastIndex - 2;\n }\n tokens.push(['at-word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n case BACKSLASH:\n next = pos;\n escape = true;\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1;\n escape = !escape;\n }\n code = css.charCodeAt(next + 1);\n if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) {\n next += 1;\n }\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n break;\n\n default:\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1;\n if (next === 0) {\n if (ignore) {\n next = css.length;\n } else {\n unclosed('comment');\n }\n }\n\n content = css.slice(pos, next + 1);\n lines = content.split('\\n');\n last = lines.length - 1;\n\n if (last > 0) {\n nextLine = line + last;\n nextOffset = next - lines[last].length;\n } else {\n nextLine = line;\n nextOffset = offset;\n }\n\n tokens.push(['comment', content, line, pos - offset, nextLine, next - nextOffset]);\n\n offset = nextOffset;\n line = nextLine;\n pos = next;\n } else {\n RE_WORD_END.lastIndex = pos + 1;\n RE_WORD_END.test(css);\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1;\n } else {\n next = RE_WORD_END.lastIndex - 2;\n }\n\n tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]);\n pos = next;\n }\n\n break;\n }\n\n pos++;\n }\n\n return tokens;\n}\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRva2VuaXplLmVzNiJdLCJuYW1lcyI6WyJ0b2tlbml6ZSIsIlNJTkdMRV9RVU9URSIsIkRPVUJMRV9RVU9URSIsIkJBQ0tTTEFTSCIsIlNMQVNIIiwiTkVXTElORSIsIlNQQUNFIiwiRkVFRCIsIlRBQiIsIkNSIiwiT1BFTl9TUVVBUkUiLCJDTE9TRV9TUVVBUkUiLCJPUEVOX1BBUkVOVEhFU0VTIiwiQ0xPU0VfUEFSRU5USEVTRVMiLCJPUEVOX0NVUkxZIiwiQ0xPU0VfQ1VSTFkiLCJTRU1JQ09MT04iLCJBU1RFUklTSyIsIkNPTE9OIiwiQVQiLCJSRV9BVF9FTkQiLCJSRV9XT1JEX0VORCIsIlJFX0JBRF9CUkFDS0VUIiwiaW5wdXQiLCJvcHRpb25zIiwidG9rZW5zIiwiY3NzIiwidmFsdWVPZiIsImlnbm9yZSIsImlnbm9yZUVycm9ycyIsImNvZGUiLCJuZXh0IiwicXVvdGUiLCJsaW5lcyIsImxhc3QiLCJjb250ZW50IiwiZXNjYXBlIiwibmV4dExpbmUiLCJuZXh0T2Zmc2V0IiwiZXNjYXBlZCIsImVzY2FwZVBvcyIsInByZXYiLCJuIiwibGVuZ3RoIiwib2Zmc2V0IiwibGluZSIsInBvcyIsInVuY2xvc2VkIiwid2hhdCIsImVycm9yIiwiY2hhckNvZGVBdCIsInB1c2giLCJzbGljZSIsImluZGV4T2YiLCJ0ZXN0Iiwic3BsaXQiLCJsYXN0SW5kZXgiXSwibWFwcGluZ3MiOiI7OztrQkF3QndCQSxRO0FBeEJ4QixJQUFNQyxpQkFBTjtBQUNBLElBQU1DLGlCQUFOO0FBQ0EsSUFBTUMsY0FBTjtBQUNBLElBQU1DLFVBQU47QUFDQSxJQUFNQyxZQUFOO0FBQ0EsSUFBTUMsVUFBTjtBQUNBLElBQU1DLFNBQU47QUFDQSxJQUFNQyxPQUFOO0FBQ0EsSUFBTUMsT0FBTjtBQUNBLElBQU1DLGdCQUFOO0FBQ0EsSUFBTUMsaUJBQU47QUFDQSxJQUFNQyxxQkFBTjtBQUNBLElBQU1DLHNCQUFOO0FBQ0EsSUFBTUMsZ0JBQU47QUFDQSxJQUFNQyxpQkFBTjtB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LEdBQWEsQ0FBcEI7QUFDSCxxQkFGRCxNQUVPO0FBQ0haLCtCQUFPVixZQUFZbUMsU0FBWixHQUF3QixDQUEvQjtBQUNIOztBQUVEL0IsMkJBQU8wQixJQUFQLENBQVksQ0FBQyxNQUFELEVBQVN6QixJQUFJMEIsS0FBSixDQUFVTixHQUFWLEVBQWVmLE9BQU8sQ0FBdEIsQ0FBVCxFQUNSYyxJQURRLEVBQ0ZDLE1BQU9GLE1BREwsRUFFUkMsSUFGUSxFQUVGZCxPQUFPYSxNQUZMLENBQVo7QUFJQUUsMEJBQU1mLElBQU47QUFDSDs7QUFFRDtBQXRPSjs7QUF5T0FlO0FBQ0g7O0FBRUQsV0FBT3JCLE1BQVA7QUFDSCIsImZpbGUiOiJ0b2tlbml6ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFNJTkdMRV9RVU9URSAgICAgID0gJ1xcJycuY2hhckNvZGVBdCgwKTtcbmNvbnN0IERPVUJMRV9RVU9URSAgICAgID0gICdcIicuY2hhckNvZGVBdCgwKTtcbmNvbnN0IEJBQ0tTTEFTSCAgICAgICAgID0gJ1xcXFwnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBTTEFTSCAgICAgICAgICAgICA9ICAnLycuY2hhckNvZGVBdCgwKTtcbmNvbnN0IE5FV0xJTkUgICAgICAgICAgID0gJ1xcbicuY2hhckNvZGVBdCgwKTtcbmNvbnN0IFNQQUNFICAgICAgICAgICAgID0gICcgJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgRkVFRCAgICAgICAgICAgICAgPSAnXFxmJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgVEFCICAgICAgICAgICAgICAgPSAnXFx0Jy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQ1IgICAgICAgICAgICAgICAgPSAnXFxyJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgT1BFTl9TUVVBUkUgICAgICAgPSAgJ1snLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBDTE9TRV9TUVVBUkUgICAgICA9ICAnXScuY2hhckNvZGVBdCgwKTtcbmNvbnN0IE9QRU5fUEFSRU5USEVTRVMgID0gICcoJy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQ0xPU0VfUEFSRU5USEVTRVMgPSAgJyknLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBPUEVOX0NVUkxZICAgICAgICA9ICAneycuY2hhckNvZGVBdCgwKTtcbmNvbnN0IENMT1NFX0NVUkxZICAgICAgID0gICd9Jy5jaGFyQ29kZUF0KDApO1xuY29uc3QgU0VNSUNPTE9OICAgICAgICAgPSAgJzsnLmNoYXJDb2RlQXQoMCk7XG5jb25zdCBBU1RFUklTSyAgICAgICAgICA9ICAnKicuY2hhckNvZGVBdCgwKTtcbmNvbnN0IENPTE9OICAgICAgICAgICAgID0gICc6Jy5jaGFyQ29kZUF0KDApO1xuY29uc3QgQVQgICAgICAgICAgICAgICAgPSAgJ0AnLmNoYXJDb2RlQXQoMCk7XG5cbmNvbnN0IFJFX0FUX0VORCAgICAgID0gL1sgXFxuXFx0XFxyXFxmXFx7XFwoXFwpJ1wiXFxcXDsvXFxbXFxdI10vZztcbmNvbnN0IFJFX1dPUkRfRU5EICAgID0gL1sgXFxuXFx0XFxyXFxmXFwoXFwpXFx7XFx9OjtAISdcIlxcXFxcXF1cXFsjXXxcXC8oPz1cXCopL2c7XG5jb25zdCBSRV9CQURfQlJBQ0tFVCA9IC8uW1xcXFxcXC9cXChcIidcXG5dLztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdG9rZW5pemUoaW5wdXQsIG9wdGlvbnMgPSB7IH0pIHtcbiAgICBsZXQgdG9rZW5zID0gW107XG4gICAgbGV0IGNzcyAgICA9IGlucHV0LmNzcy52YWx1ZU9mKCk7XG5cbiAgICBsZXQgaWdub3JlID0gb3B0aW9ucy5pZ25vcmVFcnJvcnM7XG5cbiAgICBsZXQgY29kZSwgbmV4dCwgcXVvdGUsIGxpbmVzLCBsYXN0LCBjb250ZW50LCBlc2NhcGUsXG4gICAgICAgIG5leHRMaW5lLCBuZXh0T2Zmc2V0LCBlc2NhcGVkLCBlc2NhcGVQb3MsIHByZXYsIG47XG5cbiAgICBsZXQgbGVuZ3RoID0gY3NzLmxlbmd0aDtcbiAgICBsZXQgb2Zmc2V0ID0gLTE7XG4gICAgbGV0IGxpbmUgICA9ICAxO1xuICAgIGxldCBwb3MgICAgPSAgMDtcblxuICAgIGZ1bmN0aW9uIHVuY2xvc2VkKHdoYXQpIHtcbiAgICAgICAgdGhyb3cgaW5wdXQuZXJyb3IoJ1VuY2xvc2VkICcgKyB3aGF0LCBsaW5lLCBwb3MgLSBvZmZzZXQpO1xuICAgIH1cblxuICAgIHdoaWxlICggcG9zIDwgbGVuZ3RoICkge1xuICAgICAgICBjb2RlID0gY3NzLmNoYXJDb2RlQXQocG9zKTtcblxuICAgICAgICBpZiAoIGNvZGUgPT09IE5FV0xJTkUgfHwgY29kZSA9PT0gRkVFRCB8fFxuICAgICAgICAgICAgIGNvZGUgPT09IENSICYmIGNzcy5jaGFyQ29kZUF0KHBvcyArIDEpICE9PSBORVdMSU5FICkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gcG9zO1xuICAgICAgICAgICAgbGluZSAgKz0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoIGNvZGUgKSB7XG4gICAgICAgIGNhc2UgTkVXTElORTpcbiAgICAgICAgY2FzZSBTUEFDRTpcbiAgICAgICAgY2FzZSBUQUI6XG4gICAgICAgIGNhc2UgQ1I6XG4gICAgICAgIGNhc2UgRkVFRDpcbiAgICAgICAgICAgIG5leHQgPSBwb3M7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgbmV4dCArPSAxO1xuICAgICAgICAgICAgICAgIGNvZGUgPSBjc3MuY2hhckNvZGVBdChuZXh0KTtcbiAgICAgICAgICAgICAgICBpZiAoIGNvZGUgPT09IE5FV0xJTkUgKSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IG5leHQ7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUgICs9IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAoIGNvZGUgPT09IFNQQUNFICAgfHxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlID09PSBORVdMSU5FIHx8XG4gICAgICAgICAgICAgICAgICAgICAgY29kZSA9PT0gVEFCICAgICB8fFxuICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPT09IENSICAgICAgfHxcbiAgICAgICAgICAgICAgICAgICAgICBjb2RlID09PSBGRUVEICk7XG5cbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnc3BhY2UnLCBjc3Muc2xpY2UocG9zLCBuZXh0KV0pO1xuICAgICAgICAgICAgcG9zID0gbmV4dCAtIDE7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIE9QRU5fU1FVQVJFOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWydbJywgJ1snLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQ0xPU0VfU1FVQVJFOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyddJywgJ10nLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgT1BFTl9DVVJMWTpcbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsneycsICd7JywgbGluZSwgcG9zIC0gb2Zmc2V0XSk7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIENMT1NFX0NVUkxZOlxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyd9JywgJ30nLCBsaW5lLCBwb3MgLSBvZmZzZXRdKTtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQ09MT046XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJzonLCAnOicsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTRU1JQ09MT046XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJzsnLCAnOycsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBPUEVOX1BBUkVOVEhFU0VTOlxuICAgICAgICAgICAgcHJldiA9IHRva2Vucy5sZW5ndGggPyB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdWzFdIDogJyc7XG4gICAgICAgICAgICBuICAgID0gY3NzLmNoYXJDb2RlQXQocG9zICsgMSk7XG4gICAgICAgICAgICBpZiAoIHByZXYgPT09ICd1cmwnICYmIG4gIT09IFNJTkdMRV9RVU9URSAmJiBuICE9PSBET1VCTEVfUVVPVEUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gU1BBQ0UgJiYgbiAhPT0gTkVXTElORSAmJiBuICE9PSBUQUIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbiAhPT0gRkVFRCAmJiBuICE9PSBDUiApIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ICAgID0gY3NzLmluZGV4T2YoJyknLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICggbmV4dCA9PT0gLTEgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlnbm9yZSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID0gcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmNsb3NlZCgnYnJhY2tldCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZVBvcyA9IG5leHQ7XG4gICAgICAgICAgICAgICAgICAgIHdoaWxlICggY3NzLmNoYXJDb2RlQXQoZXNjYXBlUG9zIC0gMSkgPT09IEJBQ0tTTEFTSCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZVBvcyAtPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSB3aGlsZSAoIGVzY2FwZWQgKTtcblxuICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnYnJhY2tldHMnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICBwb3MgPSBuZXh0O1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHQgICAgPSBjc3MuaW5kZXhPZignKScsIHBvcyArIDEpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIG5leHQgPT09IC0xIHx8IFJFX0JBRF9CUkFDS0VULnRlc3QoY29udGVudCkgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnKCcsICcoJywgbGluZSwgcG9zIC0gb2Zmc2V0XSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5zLnB1c2goWydicmFja2V0cycsIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lLCBwb3MgIC0gb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zID0gbmV4dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQ0xPU0VfUEFSRU5USEVTRVM6XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJyknLCAnKScsIGxpbmUsIHBvcyAtIG9mZnNldF0pO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBTSU5HTEVfUVVPVEU6XG4gICAgICAgIGNhc2UgRE9VQkxFX1FVT1RFOlxuICAgICAgICAgICAgcXVvdGUgPSBjb2RlID09PSBTSU5HTEVfUVVPVEUgPyAnXFwnJyA6ICdcIic7XG4gICAgICAgICAgICBuZXh0ICA9IHBvcztcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBlc2NhcGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgbmV4dCAgICA9IGNzcy5pbmRleE9mKHF1b3RlLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKCBuZXh0ID09PSAtMSApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCBpZ25vcmUgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0ID0gcG9zICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5jbG9zZWQoJ3N0cmluZycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVzY2FwZVBvcyA9IG5leHQ7XG4gICAgICAgICAgICAgICAgd2hpbGUgKCBjc3MuY2hhckNvZGVBdChlc2NhcGVQb3MgLSAxKSA9PT0gQkFDS1NMQVNIICkge1xuICAgICAgICAgICAgICAgICAgICBlc2NhcGVQb3MgLT0gMTtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlZCA9ICFlc2NhcGVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gd2hpbGUgKCBlc2NhcGVkICk7XG5cbiAgICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICBsaW5lcyAgID0gY29udGVudC5zcGxpdCgnXFxuJyk7XG4gICAgICAgICAgICBsYXN0ICAgID0gbGluZXMubGVuZ3RoIC0gMTtcblxuICAgICAgICAgICAgaWYgKCBsYXN0ID4gMCApIHtcbiAgICAgICAgICAgICAgICBuZXh0TGluZSAgID0gbGluZSArIGxhc3Q7XG4gICAgICAgICAgICAgICAgbmV4dE9mZnNldCA9IG5leHQgLSBsaW5lc1tsYXN0XS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5leHRMaW5lICAgPSBsaW5lO1xuICAgICAgICAgICAgICAgIG5leHRPZmZzZXQgPSBvZmZzZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRva2Vucy5wdXNoKFsnc3RyaW5nJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbmV4dExpbmUsIG5leHQgLSBuZXh0T2Zmc2V0XG4gICAgICAgICAgICBdKTtcblxuICAgICAgICAgICAgb2Zmc2V0ID0gbmV4dE9mZnNldDtcbiAgICAgICAgICAgIGxpbmUgICA9IG5leHRMaW5lO1xuICAgICAgICAgICAgcG9zICAgID0gbmV4dDtcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgQVQ6XG4gICAgICAgICAgICBSRV9BVF9FTkQubGFzdEluZGV4ID0gcG9zICsgMTtcbiAgICAgICAgICAgIFJFX0FUX0VORC50ZXN0KGNzcyk7XG4gICAgICAgICAgICBpZiAoIFJFX0FUX0VORC5sYXN0SW5kZXggPT09IDAgKSB7XG4gICAgICAgICAgICAgICAgbmV4dCA9IGNzcy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXh0ID0gUkVfQVRfRU5ELmxhc3RJbmRleCAtIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0b2tlbnMucHVzaChbJ2F0LXdvcmQnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgICAgICAgbGluZSwgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICBsaW5lLCBuZXh0IC0gb2Zmc2V0XG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIHBvcyA9IG5leHQ7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEJBQ0tTTEFTSDpcbiAgICAgICAgICAgIG5leHQgICA9IHBvcztcbiAgICAgICAgICAgIGVzY2FwZSA9IHRydWU7XG4gICAgICAgICAgICB3aGlsZSAoIGNzcy5jaGFyQ29kZUF0KG5leHQgKyAxKSA9PT0gQkFDS1NMQVNIICkge1xuICAgICAgICAgICAgICAgIG5leHQgICs9IDE7XG4gICAgICAgICAgICAgICAgZXNjYXBlID0gIWVzY2FwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvZGUgPSBjc3MuY2hhckNvZGVBdChuZXh0ICsgMSk7XG4gICAgICAgICAgICBpZiAoIGVzY2FwZSAmJiAoY29kZSAhPT0gU0xBU0ggICAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgIT09IFNQQUNFICAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlICE9PSBORVdMSU5FICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSAhPT0gVEFCICAgICAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgIT09IENSICAgICAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlICE9PSBGRUVEICkgKSB7XG4gICAgICAgICAgICAgICAgbmV4dCArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdG9rZW5zLnB1c2goWyd3b3JkJywgY3NzLnNsaWNlKHBvcywgbmV4dCArIDEpLFxuICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgbGluZSwgbmV4dCAtIG9mZnNldFxuICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmICggY29kZSA9PT0gU0xBU0ggJiYgY3NzLmNoYXJDb2RlQXQocG9zICsgMSkgPT09IEFTVEVSSVNLICkge1xuICAgICAgICAgICAgICAgIG5leHQgPSBjc3MuaW5kZXhPZignKi8nLCBwb3MgKyAyKSArIDE7XG4gICAgICAgICAgICAgICAgaWYgKCBuZXh0ID09PSAwICkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIGlnbm9yZSApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5jbG9zZWQoJ2NvbW1lbnQnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSk7XG4gICAgICAgICAgICAgICAgbGluZXMgICA9IGNvbnRlbnQuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgICAgIGxhc3QgICAgPSBsaW5lcy5sZW5ndGggLSAxO1xuXG4gICAgICAgICAgICAgICAgaWYgKCBsYXN0ID4gMCApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUgICA9IGxpbmUgKyBsYXN0O1xuICAgICAgICAgICAgICAgICAgICBuZXh0T2Zmc2V0ID0gbmV4dCAtIGxpbmVzW2xhc3RdLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0TGluZSAgID0gbGluZTtcbiAgICAgICAgICAgICAgICAgICAgbmV4dE9mZnNldCA9IG9mZnNldDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ2NvbW1lbnQnLCBjb250ZW50LFxuICAgICAgICAgICAgICAgICAgICBsaW5lLCAgICAgcG9zICAtIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dExpbmUsIG5leHQgLSBuZXh0T2Zmc2V0XG4gICAgICAgICAgICAgICAgXSk7XG5cbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBuZXh0T2Zmc2V0O1xuICAgICAgICAgICAgICAgIGxpbmUgICA9IG5leHRMaW5lO1xuICAgICAgICAgICAgICAgIHBvcyAgICA9IG5leHQ7XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgUkVfV09SRF9FTkQubGFzdEluZGV4ID0gcG9zICsgMTtcbiAgICAgICAgICAgICAgICBSRV9XT1JEX0VORC50ZXN0KGNzcyk7XG4gICAgICAgICAgICAgICAgaWYgKCBSRV9XT1JEX0VORC5sYXN0SW5kZXggPT09IDAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSBjc3MubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gUkVfV09SRF9FTkQubGFzdEluZGV4IC0gMjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0b2tlbnMucHVzaChbJ3dvcmQnLCBjc3Muc2xpY2UocG9zLCBuZXh0ICsgMSksXG4gICAgICAgICAgICAgICAgICAgIGxpbmUsIHBvcyAgLSBvZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmUsIG5leHQgLSBvZmZzZXRcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICBwb3MgPSBuZXh0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHBvcysrO1xuICAgIH1cblxuICAgIHJldHVybiB0b2tlbnM7XG59XG4iXX0=\n","var irreducible = require('./irreducible');\nvar isObject = require('./isObject');\n\nmodule.exports = irreducible('Object', isObject);\n","var assert = require('./assert');\nvar isTypeName = require('./isTypeName');\nvar isFunction = require('./isFunction');\nvar getTypeName = require('./getTypeName');\nvar isIdentity = require('./isIdentity');\nvar isArray = require('./isArray');\nvar create = require('./create');\nvar is = require('./is');\n\nfunction getDefaultName(types) {\n return '[' + types.map(getTypeName).join(', ') + ']';\n}\n\nfunction tuple(types, name) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isArray(types) && types.every(isFunction), function () { return 'Invalid argument types ' + assert.stringify(types) + ' supplied to tuple(types, [name]) combinator (expected an array of types)'; });\n assert(isTypeName(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to tuple(types, [name]) combinator (expected a string)'; });\n }\n\n var displayName = name || getDefaultName(types);\n var identity = types.every(isIdentity);\n\n function Tuple(value, path) {\n\n if (process.env.NODE_ENV === 'production') {\n if (identity) {\n return value;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n path = path || [displayName];\n assert(isArray(value) && value.length === types.length, function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/') + ' (expected an array of length ' + types.length + ')'; });\n }\n\n var idempotent = true;\n var ret = [];\n for (var i = 0, len = types.length; i < len; i++) {\n var expected = types[i];\n var actual = value[i];\n var instance = create(expected, actual, ( process.env.NODE_ENV !== 'production' ? path.concat(i + ': ' + getTypeName(expected)) : null ));\n idempotent = idempotent && ( actual === instance );\n ret.push(instance);\n }\n\n if (idempotent) { // implements idempotency\n ret = value;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(ret);\n }\n\n return ret;\n }\n\n Tuple.meta = {\n kind: 'tuple',\n types: types,\n name: name,\n identity: identity\n };\n\n Tuple.displayName = displayName;\n\n Tuple.is = function (x) {\n return isArray(x) &&\n x.length === types.length &&\n types.every(function (type, i) {\n return is(x[i], type);\n });\n };\n\n Tuple.update = function (instance, patch) {\n return Tuple(assert.update(instance, patch));\n };\n\n return Tuple;\n}\n\ntuple.getDefaultName = getDefaultName;\nmodule.exports = tuple;","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\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 var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(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 return 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};\n","var isType = require('./isType');\nvar isStruct = require('./isStruct');\nvar getFunctionName = require('./getFunctionName');\nvar assert = require('./assert');\nvar stringify = require('./stringify');\n\n// creates an instance of a type, handling the optional new operator\nmodule.exports = function create(type, value, path) {\n if (isType(type)) {\n // for structs the new operator is allowed\n return isStruct(type) ? new type(value, path) : type(value, path);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // here type should be a class constructor and value some instance, just check membership and return the value\n path = path || [getFunctionName(type)];\n assert(value instanceof type, function () { return 'Invalid value ' + stringify(value) + ' supplied to ' + path.join('/'); });\n }\n\n return value;\n};","var assert = require('./assert');\nvar isString = require('./isString');\nvar isFunction = require('./isFunction');\nvar forbidNewOperator = require('./forbidNewOperator');\n\nmodule.exports = function irreducible(name, predicate) {\n\n if (process.env.NODE_ENV !== 'production') {\n assert(isString(name), function () { return 'Invalid argument name ' + assert.stringify(name) + ' supplied to irreducible(name, predicate) (expected a string)'; });\n assert(isFunction(predicate), 'Invalid argument predicate ' + assert.stringify(predicate) + ' supplied to irreducible(name, predicate) (expected a function)');\n }\n\n function Irreducible(value, path) {\n\n if (process.env.NODE_ENV !== 'production') {\n forbidNewOperator(this, Irreducible);\n path = path || [name];\n assert(predicate(value), function () { return 'Invalid value ' + assert.stringify(value) + ' supplied to ' + path.join('/'); });\n }\n\n return value;\n }\n\n Irreducible.meta = {\n kind: 'irreducible',\n name: name,\n predicate: predicate,\n identity: true\n };\n\n Irreducible.displayName = name;\n\n Irreducible.is = predicate;\n\n return Irreducible;\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = {};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* 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","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\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\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\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($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","module.exports = function isBoolean(x) {\n return x === true || x === false;\n};","var isFunction = require('./isFunction');\nvar isObject = require('./isObject');\n\nmodule.exports = function isType(x) {\n return isFunction(x) && isObject(x.meta);\n};","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = function isNumber(x) {\n return typeof x === 'number' && isFinite(x) && !isNaN(x);\n};","module.exports = function isArray(x) {\n return x instanceof Array;\n};","'use strict';\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Represents a plugin’s warning. It can be created using {@link Node#warn}.\n *\n * @example\n * if ( decl.important ) {\n * decl.warn(result, 'Avoid !important', { word: '!important' });\n * }\n */\nvar Warning = function () {\n\n /**\n * @param {string} text - warning message\n * @param {Object} [opts] - warning options\n * @param {Node} opts.node - CSS node that caused the warning\n * @param {string} opts.word - word in CSS source that caused the warning\n * @param {number} opts.index - index in CSS node string that caused\n * the warning\n * @param {string} opts.plugin - name of the plugin that created\n * this warning. {@link Result#warn} fills\n * this property automatically.\n */\n function Warning(text) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Warning);\n\n /**\n * @member {string} - Type to filter warnings from\n * {@link Result#messages}. Always equal\n * to `\"warning\"`.\n *\n * @example\n * const nonWarning = result.messages.filter(i => i.type !== 'warning')\n */\n this.type = 'warning';\n /**\n * @member {string} - The warning message.\n *\n * @example\n * warning.text //=> 'Try to avoid !important'\n */\n this.text = text;\n\n if (opts.node && opts.node.source) {\n var pos = opts.node.positionBy(opts);\n /**\n * @member {number} - Line in the input file\n * with this warning’s source\n *\n * @example\n * warning.line //=> 5\n */\n this.line = pos.line;\n /**\n * @member {number} - Column in the input file\n * with this warning’s source.\n *\n * @example\n * warning.column //=> 6\n */\n this.column = pos.column;\n }\n\n for (var opt in opts) {\n this[opt] = opts[opt];\n }\n }\n\n /**\n * Returns a warning position and message.\n *\n * @example\n * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important'\n *\n * @return {string} warning position and message\n */\n\n\n Warning.prototype.toString = function toString() {\n if (this.node) {\n return this.node.error(this.text, {\n plugin: this.plugin,\n index: this.index,\n word: this.word\n }).message;\n } else if (this.plugin) {\n return this.plugin + ': ' + this.text;\n } else {\n return this.text;\n }\n };\n\n /**\n * @memberof Warning#\n * @member {string} plugin - The name of the plugin that created\n * it will fill this property automatically.\n * this warning. When you call {@link Node#warn}\n *\n * @example\n * warning.plugin //=> 'postcss-important'\n */\n\n /**\n * @memberof Warning#\n * @member {Node} node - Contains the CSS node that caused the warning.\n *\n * @example\n * warning.node.toString() //=> 'color: white !important'\n */\n\n return Warning;\n}();\n\nexports.default = Warning;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndhcm5pbmcuZXM2Il0sIm5hbWVzIjpbIldhcm5pbmciLCJ0ZXh0Iiwib3B0cyIsInR5cGUiLCJub2RlIiwic291cmNlIiwicG9zIiwicG9zaXRpb25CeSIsImxpbmUiLCJjb2x1bW4iLCJvcHQiLCJ0b1N0cmluZyIsImVycm9yIiwicGx1Z2luIiwiaW5kZXgiLCJ3b3JkIiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7Ozs7Ozs7O0lBUU1BLE87O0FBRUY7Ozs7Ozs7Ozs7O0FBV0EsbUJBQVlDLElBQVosRUFBOEI7QUFBQSxRQUFaQyxJQUFZLHVFQUFMLEVBQUs7O0FBQUE7O0FBQzFCOzs7Ozs7OztBQVFBLFNBQUtDLElBQUwsR0FBWSxTQUFaO0FBQ0E7Ozs7OztBQU1BLFNBQUtGLElBQUwsR0FBWUEsSUFBWjs7QUFFQSxRQUFLQyxLQUFLRSxJQUFMLElBQWFGLEtBQUtFLElBQUwsQ0FBVUMsTUFBNUIsRUFBcUM7QUFDakMsVUFBSUMsTUFBVUosS0FBS0UsSUFBTCxDQUFVRyxVQUFWLENBQXFCTCxJQUFyQixDQUFkO0FBQ0E7Ozs7Ozs7QUFPQSxXQUFLTSxJQUFMLEdBQWNGLElBQUlFLElBQWxCO0FBQ0E7Ozs7Ozs7QUFPQSxXQUFLQyxNQUFMLEdBQWNILElBQUlHLE1BQWxCO0FBQ0g7O0FBRUQsU0FBTSxJQUFJQyxHQUFWLElBQWlCUixJQUFqQjtBQUF3QixXQUFLUSxHQUFMLElBQVlSLEtBQUtRLEdBQUwsQ0FBWjtBQUF4QjtBQUNIOztBQUVEOzs7Ozs7Ozs7O29CQVFBQyxRLHVCQUFXO0FBQ1AsUUFBSyxLQUFLUCxJQUFWLEVBQWlCO0FBQ2IsYUFBTyxLQUFLQSxJQUFMLENBQVVRLEtBQVYsQ0FBZ0IsS0FBS1gsSUFBckIsRUFBMkI7QUFDOUJZLGdCQUFRLEtBQUtBLE1BRGlCO0FBRTlCQyxlQUFRLEtBQUtBLEtBRmlCO0FBRzlCQyxjQUFRLEtBQUtBO0FBSGlCLE9BQTNCLEVBSUpDLE9BSkg7QUFLSCxLQU5ELE1BTU8sSUFBSyxLQUFLSCxNQUFWLEVBQW1CO0FBQ3RCLGFBQU8sS0FBS0EsTUFBTCxHQUFjLElBQWQsR0FBcUIsS0FBS1osSUFBakM7QUFDSCxLQUZNLE1BRUE7QUFDSCxhQUFPLEtBQUtBLElBQVo7QUFDSDtBQUNKLEc7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQTs7Ozs7Ozs7Ozs7a0JBVVdELE8iLCJmaWxlIjoid2FybmluZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwcmVzZW50cyBhIHBsdWdpbuKAmXMgd2FybmluZy4gSXQgY2FuIGJlIGNyZWF0ZWQgdXNpbmcge0BsaW5rIE5vZGUjd2Fybn0uXG4gKlxuICogQGV4YW1wbGVcbiAqIGlmICggZGVjbC5pbXBvcnRhbnQgKSB7XG4gKiAgICAgZGVjbC53YXJuKHJlc3VsdCwgJ0F2b2lkICFpbXBvcnRhbnQnLCB7IHdvcmQ6ICchaW1wb3J0YW50JyB9KTtcbiAqIH1cbiAqL1xuY2xhc3MgV2FybmluZyB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAgICAgICAgLSB3YXJuaW5nIG1lc3NhZ2VcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW29wdHNdICAgICAgLSB3YXJuaW5nIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0ge05vZGV9ICAgb3B0cy5ub2RlICAgLSBDU1Mgbm9kZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLndvcmQgICAtIHdvcmQgaW4gQ1NTIHNvdXJjZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZ1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcHRzLmluZGV4ICAtIGluZGV4IGluIENTUyBub2RlIHN0cmluZyB0aGF0IGNhdXNlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB3YXJuaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMucGx1Z2luIC0gbmFtZSBvZiB0aGUgcGx1Z2luIHRoYXQgY3JlYXRlZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgd2FybmluZy4ge0BsaW5rIFJlc3VsdCN3YXJufSBmaWxsc1xuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgcHJvcGVydHkgYXV0b21hdGljYWxseS5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcih0ZXh0LCBvcHRzID0geyB9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IC0gVHlwZSB0byBmaWx0ZXIgd2FybmluZ3MgZnJvbVxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAge0BsaW5rIFJlc3VsdCNtZXNzYWdlc30uIEFsd2F5cyBlcXVhbFxuICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgdG8gYFwid2FybmluZ1wiYC5cbiAgICAgICAgICpcbiAgICAgICAgICogQGV4YW1wbGVcbiAgICAgICAgICogY29uc3Qgbm9uV2FybmluZyA9IHJlc3VsdC5tZXNzYWdlcy5maWx0ZXIoaSA9PiBpLnR5cGUgIT09ICd3YXJuaW5nJylcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9ICd3YXJuaW5nJztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBtZW1iZXIge3N0cmluZ30gLSBUaGUgd2FybmluZyBtZXNzYWdlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgKiB3YXJuaW5nLnRleHQgLy89PiAnVHJ5IHRvIGF2b2lkICFpbXBvcnRhbnQnXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnRleHQgPSB0ZXh0O1xuXG4gICAgICAgIGlmICggb3B0cy5ub2RlICYmIG9wdHMubm9kZS5zb3VyY2UgKSB7XG4gICAgICAgICAgICBsZXQgcG9zICAgICA9IG9wdHMubm9kZS5wb3NpdGlvbkJ5KG9wdHMpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAbWVtYmVyIHtudW1iZXJ9IC0gTGluZSBpbiB0aGUgaW5wdXQgZmlsZVxuICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgIHdpdGggdGhpcyB3YXJuaW5n4oCZcyBzb3VyY2VcbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogd2FybmluZy5saW5lIC8vPT4gNVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmxpbmUgICA9IHBvcy5saW5lO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBAbWVtYmVyIHtudW1iZXJ9IC0gQ29sdW1uIGluIHRoZSBpbnB1dCBmaWxlXG4gICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGlzIHdhcm5pbmfigJlzIHNvdXJjZS5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBAZXhhbXBsZVxuICAgICAgICAgICAgICogd2FybmluZy5jb2x1bW4gLy89PiA2XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuY29sdW1uID0gcG9zLmNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoIGxldCBvcHQgaW4gb3B0cyApIHRoaXNbb3B0XSA9IG9wdHNbb3B0XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgd2FybmluZyBwb3NpdGlvbiBhbmQgbWVzc2FnZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogd2FybmluZy50b1N0cmluZygpIC8vPT4gJ3Bvc3Rjc3MtbGludDphLmNzczoxMDoxNDogQXZvaWQgIWltcG9ydGFudCdcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge3N0cmluZ30gd2FybmluZyBwb3NpdGlvbiBhbmQgbWVzc2FnZVxuICAgICAqL1xuICAgIHRvU3RyaW5nKCkge1xuICAgICAgICBpZiAoIHRoaXMubm9kZSApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5vZGUuZXJyb3IodGhpcy50ZXh0LCB7XG4gICAgICAgICAgICAgICAgcGx1Z2luOiB0aGlzLnBsdWdpbixcbiAgICAgICAgICAgICAgICBpbmRleDogIHRoaXMuaW5kZXgsXG4gICAgICAgICAgICAgICAgd29yZDogICB0aGlzLndvcmRcbiAgICAgICAgICAgIH0pLm1lc3NhZ2U7XG4gICAgICAgIH0gZWxzZSBpZiAoIHRoaXMucGx1Z2luICkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luICsgJzogJyArIHRoaXMudGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgV2FybmluZyNcbiAgICAgKiBAbWVtYmVyIHtzdHJpbmd9IHBsdWdpbiAtIFRoZSBuYW1lIG9mIHRoZSBwbHVnaW4gdGhhdCBjcmVhdGVkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBpdCB3aWxsIGZpbGwgdGhpcyBwcm9wZXJ0eSBhdXRvbWF0aWNhbGx5LlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB3YXJuaW5nLiBXaGVuIHlvdSBjYWxsIHtAbGluayBOb2RlI3dhcm59XG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHdhcm5pbmcucGx1Z2luIC8vPT4gJ3Bvc3Rjc3MtaW1wb3J0YW50J1xuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIFdhcm5pbmcjXG4gICAgICogQG1lbWJlciB7Tm9kZX0gbm9kZSAtIENvbnRhaW5zIHRoZSBDU1Mgbm9kZSB0aGF0IGNhdXNlZCB0aGUgd2FybmluZy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogd2FybmluZy5ub2RlLnRvU3RyaW5nKCkgLy89PiAnY29sb3I6IHdoaXRlICFpbXBvcnRhbnQnXG4gICAgICovXG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgV2FybmluZztcbiJdfQ==\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","'use strict';\n\nexports.__esModule = true;\nexports.default = stringify;\n\nvar _stringifier = require('./stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringify(node, builder) {\n var str = new _stringifier2.default(builder);\n str.stringify(node);\n}\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmluZ2lmeS5lczYiXSwibmFtZXMiOlsic3RyaW5naWZ5Iiwibm9kZSIsImJ1aWxkZXIiLCJzdHIiXSwibWFwcGluZ3MiOiI7OztrQkFFd0JBLFM7O0FBRnhCOzs7Ozs7QUFFZSxTQUFTQSxTQUFULENBQW1CQyxJQUFuQixFQUF5QkMsT0FBekIsRUFBa0M7QUFDN0MsUUFBSUMsTUFBTSwwQkFBZ0JELE9BQWhCLENBQVY7QUFDQUMsUUFBSUgsU0FBSixDQUFjQyxJQUFkO0FBQ0giLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0cmluZ2lmaWVyIGZyb20gJy4vc3RyaW5naWZpZXInO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzdHJpbmdpZnkobm9kZSwgYnVpbGRlcikge1xuICAgIGxldCBzdHIgPSBuZXcgU3RyaW5naWZpZXIoYnVpbGRlcik7XG4gICAgc3RyLnN0cmluZ2lmeShub2RlKTtcbn1cbiJdfQ==\n","'use strict';\n\nexports.__esModule = true;\n\nvar _chalk = require('chalk');\n\nvar _chalk2 = _interopRequireDefault(_chalk);\n\nvar _tokenize = require('./tokenize');\n\nvar _tokenize2 = _interopRequireDefault(_tokenize);\n\nvar _input = require('./input');\n\nvar _input2 = _interopRequireDefault(_input);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar colors = new _chalk2.default.constructor({ enabled: true });\n\nvar HIGHLIGHT_THEME = {\n 'brackets': colors.cyan,\n 'at-word': colors.cyan,\n 'call': colors.cyan,\n 'comment': colors.gray,\n 'string': colors.green,\n 'class': colors.yellow,\n 'hash': colors.magenta,\n '(': colors.cyan,\n ')': colors.cyan,\n '{': colors.yellow,\n '}': colors.yellow,\n '[': colors.yellow,\n ']': colors.yellow,\n ':': colors.yellow,\n ';': colors.yellow\n};\n\nfunction getTokenType(_ref, index, tokens) {\n var type = _ref[0],\n value = _ref[1];\n\n if (type === 'word') {\n if (value[0] === '.') {\n return 'class';\n }\n if (value[0] === '#') {\n return 'hash';\n }\n }\n\n var nextToken = tokens[index + 1];\n if (nextToken && (nextToken[0] === 'brackets' || nextToken[0] === '(')) {\n return 'call';\n }\n\n return type;\n}\n\nfunction terminalHighlight(css) {\n var tokens = (0, _tokenize2.default)(new _input2.default(css), { ignoreErrors: true });\n return tokens.map(function (token, index) {\n var color = HIGHLIGHT_THEME[getTokenType(token, index, tokens)];\n if (color) {\n return token[1].split(/\\r?\\n/).map(function (i) {\n return color(i);\n }).join('\\n');\n } else {\n return token[1];\n }\n }).join('');\n}\n\nexports.default = terminalHighlight;\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlcm1pbmFsLWhpZ2hsaWdodC5lczYiXSwibmFtZXMiOlsiY29sb3JzIiwiY29uc3RydWN0b3IiLCJlbmFibGVkIiwiSElHSExJR0hUX1RIRU1FIiwiY3lhbiIsImdyYXkiLCJncmVlbiIsInllbGxvdyIsIm1hZ2VudGEiLCJnZXRUb2tlblR5cGUiLCJpbmRleCIsInRva2VucyIsInR5cGUiLCJ2YWx1ZSIsIm5leHRUb2tlbiIsInRlcm1pbmFsSGlnaGxpZ2h0IiwiY3NzIiwiaWdub3JlRXJyb3JzIiwibWFwIiwidG9rZW4iLCJjb2xvciIsInNwbGl0IiwiaSIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7OztBQUVBOzs7O0FBQ0E7Ozs7OztBQUVBLElBQUlBLFNBQVMsSUFBSSxnQkFBTUMsV0FBVixDQUFzQixFQUFFQyxTQUFTLElBQVgsRUFBdEIsQ0FBYjs7QUFFQSxJQUFNQyxrQkFBa0I7QUFDcEIsZ0JBQVlILE9BQU9JLElBREM7QUFFcEIsZUFBWUosT0FBT0ksSUFGQztBQUdwQixZQUFZSixPQUFPSSxJQUhDO0FBSXBCLGVBQVlKLE9BQU9LLElBSkM7QUFLcEIsY0FBWUwsT0FBT00sS0FMQztBQU1wQixhQUFZTixPQUFPTyxNQU5DO0FBT3BCLFlBQVlQLE9BQU9RLE9BUEM7QUFRcEIsU0FBWVIsT0FBT0ksSUFSQztBQVNwQixTQUFZSixPQUFPSSxJQVRDO0FBVXBCLFNBQVlKLE9BQU9PLE1BVkM7QUFXcEIsU0FBWVAsT0FBT08sTUFYQztBQVlwQixTQUFZUCxPQUFPTyxNQVpDO0FBYXBCLFNBQVlQLE9BQU9PLE1BYkM7QUFjcEIsU0FBWVAsT0FBT08sTUFkQztBQWVwQixTQUFZUCxPQUFPTztBQWZDLENBQXhCOztBQWtCQSxTQUFTRSxZQUFULE9BQXFDQyxLQUFyQyxFQUE0Q0MsTUFBNUMsRUFBb0Q7QUFBQSxRQUE3QkMsSUFBNkI7QUFBQSxRQUF2QkMsS0FBdUI7O0FBQ2hELFFBQUlELFNBQVMsTUFBYixFQUFxQjtBQUNqQixZQUFJQyxNQUFNLENBQU4sTUFBYSxHQUFqQixFQUFzQjtBQUNsQixtQkFBTyxPQUFQO0FBQ0g7QUFDRCxZQUFJQSxNQUFNLENBQU4sTUFBYSxHQUFqQixFQUFzQjtBQUNsQixtQkFBTyxNQUFQO0FBQ0g7QUFDSjs7QUFFRCxRQUFJQyxZQUFZSCxPQUFPRCxRQUFRLENBQWYsQ0FBaEI7QUFDQSxRQUFJSSxjQUFjQSxVQUFVLENBQVYsTUFBaUIsVUFBakIsSUFBK0JBLFVBQVUsQ0FBVixNQUFpQixHQUE5RCxDQUFKLEVBQXdFO0FBQ3BFLGVBQU8sTUFBUDtBQUNIOztBQUVELFdBQU9GLElBQVA7QUFDSDs7QUFFRCxTQUFTRyxpQkFBVCxDQUEyQkMsR0FBM0IsRUFBZ0M7QUFDNUIsUUFBSUwsU0FBUyx3QkFBUyxvQkFBVUssR0FBVixDQUFULEVBQXlCLEVBQUVDLGNBQWMsSUFBaEIsRUFBekIsQ0FBYjtBQUNBLFdBQU9OLE9BQU9PLEdBQVAsQ0FBVyxVQUFDQyxLQUFELEVBQVFULEtBQVIsRUFBa0I7QUFDaEMsWUFBSVUsUUFBUWpCLGdCQUFnQk0sYUFBYVUsS0FBYixFQUFvQlQsS0FBcEIsRUFBMkJDLE1BQTNCLENBQWhCLENBQVo7QUFDQSxZQUFLUyxLQUFMLEVBQWE7QUFDVCxtQkFBT0QsTUFBTSxDQUFOLEVBQVNFLEtBQVQsQ0FBZSxPQUFmLEVBQ0pILEdBREksQ0FDQztBQUFBLHVCQUFLRSxNQUFNRSxDQUFOLENBQUw7QUFBQSxhQURELEVBRUpDLElBRkksQ0FFQyxJQUZELENBQVA7QUFHSCxTQUpELE1BSU87QUFDSCxtQkFBT0osTUFBTSxDQUFOLENBQVA7QUFDSDtBQUNKLEtBVE0sRUFTSkksSUFUSSxDQVNDLEVBVEQsQ0FBUDtBQVVIOztrQkFFY1IsaUIiLCJmaWxlIjoidGVybWluYWwtaGlnaGxpZ2h0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuaW1wb3J0IHRva2VuaXplIGZyb20gJy4vdG9rZW5pemUnO1xuaW1wb3J0IElucHV0ICAgIGZyb20gJy4vaW5wdXQnO1xuXG5sZXQgY29sb3JzID0gbmV3IGNoYWxrLmNvbnN0cnVjdG9yKHsgZW5hYmxlZDogdHJ1ZSB9KTtcblxuY29uc3QgSElHSExJR0hUX1RIRU1FID0ge1xuICAgICdicmFja2V0cyc6IGNvbG9ycy5jeWFuLFxuICAgICdhdC13b3JkJzogIGNvbG9ycy5jeWFuLFxuICAgICdjYWxsJzogICAgIGNvbG9ycy5jeWFuLFxuICAgICdjb21tZW50JzogIGNvbG9ycy5ncmF5LFxuICAgICdzdHJpbmcnOiAgIGNvbG9ycy5ncmVlbixcbiAgICAnY2xhc3MnOiAgICBjb2xvcnMueWVsbG93LFxuICAgICdoYXNoJzogICAgIGNvbG9ycy5tYWdlbnRhLFxuICAgICcoJzogICAgICAgIGNvbG9ycy5jeWFuLFxuICAgICcpJzogICAgICAgIGNvbG9ycy5jeWFuLFxuICAgICd7JzogICAgICAgIGNvbG9ycy55ZWxsb3csXG4gICAgJ30nOiAgICAgICAgY29sb3JzLnllbGxvdyxcbiAgICAnWyc6ICAgICAgICBjb2xvcnMueWVsbG93LFxuICAgICddJzogICAgICAgIGNvbG9ycy55ZWxsb3csXG4gICAgJzonOiAgICAgICAgY29sb3JzLnllbGxvdyxcbiAgICAnOyc6ICAgICAgICBjb2xvcnMueWVsbG93XG59O1xuXG5mdW5jdGlvbiBnZXRUb2tlblR5cGUoW3R5cGUsIHZhbHVlXSwgaW5kZXgsIHRva2Vucykge1xuICAgIGlmICh0eXBlID09PSAnd29yZCcpIHtcbiAgICAgICAgaWYgKHZhbHVlWzBdID09PSAnLicpIHtcbiAgICAgICAgICAgIHJldHVybiAnY2xhc3MnO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZVswXSA9PT0gJyMnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2hhc2gnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG5leHRUb2tlbiA9IHRva2Vuc1tpbmRleCArIDFdO1xuICAgIGlmIChuZXh0VG9rZW4gJiYgKG5leHRUb2tlblswXSA9PT0gJ2JyYWNrZXRzJyB8fCBuZXh0VG9rZW5bMF0gPT09ICcoJykpIHtcbiAgICAgICAgcmV0dXJuICdjYWxsJztcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbn1cblxuZnVuY3Rpb24gdGVybWluYWxIaWdobGlnaHQoY3NzKSB7XG4gICAgbGV0IHRva2VucyA9IHRva2VuaXplKG5ldyBJbnB1dChjc3MpLCB7IGlnbm9yZUVycm9yczogdHJ1ZSB9KTtcbiAgICByZXR1cm4gdG9rZW5zLm1hcCgodG9rZW4sIGluZGV4KSA9PiB7XG4gICAgICAgIGxldCBjb2xvciA9IEhJR0hMSUdIVF9USEVNRVtnZXRUb2tlblR5cGUodG9rZW4sIGluZGV4LCB0b2tlbnMpXTtcbiAgICAgICAgaWYgKCBjb2xvciApIHtcbiAgICAgICAgICAgIHJldHVybiB0b2tlblsxXS5zcGxpdCgvXFxyP1xcbi8pXG4gICAgICAgICAgICAgIC5tYXAoIGkgPT4gY29sb3IoaSkgKVxuICAgICAgICAgICAgICAuam9pbignXFxuJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW5bMV07XG4gICAgICAgIH1cbiAgICB9KS5qb2luKCcnKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgdGVybWluYWxIaWdobGlnaHQ7XG4iXX0=\n","var assert = require('./assert');\nvar isFunction = require('./isFunction');\nvar isType = require('./isType');\nvar Any = require('./Any');\n\nmodule.exports = function match(x) {\n var type, guard, f, count;\n for (var i = 1, len = arguments.length; i < len; ) {\n type = arguments[i];\n guard = arguments[i + 1];\n f = arguments[i + 2];\n\n if (isFunction(f) && !isType(f)) {\n i = i + 3;\n }\n else {\n f = guard;\n guard = Any.is;\n i = i + 2;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n count = (count || 0) + 1;\n assert(isType(type), function () { return 'Invalid type in clause #' + count; });\n assert(isFunction(guard), function () { return 'Invalid guard in clause #' + count; });\n assert(isFunction(f), function () { return 'Invalid block in clause #' + count; });\n }\n\n if (type.is(x) && guard(x)) {\n return f(x);\n }\n }\n assert.fail('Match error');\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\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","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","'use strict';\n\nexports.__esModule = true;\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _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\nvar _cssSyntaxError = require('./css-syntax-error');\n\nvar _cssSyntaxError2 = _interopRequireDefault(_cssSyntaxError);\n\nvar _stringifier = require('./stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nvar _stringify = require('./stringify');\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _warnOnce = require('./warn-once');\n\nvar _warnOnce2 = _interopRequireDefault(_warnOnce);\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\nvar cloneNode = function cloneNode(obj, parent) {\n var cloned = new obj.constructor();\n\n for (var i in obj) {\n if (!obj.hasOwnProperty(i)) continue;\n var value = obj[i];\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent;\n } else if (i === 'source') {\n cloned[i] = value;\n } else if (value instanceof Array) {\n cloned[i] = value.map(function (j) {\n return cloneNode(j, cloned);\n });\n } else if (i !== 'before' && i !== 'after' && i !== 'between' && i !== 'semicolon') {\n if (type === 'object' && value !== null) value = cloneNode(value);\n cloned[i] = value;\n }\n }\n\n return cloned;\n};\n\n/**\n * All node classes inherit the following common methods.\n *\n * @abstract\n */\n\nvar Node = function () {\n\n /**\n * @param {object} [defaults] - value for node properties\n */\n function Node() {\n var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Node);\n\n this.raws = {};\n if ((typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) !== 'object' && typeof defaults !== 'undefined') {\n throw new Error('PostCSS nodes constructor accepts object, not ' + JSON.stringify(defaults));\n }\n for (var name in defaults) {\n this[name] = defaults[name];\n }\n }\n\n /**\n * Returns a CssSyntaxError instance containing the original position\n * of the node in the source, showing line and column numbers and also\n * a small excerpt to facilitate debugging.\n *\n * If present, an input source map will be used to get the original position\n * of the source, even from a previous compilation step\n * (e.g., from Sass compilation).\n *\n * This method produces very useful error messages.\n *\n * @param {string} message - error description\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this error.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the error\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the error\n *\n * @return {CssSyntaxError} error object to throw it\n *\n * @example\n * if ( !variables[name] ) {\n * throw decl.error('Unknown variable ' + name, { word: name });\n * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black\n * // color: $black\n * // a\n * // ^\n * // background: white\n * }\n */\n\n\n Node.prototype.error = function error(message) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.source) {\n var pos = this.positionBy(opts);\n return this.source.input.error(message, pos.line, pos.column, opts);\n } else {\n return new _cssSyntaxError2.default(message);\n }\n };\n\n /**\n * This method is provided as a convenience wrapper for {@link Result#warn}.\n *\n * @param {Result} result - the {@link Result} instance\n * that will receive the warning\n * @param {string} text - warning message\n * @param {object} [opts] - options\n * @param {string} opts.plugin - plugin name that created this warning.\n * PostCSS will set it automatically.\n * @param {string} opts.word - a word inside a node’s string that should\n * be highlighted as the source of the warning\n * @param {number} opts.index - an index inside a node’s string that should\n * be highlighted as the source of the warning\n *\n * @return {Warning} created warning object\n *\n * @example\n * const plugin = postcss.plugin('postcss-deprecated', () => {\n * return (root, result) => {\n * root.walkDecls('bad', decl => {\n * decl.warn(result, 'Deprecated property bad');\n * });\n * };\n * });\n */\n\n\n Node.prototype.warn = function warn(result, text, opts) {\n var data = { node: this };\n for (var i in opts) {\n data[i] = opts[i];\n }return result.warn(text, data);\n };\n\n /**\n * Removes the node from its parent and cleans the parent properties\n * from the node and its children.\n *\n * @example\n * if ( decl.prop.match(/^-webkit-/) ) {\n * decl.remove();\n * }\n *\n * @return {Node} node to make calls chain\n */\n\n\n Node.prototype.remove = function remove() {\n if (this.parent) {\n this.parent.removeChild(this);\n }\n this.parent = undefined;\n return this;\n };\n\n /**\n * Returns a CSS string representing the node.\n *\n * @param {stringifier|syntax} [stringifier] - a syntax to use\n * in string generation\n *\n * @return {string} CSS string of this node\n *\n * @example\n * postcss.rule({ selector: 'a' }).toString() //=> \"a {}\"\n */\n\n\n Node.prototype.toString = function toString() {\n var stringifier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _stringify2.default;\n\n if (stringifier.stringify) stringifier = stringifier.stringify;\n var result = '';\n stringifier(this, function (i) {\n result += i;\n });\n return result;\n };\n\n /**\n * Returns a clone of the node.\n *\n * The resulting cloned node and its (cloned) children will have\n * a clean parent and code style properties.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * const cloned = decl.clone({ prop: '-moz-' + decl.prop });\n * cloned.raws.before //=> undefined\n * cloned.parent //=> undefined\n * cloned.toString() //=> -moz-transform: scale(0)\n *\n * @return {Node} clone of the node\n */\n\n\n Node.prototype.clone = function clone() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = cloneNode(this);\n for (var name in overrides) {\n cloned[name] = overrides[name];\n }\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * before the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @example\n * decl.cloneBefore({ prop: '-moz-' + decl.prop });\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneBefore = function cloneBefore() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertBefore(this, cloned);\n return cloned;\n };\n\n /**\n * Shortcut to clone the node and insert the resulting cloned node\n * after the current node.\n *\n * @param {object} [overrides] - new properties to override in the clone.\n *\n * @return {Node} - new node\n */\n\n\n Node.prototype.cloneAfter = function cloneAfter() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var cloned = this.clone(overrides);\n this.parent.insertAfter(this, cloned);\n return cloned;\n };\n\n /**\n * Inserts node(s) before the current node and removes the current node.\n *\n * @param {...Node} nodes - node(s) to replace current one\n *\n * @example\n * if ( atrule.name == 'mixin' ) {\n * atrule.replaceWith(mixinRules[atrule.params]);\n * }\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.replaceWith = function replaceWith() {\n if (this.parent) {\n for (var _len = arguments.length, nodes = Array(_len), _key = 0; _key < _len; _key++) {\n nodes[_key] = arguments[_key];\n }\n\n for (var _iterator = nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var node = _ref;\n\n this.parent.insertBefore(this, node);\n }\n\n this.remove();\n }\n\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it\n * at the end of `newParent`.\n *\n * This will clean the `before` and `after` code {@link Node#raws} data\n * from the node and replace them with the indentation style of `newParent`.\n * It will also clean the `between` property\n * if `newParent` is in another {@link Root}.\n *\n * @param {Container} newParent - container node where the current node\n * will be moved\n *\n * @example\n * atrule.moveTo(atrule.root());\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveTo = function moveTo(newParent) {\n this.cleanRaws(this.root() === newParent.root());\n this.remove();\n newParent.append(this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent before `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be before current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveBefore = function moveBefore(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertBefore(otherNode, this);\n return this;\n };\n\n /**\n * Removes the node from its current parent and inserts it into\n * a new parent after `otherNode`.\n *\n * This will also clean the node’s code style properties just as it would\n * in {@link Node#moveTo}.\n *\n * @param {Node} otherNode - node that will be after current node\n *\n * @return {Node} current node to methods chain\n */\n\n\n Node.prototype.moveAfter = function moveAfter(otherNode) {\n this.cleanRaws(this.root() === otherNode.root());\n this.remove();\n otherNode.parent.insertAfter(otherNode, this);\n return this;\n };\n\n /**\n * Returns the next child of the node’s parent.\n * Returns `undefined` if the current node is the last child.\n *\n * @return {Node|undefined} next node\n *\n * @example\n * if ( comment.text === 'delete next' ) {\n * const next = comment.next();\n * if ( next ) {\n * next.remove();\n * }\n * }\n */\n\n\n Node.prototype.next = function next() {\n var index = this.parent.index(this);\n return this.parent.nodes[index + 1];\n };\n\n /**\n * Returns the previous child of the node’s parent.\n * Returns `undefined` if the current node is the first child.\n *\n * @return {Node|undefined} previous node\n *\n * @example\n * const annotation = decl.prev();\n * if ( annotation.type == 'comment' ) {\n * readAnnotation(annotation.text);\n * }\n */\n\n\n Node.prototype.prev = function prev() {\n var index = this.parent.index(this);\n return this.parent.nodes[index - 1];\n };\n\n Node.prototype.toJSON = function toJSON() {\n var fixed = {};\n\n for (var name in this) {\n if (!this.hasOwnProperty(name)) continue;\n if (name === 'parent') continue;\n var value = this[name];\n\n if (value instanceof Array) {\n fixed[name] = value.map(function (i) {\n if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object' && i.toJSON) {\n return i.toJSON();\n } else {\n return i;\n }\n });\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.toJSON) {\n fixed[name] = value.toJSON();\n } else {\n fixed[name] = value;\n }\n }\n\n return fixed;\n };\n\n /**\n * Returns a {@link Node#raws} value. If the node is missing\n * the code style property (because the node was manually built or cloned),\n * PostCSS will try to autodetect the code style property by looking\n * at other nodes in the tree.\n *\n * @param {string} prop - name of code style property\n * @param {string} [defaultType] - name of default value, it can be missed\n * if the value is the same as prop\n *\n * @example\n * const root = postcss.parse('a { background: white }');\n * root.nodes[0].append({ prop: 'color', value: 'black' });\n * root.nodes[0].nodes[1].raws.before //=> undefined\n * root.nodes[0].nodes[1].raw('before') //=> ' '\n *\n * @return {string} code style value\n */\n\n\n Node.prototype.raw = function raw(prop, defaultType) {\n var str = new _stringifier2.default();\n return str.raw(this, prop, defaultType);\n };\n\n /**\n * Finds the Root instance of the node’s tree.\n *\n * @example\n * root.nodes[0].nodes[0].root() === root\n *\n * @return {Root} root parent\n */\n\n\n Node.prototype.root = function root() {\n var result = this;\n while (result.parent) {\n result = result.parent;\n }return result;\n };\n\n Node.prototype.cleanRaws = function cleanRaws(keepBetween) {\n delete this.raws.before;\n delete this.raws.after;\n if (!keepBetween) delete this.raws.between;\n };\n\n Node.prototype.positionInside = function positionInside(index) {\n var string = this.toString();\n var column = this.source.start.column;\n var line = this.source.start.line;\n\n for (var i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1;\n line += 1;\n } else {\n column += 1;\n }\n }\n\n return { line: line, column: column };\n };\n\n Node.prototype.positionBy = function positionBy(opts) {\n var pos = this.source.start;\n if (opts.index) {\n pos = this.positionInside(opts.index);\n } else if (opts.word) {\n var index = this.toString().indexOf(opts.word);\n if (index !== -1) pos = this.positionInside(index);\n }\n return pos;\n };\n\n Node.prototype.removeSelf = function removeSelf() {\n (0, _warnOnce2.default)('Node#removeSelf is deprecated. Use Node#remove.');\n return this.remove();\n };\n\n Node.prototype.replace = function replace(nodes) {\n (0, _warnOnce2.default)('Node#replace is deprecated. Use Node#replaceWith');\n return this.replaceWith(nodes);\n };\n\n Node.prototype.style = function style(own, detect) {\n (0, _warnOnce2.default)('Node#style() is deprecated. Use Node#raw()');\n return this.raw(own, detect);\n };\n\n Node.prototype.cleanStyles = function cleanStyles(keepBetween) {\n (0, _warnOnce2.default)('Node#cleanStyles() is deprecated. Use Node#cleanRaws()');\n return this.cleanRaws(keepBetween);\n };\n\n _createClass(Node, [{\n key: 'before',\n get: function get() {\n (0, _warnOnce2.default)('Node#before is deprecated. Use Node#raws.before');\n return this.raws.before;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#before is deprecated. Use Node#raws.before');\n this.raws.before = val;\n }\n }, {\n key: 'between',\n get: function get() {\n (0, _warnOnce2.default)('Node#between is deprecated. Use Node#raws.between');\n return this.raws.between;\n },\n set: function set(val) {\n (0, _warnOnce2.default)('Node#between is deprecated. Use Node#raws.between');\n this.raws.between = val;\n }\n\n /**\n * @memberof Node#\n * @member {string} type - String representing the node’s type.\n * Possible values are `root`, `atrule`, `rule`,\n * `decl`, or `comment`.\n *\n * @example\n * postcss.decl({ prop: 'color', value: 'black' }).type //=> 'decl'\n */\n\n /**\n * @memberof Node#\n * @member {Container} parent - the node’s parent node.\n *\n * @example\n * root.nodes[0].parent == root;\n */\n\n /**\n * @memberof Node#\n * @member {source} source - the input source of the node\n *\n * The property is used in source map generation.\n *\n * If you create a node manually (e.g., with `postcss.decl()`),\n * that node will not have a `source` property and will be absent\n * from the source map. For this reason, the plugin developer should\n * consider cloning nodes to create new ones (in which case the new node’s\n * source will reference the original, cloned node) or setting\n * the `source` property manually.\n *\n * ```js\n * // Bad\n * const prefixed = postcss.decl({\n * prop: '-moz-' + decl.prop,\n * value: decl.value\n * });\n *\n * // Good\n * const prefixed = decl.clone({ prop: '-moz-' + decl.prop });\n * ```\n *\n * ```js\n * if ( atrule.name == 'add-link' ) {\n * const rule = postcss.rule({ selector: 'a', source: atrule.source });\n * atrule.parent.insertBefore(atrule, rule);\n * }\n * ```\n *\n * @example\n * decl.source.input.from //=> '/home/ai/a.sass'\n * decl.source.start //=> { line: 10, column: 2 }\n * decl.source.end //=> { line: 10, column: 12 }\n */\n\n /**\n * @memberof Node#\n * @member {object} raws - Information to generate byte-to-byte equal\n * node string as it was in the origin input.\n *\n * Every parser saves its own properties,\n * but the default CSS parser uses:\n *\n * * `before`: the space symbols before the node. It also stores `*`\n * and `_` symbols before the declaration (IE hack).\n * * `after`: the space symbols after the last child of the node\n * to the end of the node.\n * * `between`: the symbols between the property and value\n * for declarations, selector and `{` for rules, or last parameter\n * and `{` for at-rules.\n * * `semicolon`: contains true if the last child has\n * an (optional) semicolon.\n * * `afterName`: the space between the at-rule name and its parameters.\n * * `left`: the space symbols between `/*` and the comment’s text.\n * * `right`: the space symbols between the comment’s text\n * and */.\n * * `important`: the content of the important statement,\n * if it is not just `!important`.\n *\n * PostCSS cleans selectors, declaration values and at-rule parameters\n * from comments and extra spaces, but it stores origin content in raws\n * properties. As such, if you don’t change a declaration’s value,\n * PostCSS will use the raw value with comments.\n *\n * @example\n * const root = postcss.parse('a {\\n color:black\\n}')\n * root.first.first.raws //=> { before: '\\n ', between: ':' }\n */\n\n }]);\n\n return Node;\n}();\n\nexports.default = Node;\n\n/**\n * @typedef {object} position\n * @property {number} line - source line in file\n * @property {number} column - source column in file\n */\n\n/**\n * @typedef {object} source\n * @property {Input} input - {@link Input} with input file\n * @property {position} start - The starting position of the node’s source\n * @property {position} end - The ending position of the node’s source\n */\n\nmodule.exports = exports['default'];\n//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGUuZXM2Il0sIm5hbWVzIjpbImNsb25lTm9kZSIsIm9iaiIsInBhcmVudCIsImNsb25lZCIsImNvbnN0cnVjdG9yIiwiaSIsImhhc093blByb3BlcnR5IiwidmFsdWUiLCJ0eXBlIiwiQXJyYXkiLCJtYXAiLCJqIiwiTm9kZSIsImRlZmF1bHRzIiwicmF3cyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5hbWUiLCJlcnJvciIsIm1lc3NhZ2UiLCJvcHRzIiwic291cmNlIiwicG9zIiwicG9zaXRpb25CeSIsImlucHV0IiwibGluZSIsImNvbHVtbiIsIndhcm4iLCJyZXN1bHQiLCJ0ZXh0IiwiZGF0YSIsIm5vZGUiLCJyZW1vdmUiLCJyZW1vdmVDaGlsZCIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwic3RyaW5naWZpZXIiLCJjbG9uZSIsIm92ZXJyaWRlcyIsImNsb25lQmVmb3JlIiwiaW5zZXJ0QmVmb3JlIiwiY2xvbmVBZnRlciIsImluc2VydEFmdGVyIiwicmVwbGFjZVdpdGgiLCJub2RlcyIsIm1vdmVUbyIsIm5ld1BhcmVudCIsImNsZWFuUmF3cyIsInJvb3QiLCJhcHBlbmQiLCJtb3ZlQmVmb3JlIiwib3RoZXJOb2RlIiwibW92ZUFmdGVyIiwibmV4dCIsImluZGV4IiwicHJldiIsInRvSlNPTiIsImZpeGVkIiwicmF3IiwicHJvcCIsImRlZmF1bHRUeXBlIiwic3RyIiwia2VlcEJldHdlZW4iLCJiZWZvcmUiLCJhZnRlciIsImJldHdlZW4iLCJwb3NpdGlvbkluc2lkZSIsInN0cmluZyIsInN0YXJ0Iiwid29yZCIsImluZGV4T2YiLCJyZW1vdmVTZWxmIiwicmVwbGFjZSIsInN0eWxlIiwib3duIiwiZGV0ZWN0IiwiY2xlYW5TdHlsZXMiLCJ2YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7O0FBRUEsSUFBSUEsWUFBWSxTQUFaQSxTQUFZLENBQVVDLEdBQVYsRUFBZUMsTUFB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Ozs7Ozs7OztBQVFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBb0NXbEUsSTs7QUFFZjs7Ozs7O0FBTUEiLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDc3NTeW50YXhFcnJvciBmcm9tICcuL2Nzcy1zeW50YXgtZXJyb3InO1xuaW1wb3J0IFN0cmluZ2lmaWVyICAgIGZyb20gJy4vc3RyaW5naWZpZXInO1xuaW1wb3J0IHN0cmluZ2lmeSAgICAgIGZyb20gJy4vc3RyaW5naWZ5JztcbmltcG9ydCB3YXJuT25jZSAgICAgICBmcm9tICcuL3dhcm4tb25jZSc7XG5cbmxldCBjbG9uZU5vZGUgPSBmdW5jdGlvbiAob2JqLCBwYXJlbnQpIHtcbiAgICBsZXQgY2xvbmVkID0gbmV3IG9iai5jb25zdHJ1Y3RvcigpO1xuXG4gICAgZm9yICggbGV0IGkgaW4gb2JqICkge1xuICAgICAgICBpZiAoICFvYmouaGFzT3duUHJvcGVydHkoaSkgKSBjb250aW51ZTtcbiAgICAgICAgbGV0IHZhbHVlID0gb2JqW2ldO1xuICAgICAgICBsZXQgdHlwZSAgPSB0eXBlb2YgdmFsdWU7XG5cbiAgICAgICAgaWYgKCBpID09PSAncGFyZW50JyAmJiB0eXBlID09PSAnb2JqZWN0JyApIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIGNsb25lZFtpXSA9IHBhcmVudDtcbiAgICAgICAgfSBlbHNlIGlmICggaSA9PT0gJ3NvdXJjZScgKSB7XG4gICAgICAgICAgICBjbG9uZWRbaV0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICggdmFsdWUgaW5zdGFuY2VvZiBBcnJheSApIHtcbiAgICAgICAgICAgIGNsb25lZFtpXSA9IHZhbHVlLm1hcCggaiA9PiBjbG9uZU5vZGUoaiwgY2xvbmVkKSApO1xuICAgICAgICB9IGVsc2UgaWYgKCBpICE9PSAnYmVmb3JlJyAgJiYgaSAhPT0gJ2FmdGVyJyAmJlxuICAgICAgICAgICAgICAgICAgICBpICE9PSAnYmV0d2VlbicgJiYgaSAhPT0gJ3NlbWljb2xvbicgKSB7XG4gICAgICAgICAgICBpZiAoIHR5cGUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsICkgdmFsdWUgPSBjbG9uZU5vZGUodmFsdWUpO1xuICAgICAgICAgICAgY2xvbmVkW2ldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmVkO1xufTtcblxuLyoqXG4gKiBBbGwgbm9kZSBjbGFzc2VzIGluaGVyaXQgdGhlIGZvbGxvd2luZyBjb21tb24gbWV0aG9kcy5cbiAqXG4gKiBAYWJzdHJhY3RcbiAqL1xuY2xhc3MgTm9kZSB7XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW2RlZmF1bHRzXSAtIHZhbHVlIGZvciBub2RlIHByb3BlcnRpZXNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihkZWZhdWx0cyA9IHsgfSkge1xuICAgICAgICB0aGlzLnJhd3MgPSB7IH07XG4gICAgICAgIGlmICggdHlwZW9mIGRlZmF1bHRzICE9PSAnb2JqZWN0JyAmJiB0eXBlb2YgZGVmYXVsdHMgIT09ICd1bmRlZmluZWQnICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICdQb3N0Q1NTIG5vZGVzIGNvbnN0cnVjdG9yIGFjY2VwdHMgb2JqZWN0LCBub3QgJyArXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGVmYXVsdHMpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKCBsZXQgbmFtZSBpbiBkZWZhdWx0cyApIHtcbiAgICAgICAgICAgIHRoaXNbbmFtZV0gPSBkZWZhdWx0c1tuYW1lXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBDc3NTeW50YXhFcnJvciBpbnN0YW5jZSBjb250YWluaW5nIHRoZSBvcmlnaW5hbCBwb3NpdGlvblxuICAgICAqIG9mIHRoZSBub2RlIGluIHRoZSBzb3VyY2UsIHNob3dpbmcgbGluZSBhbmQgY29sdW1uIG51bWJlcnMgYW5kIGFsc29cbiAgICAgKiBhIHNtYWxsIGV4Y2VycHQgdG8gZmFjaWxpdGF0ZSBkZWJ1Z2dpbmcuXG4gICAgICpcbiAgICAgKiBJZiBwcmVzZW50LCBhbiBpbnB1dCBzb3VyY2UgbWFwIHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIG9yaWdpbmFsIHBvc2l0aW9uXG4gICAgICogb2YgdGhlIHNvdXJjZSwgZXZlbiBmcm9tIGEgcHJldmlvdXMgY29tcGlsYXRpb24gc3RlcFxuICAgICAqIChlLmcuLCBmcm9tIFNhc3MgY29tcGlsYXRpb24pLlxuICAgICAqXG4gICAgICogVGhpcyBtZXRob2QgcHJvZHVjZXMgdmVyeSB1c2VmdWwgZXJyb3IgbWVzc2FnZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAgICAgLSBlcnJvciBkZXNjcmlwdGlvblxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0c10gICAgICAtIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gb3B0cy5wbHVnaW4gLSBwbHVnaW4gbmFtZSB0aGF0IGNyZWF0ZWQgdGhpcyBlcnJvci5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3N0Q1NTIHdpbGwgc2V0IGl0IGF1dG9tYXRpY2FsbHkuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG9wdHMud29yZCAgIC0gYSB3b3JkIGluc2lkZSBhIG5vZGXigJlzIHN0cmluZyB0aGF0IHNob3VsZFxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIGhpZ2hsaWdodGVkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMuaW5kZXggIC0gYW4gaW5kZXggaW5zaWRlIGEgbm9kZeKAmXMgc3RyaW5nIHRoYXQgc2hvdWxkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgaGlnaGxpZ2h0ZWQgYXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3JcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge0Nzc1N5bnRheEVycm9yfSBlcnJvciBvYmplY3QgdG8gdGhyb3cgaXRcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogaWYgKCAhdmFyaWFibGVzW25hbWVdICkge1xuICAgICAqICAgdGhyb3cgZGVjbC5lcnJvcignVW5rbm93biB2YXJpYWJsZSAnICsgbmFtZSwgeyB3b3JkOiBuYW1lIH0pO1xuICAgICAqICAgLy8gQ3NzU3ludGF4RXJyb3I6IHBvc3Rjc3MtdmFyczphLnNhc3M6NDozOiBVbmtub3duIHZhcmlhYmxlICRibGFja1xuICAgICAqICAgLy8gICBjb2xvcjogJGJsYWNrXG4gICAgICogICAvLyBhXG4gICAgICogICAvLyAgICAgICAgICBeXG4gICAgICogICAvLyAgIGJhY2tncm91bmQ6IHdoaXRlXG4gICAgICogfVxuICAgICAqL1xuICAgIGVycm9yKG1lc3NhZ2UsIG9wdHMgPSB7IH0pIHtcbiAgICAgICAgaWYgKCB0aGlzLnNvdXJjZSApIHtcbiAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLnBvc2l0aW9uQnkob3B0cyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2UuaW5wdXQuZXJyb3IobWVzc2FnZSwgcG9zLmxpbmUsIHBvcy5jb2x1bW4sIG9wdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBDc3NTeW50YXhFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIGlzIHByb3ZpZGVkIGFzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBmb3Ige0BsaW5rIFJlc3VsdCN3YXJufS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7UmVzdWx0fSByZXN1bHQgICAgICAtIHRoZSB7QGxpbmsgUmVzdWx0fSBpbnN0YW5jZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgd2lsbCByZWNlaXZlIHRoZSB3YXJuaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgICAgICAgIC0gd2FybmluZyBtZXNzYWdlXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRzXSAgICAgIC0gb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLnBsdWdpbiAtIHBsdWdpbiBuYW1lIHRoYXQgY3JlYXRlZCB0aGlzIHdhcm5pbmcuXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zdENTUyB3aWxsIHNldCBpdCBhdXRvbWF0aWNhbGx5LlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvcHRzLndvcmQgICAtIGEgd29yZCBpbnNpZGUgYSBub2Rl4oCZcyBzdHJpbmcgdGhhdCBzaG91bGRcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSBoaWdobGlnaHRlZCBhcyB0aGUgc291cmNlIG9mIHRoZSB3YXJuaW5nXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG9wdHMuaW5kZXggIC0gYW4gaW5kZXggaW5zaWRlIGEgbm9kZeKAmXMgc3RyaW5nIHRoYXQgc2hvdWxkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgaGlnaGxpZ2h0ZWQgYXMgdGhlIHNvdXJjZSBvZiB0aGUgd2FybmluZ1xuICAgICAqXG4gICAgICogQHJldHVybiB7V2FybmluZ30gY3JlYXRlZCB3YXJuaW5nIG9iamVjdFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBwbHVnaW4gPSBwb3N0Y3NzLnBsdWdpbigncG9zdGNzcy1kZXByZWNhdGVkJywgKCkgPT4ge1xuICAgICAqICAgcmV0dXJuIChyb290LCByZXN1bHQpID0+IHtcbiAgICAgKiAgICAgcm9vdC53YWxrRGVjbHMoJ2JhZCcsIGRlY2wgPT4ge1xuICAgICAqICAgICAgIGRlY2wud2FybihyZXN1bHQsICdEZXByZWNhdGVkIHByb3BlcnR5IGJhZCcpO1xuICAgICAqICAgICB9KTtcbiAgICAgKiAgIH07XG4gICAgICogfSk7XG4gICAgICovXG4gICAgd2FybihyZXN1bHQsIHRleHQsIG9wdHMpIHtcbiAgICAgICAgbGV0IGRhdGEgPSB7IG5vZGU6IHRoaXMgfTtcbiAgICAgICAgZm9yICggbGV0IGkgaW4gb3B0cyApIGRhdGFbaV0gPSBvcHRzW2ldO1xuICAgICAgICByZXR1cm4gcmVzdWx0Lndhcm4odGV4dCwgZGF0YSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgbm9kZSBmcm9tIGl0cyBwYXJlbnQgYW5kIGNsZWFucyB0aGUgcGFyZW50IHByb3BlcnRpZXNcbiAgICAgKiBmcm9tIHRoZSBub2RlIGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGlmICggZGVjbC5wcm9wLm1hdGNoKC9eLXdlYmtpdC0vKSApIHtcbiAgICAgKiAgIGRlY2wucmVtb3ZlKCk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gbm9kZSB0byBtYWtlIGNhbGxzIGNoYWluXG4gICAgICovXG4gICAgcmVtb3ZlKCkge1xuICAgICAgICBpZiAoIHRoaXMucGFyZW50ICkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQucmVtb3ZlQ2hpbGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBDU1Mgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5naWZpZXJ8c3ludGF4fSBbc3RyaW5naWZpZXJdIC0gYSBzeW50YXggdG8gdXNlXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBzdHJpbmcgZ2VuZXJhdGlvblxuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBDU1Mgc3RyaW5nIG9mIHRoaXMgbm9kZVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBwb3N0Y3NzLnJ1bGUoeyBzZWxlY3RvcjogJ2EnIH0pLnRvU3RyaW5nKCkgLy89PiBcImEge31cIlxuICAgICAqL1xuICAgIHRvU3RyaW5nKHN0cmluZ2lmaWVyID0gc3RyaW5naWZ5KSB7XG4gICAgICAgIGlmICggc3RyaW5naWZpZXIuc3RyaW5naWZ5ICkgc3RyaW5naWZpZXIgPSBzdHJpbmdpZmllci5zdHJpbmdpZnk7XG4gICAgICAgIGxldCByZXN1bHQgID0gJyc7XG4gICAgICAgIHN0cmluZ2lmaWVyKHRoaXMsIGkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0ICs9IGk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBjbG9uZSBvZiB0aGUgbm9kZS5cbiAgICAgKlxuICAgICAqIFRoZSByZXN1bHRpbmcgY2xvbmVkIG5vZGUgYW5kIGl0cyAoY2xvbmVkKSBjaGlsZHJlbiB3aWxsIGhhdmVcbiAgICAgKiBhIGNsZWFuIHBhcmVudCBhbmQgY29kZSBzdHlsZSBwcm9wZXJ0aWVzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvdmVycmlkZXNdIC0gbmV3IHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgaW4gdGhlIGNsb25lLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCBjbG9uZWQgPSBkZWNsLmNsb25lKHsgcHJvcDogJy1tb3otJyArIGRlY2wucHJvcCB9KTtcbiAgICAgKiBjbG9uZWQucmF3cy5iZWZvcmUgIC8vPT4gdW5kZWZpbmVkXG4gICAgICogY2xvbmVkLnBhcmVudCAgICAgICAvLz0+IHVuZGVmaW5lZFxuICAgICAqIGNsb25lZC50b1N0cmluZygpICAgLy89PiAtbW96LXRyYW5zZm9ybTogc2NhbGUoMClcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge05vZGV9IGNsb25lIG9mIHRoZSBub2RlXG4gICAgICovXG4gICAgY2xvbmUob3ZlcnJpZGVzID0geyB9KSB7XG4gICAgICAgIGxldCBjbG9uZWQgPSBjbG9uZU5vZGUodGhpcyk7XG4gICAgICAgIGZvciAoIGxldCBuYW1lIGluIG92ZXJyaWRlcyApIHtcbiAgICAgICAgICAgIGNsb25lZFtuYW1lXSA9IG92ZXJyaWRlc1tuYW1lXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xvbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3J0Y3V0IHRvIGNsb25lIHRoZSBub2RlIGFuZCBpbnNlcnQgdGhlIHJlc3VsdGluZyBjbG9uZWQgbm9kZVxuICAgICAqIGJlZm9yZSB0aGUgY3VycmVudCBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtvYmplY3R9IFtvdmVycmlkZXNdIC0gbmV3IHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgaW4gdGhlIGNsb25lLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBkZWNsLmNsb25lQmVmb3JlKHsgcHJvcDogJy1tb3otJyArIGRlY2wucHJvcCB9KTtcbiAgICAgKlxuICAgICAqIEByZXR1cm4ge05vZGV9IC0gbmV3IG5vZGVcbiAgICAgKi9cbiAgICBjbG9uZUJlZm9yZShvdmVycmlkZXMgPSB7IH0pIHtcbiAgICAgICAgbGV0IGNsb25lZCA9IHRoaXMuY2xvbmUob3ZlcnJpZGVzKTtcbiAgICAgICAgdGhpcy5wYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMsIGNsb25lZCk7XG4gICAgICAgIHJldHVybiBjbG9uZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvcnRjdXQgdG8gY2xvbmUgdGhlIG5vZGUgYW5kIGluc2VydCB0aGUgcmVzdWx0aW5nIGNsb25lZCBub2RlXG4gICAgICogYWZ0ZXIgdGhlIGN1cnJlbnQgbm9kZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBbb3ZlcnJpZGVzXSAtIG5ldyBwcm9wZXJ0aWVzIHRvIG92ZXJyaWRlIGluIHRoZSBjbG9uZS5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge05vZGV9IC0gbmV3IG5vZGVcbiAgICAgKi9cbiAgICBjbG9uZUFmdGVyKG92ZXJyaWRlcyA9IHsgfSkge1xuICAgICAgICBsZXQgY2xvbmVkID0gdGhpcy5jbG9uZShvdmVycmlkZXMpO1xuICAgICAgICB0aGlzLnBhcmVudC5pbnNlcnRBZnRlcih0aGlzLCBjbG9uZWQpO1xuICAgICAgICByZXR1cm4gY2xvbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgbm9kZShzKSBiZWZvcmUgdGhlIGN1cnJlbnQgbm9kZSBhbmQgcmVtb3ZlcyB0aGUgY3VycmVudCBub2RlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHsuLi5Ob2RlfSBub2RlcyAtIG5vZGUocykgdG8gcmVwbGFjZSBjdXJyZW50IG9uZVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBpZiAoIGF0cnVsZS5uYW1lID09ICdtaXhpbicgKSB7XG4gICAgICogICBhdHJ1bGUucmVwbGFjZVdpdGgobWl4aW5SdWxlc1thdHJ1bGUucGFyYW1zXSk7XG4gICAgICogfVxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gY3VycmVudCBub2RlIHRvIG1ldGhvZHMgY2hhaW5cbiAgICAgKi9cbiAgICByZXBsYWNlV2l0aCguLi5ub2Rlcykge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudC5pbnNlcnRCZWZvcmUodGhpcywgbm9kZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBub2RlIGZyb20gaXRzIGN1cnJlbnQgcGFyZW50IGFuZCBpbnNlcnRzIGl0XG4gICAgICogYXQgdGhlIGVuZCBvZiBgbmV3UGFyZW50YC5cbiAgICAgKlxuICAgICAqIFRoaXMgd2lsbCBjbGVhbiB0aGUgYGJlZm9yZWAgYW5kIGBhZnRlcmAgY29kZSB7QGxpbmsgTm9kZSNyYXdzfSBkYXRhXG4gICAgICogZnJvbSB0aGUgbm9kZSBhbmQgcmVwbGFjZSB0aGVtIHdpdGggdGhlIGluZGVudGF0aW9uIHN0eWxlIG9mIGBuZXdQYXJlbnRgLlxuICAgICAqIEl0IHdpbGwgYWxzbyBjbGVhbiB0aGUgYGJldHdlZW5gIHByb3BlcnR5XG4gICAgICogaWYgYG5ld1BhcmVudGAgaXMgaW4gYW5vdGhlciB7QGxpbmsgUm9vdH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0NvbnRhaW5lcn0gbmV3UGFyZW50IC0gY29udGFpbmVyIG5vZGUgd2hlcmUgdGhlIGN1cnJlbnQgbm9kZVxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIG1vdmVkXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGF0cnVsZS5tb3ZlVG8oYXRydWxlLnJvb3QoKSk7XG4gICAgICpcbiAgICAgKiBAcmV0dXJuIHtOb2RlfSBjdXJyZW50IG5vZGUgdG8gbWV0aG9kcyBjaGFpblxuICAgICAqL1xuICAgIG1vdmVUbyhuZXdQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5jbGVhblJhd3ModGhpcy5yb290KCkgPT09IG5ld1BhcmVudC5yb290KCkpO1xuICAgICAgICB0aGlzLnJlbW92ZSgpO1xuICAgICAgICBuZXdQYXJlbnQuYXBwZW5kKHRoaXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBub2RlIGZyb20gaXRzIGN1cnJlbnQgcGFyZW50IGFuZCBpbnNlcnRzIGl0IGludG9cbiAgICAgKiBhIG5ldyBwYXJlbnQgYmVmb3JlIGBvdGhlck5vZGVgLlxuICAgICAqXG4gICAgICogVGhpcyB3aWxsIGFsc28gY2xlYW4gdGhlIG5vZGXigJlzIGNvZGUgc3R5bGUgcHJvcGVydGllcyBqdXN0IGFzIGl0IHdvdWxkXG4gICAgICogaW4ge0BsaW5rIE5vZGUjbW92ZVRvfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tm9kZX0gb3RoZXJOb2RlIC0gbm9kZSB0aGF0IHdpbGwgYmUgYmVmb3JlIGN1cnJlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gY3VycmVudCBub2RlIHRvIG1ldGhvZHMgY2hhaW5cbiAgICAgKi9cbiAgICBtb3ZlQmVmb3JlKG90aGVyTm9kZSkge1xuICAgICAgICB0aGlzLmNsZWFuUmF3cyh0aGlzLnJvb3QoKSA9PT0gb3RoZXJOb2RlLnJvb3QoKSk7XG4gICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgICAgIG90aGVyTm9kZS5wYXJlbnQuaW5zZXJ0QmVmb3JlKG90aGVyTm9kZSwgdGhpcyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIG5vZGUgZnJvbSBpdHMgY3VycmVudCBwYXJlbnQgYW5kIGluc2VydHMgaXQgaW50b1xuICAgICAqIGEgbmV3IHBhcmVudCBhZnRlciBgb3RoZXJOb2RlYC5cbiAgICAgKlxuICAgICAqIFRoaXMgd2lsbCBhbHNvIGNsZWFuIHRoZSBub2Rl4oCZcyBjb2RlIHN0eWxlIHByb3BlcnRpZXMganVzdCBhcyBpdCB3b3VsZFxuICAgICAqIGluIHtAbGluayBOb2RlI21vdmVUb30uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge05vZGV9IG90aGVyTm9kZSAtIG5vZGUgdGhhdCB3aWxsIGJlIGFmdGVyIGN1cnJlbnQgbm9kZVxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZX0gY3VycmVudCBub2RlIHRvIG1ldGhvZHMgY2hhaW5cbiAgICAgKi9cbiAgICBtb3ZlQWZ0ZXIob3RoZXJOb2RlKSB7XG4gICAgICAgIHRoaXMuY2xlYW5SYXdzKHRoaXMucm9vdCgpID09PSBvdGhlck5vZGUucm9vdCgpKTtcbiAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgICAgb3RoZXJOb2RlLnBhcmVudC5pbnNlcnRBZnRlcihvdGhlck5vZGUsIHRoaXMpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGNoaWxkIG9mIHRoZSBub2Rl4oCZcyBwYXJlbnQuXG4gICAgICogUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgY3VycmVudCBub2RlIGlzIHRoZSBsYXN0IGNoaWxkLlxuICAgICAqXG4gICAgICogQHJldHVybiB7Tm9kZXx1bmRlZmluZWR9IG5leHQgbm9kZVxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBpZiAoIGNvbW1lbnQudGV4dCA9PT0gJ2RlbGV0ZSBuZXh0JyApIHtcbiAgICAgKiAgIGNvbnN0IG5leHQgPSBjb21tZW50Lm5leHQoKTtcbiAgICAgKiAgIGlmICggbmV4dCApIHtcbiAgICAgKiAgICAgbmV4dC5yZW1vdmUoKTtcbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgbmV4dCgpIHtcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5wYXJlbnQuaW5kZXgodGhpcyk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5ub2Rlc1tpbmRleCArIDFdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHByZXZpb3VzIGNoaWxkIG9mIHRoZSBub2Rl4oCZcyBwYXJlbnQuXG4gICAgICogUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgY3VycmVudCBub2RlIGlzIHRoZSBmaXJzdCBjaGlsZC5cbiAgICAgKlxuICAgICAqIEByZXR1cm4ge05vZGV8dW5kZWZpbmVkfSBwcmV2aW91cyBub2RlXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGFubm90YXRpb24gPSBkZWNsLnByZXYoKTtcbiAgICAgKiBpZiAoIGFubm90YXRpb24udHlwZSA9PSAnY29tbWVudCcgKSB7XG4gICAgICogIHJlYWRBbm5vdGF0aW9uKGFubm90YXRpb24udGV4dCk7XG4gICAgICogfVxuICAgICAqL1xuICAgIHByZXYoKSB7XG4gICAgICAgIGxldCBpbmRleCA9IHRoaXMucGFyZW50LmluZGV4KHRoaXMpO1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQubm9kZXNbaW5kZXggLSAxXTtcbiAgICB9XG5cbiAgICB0b0pTT04oKSB7XG4gICAgICAgIGxldCBmaXhlZCA9IHsgfTtcblxuICAgICAgICBmb3IgKCBsZXQgbmFtZSBpbiB0aGlzICkge1xuICAgICAgICAgICAgaWYgKCAhdGhpcy5oYXNPd25Qcm9wZXJ0eShuYW1lKSApIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKCBuYW1lID09PSAncGFyZW50JyApIGNvbnRpbnVlO1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpc1tuYW1lXTtcblxuICAgICAgICAgICAgaWYgKCB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICkge1xuICAgICAgICAgICAgICAgIGZpeGVkW25hbWVdID0gdmFsdWUubWFwKCBpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0eXBlb2YgaSA9PT0gJ29iamVjdCcgJiYgaS50b0pTT04gKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaS50b0pTT04oKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLnRvSlNPTiApIHtcbiAgICAgICAgICAgICAgICBmaXhlZFtuYW1lXSA9IHZhbHVlLnRvSlNPTigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaXhlZFtuYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpeGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSB7QGxpbmsgTm9kZSNyYXdzfSB2YWx1ZS4gSWYgdGhlIG5vZGUgaXMgbWlzc2luZ1xuICAgICAqIHRoZSBjb2RlIHN0eWxlIHByb3BlcnR5IChiZWNhdXNlIHRoZSBub2RlIHdhcyBtYW51YWxseSBidWlsdCBvciBjbG9uZWQpLFxuICAgICAqIFBvc3RDU1Mgd2lsbCB0cnkgdG8gYXV0b2RldGVjdCB0aGUgY29kZSBzdHlsZSBwcm9wZXJ0eSBieSBsb29raW5nXG4gICAgICogYXQgb3RoZXIgbm9kZXMgaW4gdGhlIHRyZWUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcHJvcCAgICAgICAgICAtIG5hbWUgb2YgY29kZSBzdHlsZSBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZGVmYXVsdFR5cGVdIC0gbmFtZSBvZiBkZWZhdWx0IHZhbHVlLCBpdCBjYW4gYmUgbWlzc2VkXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0aGUgdmFsdWUgaXMgdGhlIHNhbWUgYXMgcHJvcFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBjb25zdCByb290ID0gcG9zdGNzcy5wYXJzZSgnYSB7IGJhY2tncm91bmQ6IHdoaXRlIH0nKTtcbiAgICAgKiByb290Lm5vZGVzWzBdLmFwcGVuZCh7IHByb3A6ICdjb2xvcicsIHZhbHVlOiAnYmxhY2snIH0pO1xuICAgICAqIHJvb3Qubm9kZXNbMF0ubm9kZXNbMV0ucmF3cy5iZWZvcmUgICAvLz0+IHVuZGVmaW5lZFxuICAgICAqIHJvb3Qubm9kZXNbMF0ubm9kZXNbMV0ucmF3KCdiZWZvcmUnKSAvLz0+ICcgJ1xuICAgICAqXG4gICAgICogQHJldHVybiB7c3RyaW5nfSBjb2RlIHN0eWxlIHZhbHVlXG4gICAgICovXG4gICAgcmF3KHByb3AsIGRlZmF1bHRUeXBlKSB7XG4gICAgICAgIGxldCBzdHIgPSBuZXcgU3RyaW5naWZpZXIoKTtcbiAgICAgICAgcmV0dXJuIHN0ci5yYXcodGhpcywgcHJvcCwgZGVmYXVsdFR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIHRoZSBSb290IGluc3RhbmNlIG9mIHRoZSBub2Rl4oCZcyB0cmVlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiByb290Lm5vZGVzWzBdLm5vZGVzWzBdLnJvb3QoKSA9PT0gcm9vdFxuICAgICAqXG4gICAgICogQHJldHVybiB7Um9vdH0gcm9vdCBwYXJlbnRcbiAgICAgKi9cbiAgICByb290KCkge1xuICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcztcbiAgICAgICAgd2hpbGUgKCByZXN1bHQucGFyZW50ICkgcmVzdWx0ID0gcmVzdWx0LnBhcmVudDtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBjbGVhblJhd3Moa2VlcEJldHdlZW4pIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucmF3cy5iZWZvcmU7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJhd3MuYWZ0ZXI7XG4gICAgICAgIGlmICggIWtlZXBCZXR3ZWVuICkgZGVsZXRlIHRoaXMucmF3cy5iZXR3ZWVuO1xuICAgIH1cblxuICAgIHBvc2l0aW9uSW5zaWRlKGluZGV4KSB7XG4gICAgICAgIGxldCBzdHJpbmcgPSB0aGlzLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBjb2x1bW4gPSB0aGlzLnNvdXJjZS5zdGFydC5jb2x1bW47XG4gICAgICAgIGxldCBsaW5lICAgPSB0aGlzLnNvdXJjZS5zdGFydC5saW5lO1xuXG4gICAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IGluZGV4OyBpKysgKSB7XG4gICAgICAgICAgICBpZiAoIHN0cmluZ1tpXSA9PT0gJ1xcbicgKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uID0gMTtcbiAgICAgICAgICAgICAgICBsaW5lICArPSAxO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb2x1bW4gKz0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9O1xuICAgIH1cblxuICAgIHBvc2l0aW9uQnkob3B0cykge1xuICAgICAgICBsZXQgcG9zID0gdGhpcy5zb3VyY2Uuc3RhcnQ7XG4gICAgICAgIGlmICggb3B0cy5pbmRleCApIHtcbiAgICAgICAgICAgIHBvcyA9IHRoaXMucG9zaXRpb25JbnNpZGUob3B0cy5pbmRleCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIG9wdHMud29yZCApIHtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudG9TdHJpbmcoKS5pbmRleE9mKG9wdHMud29yZCk7XG4gICAgICAgICAgICBpZiAoIGluZGV4ICE9PSAtMSApIHBvcyA9IHRoaXMucG9zaXRpb25JbnNpZGUoaW5kZXgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb3M7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2VsZigpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjcmVtb3ZlU2VsZiBpcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyZW1vdmUuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHJlcGxhY2Uobm9kZXMpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjcmVwbGFjZSBpcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyZXBsYWNlV2l0aCcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBsYWNlV2l0aChub2Rlcyk7XG4gICAgfVxuXG4gICAgc3R5bGUob3duLCBkZXRlY3QpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjc3R5bGUoKSBpcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyYXcoKScpO1xuICAgICAgICByZXR1cm4gdGhpcy5yYXcob3duLCBkZXRlY3QpO1xuICAgIH1cblxuICAgIGNsZWFuU3R5bGVzKGtlZXBCZXR3ZWVuKSB7XG4gICAgICAgIHdhcm5PbmNlKCdOb2RlI2NsZWFuU3R5bGVzKCkgaXMgZGVwcmVjYXRlZC4gVXNlIE5vZGUjY2xlYW5SYXdzKCknKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xlYW5SYXdzKGtlZXBCZXR3ZWVuKTtcbiAgICB9XG5cbiAgICBnZXQgYmVmb3JlKCkge1xuICAgICAgICB3YXJuT25jZSgnTm9kZSNiZWZvcmUgaXMgZGVwcmVjYXRlZC4gVXNlIE5vZGUjcmF3cy5iZWZvcmUnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmF3cy5iZWZvcmU7XG4gICAgfVxuXG4gICAgc2V0IGJlZm9yZSh2YWwpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjYmVmb3JlIGlzIGRlcHJlY2F0ZWQuIFVzZSBOb2RlI3Jhd3MuYmVmb3JlJyk7XG4gICAgICAgIHRoaXMucmF3cy5iZWZvcmUgPSB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IGJldHdlZW4oKSB7XG4gICAgICAgIHdhcm5PbmNlKCdOb2RlI2JldHdlZW4gaXMgZGVwcmVjYXRlZC4gVXNlIE5vZGUjcmF3cy5iZXR3ZWVuJyk7XG4gICAgICAgIHJldHVybiB0aGlzLnJhd3MuYmV0d2VlbjtcbiAgICB9XG5cbiAgICBzZXQgYmV0d2Vlbih2YWwpIHtcbiAgICAgICAgd2Fybk9uY2UoJ05vZGUjYmV0d2VlbiBpcyBkZXByZWNhdGVkLiBVc2UgTm9kZSNyYXdzLmJldHdlZW4nKTtcbiAgICAgICAgdGhpcy5yYXdzLmJldHdlZW4gPSB2YWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIE5vZGUjXG4gICAgICogQG1lbWJlciB7c3RyaW5nfSB0eXBlIC0gU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgbm9kZeKAmXMgdHlwZS5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZSB2YWx1ZXMgYXJlIGByb290YCwgYGF0cnVsZWAsIGBydWxlYCxcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBgZGVjbGAsIG9yIGBjb21tZW50YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogcG9zdGNzcy5kZWNsKHsgcHJvcDogJ2NvbG9yJywgdmFsdWU6ICdibGFjaycgfSkudHlwZSAvLz0+ICdkZWNsJ1xuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIE5vZGUjXG4gICAgICogQG1lbWJlciB7Q29udGFpbmVyfSBwYXJlbnQgLSB0aGUgbm9kZeKAmXMgcGFyZW50IG5vZGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIHJvb3Qubm9kZXNbMF0ucGFyZW50ID09IHJvb3Q7XG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBAbWVtYmVyb2YgTm9kZSNcbiAgICAgKiBAbWVtYmVyIHtzb3VyY2V9IHNvdXJjZSAtIHRoZSBpbnB1dCBzb3VyY2Ugb2YgdGhlIG5vZGVcbiAgICAgKlxuICAgICAqIFRoZSBwcm9wZXJ0eSBpcyB1c2VkIGluIHNvdXJjZSBtYXAgZ2VuZXJhdGlvbi5cbiAgICAgKlxuICAgICAqIElmIHlvdSBjcmVhdGUgYSBub2RlIG1hbnVhbGx5IChlLmcuLCB3aXRoIGBwb3N0Y3NzLmRlY2woKWApLFxuICAgICAqIHRoYXQgbm9kZSB3aWxsIG5vdCBoYXZlIGEgYHNvdXJjZWAgcHJvcGVydHkgYW5kIHdpbGwgYmUgYWJzZW50XG4gICAgICogZnJvbSB0aGUgc291cmNlIG1hcC4gRm9yIHRoaXMgcmVhc29uLCB0aGUgcGx1Z2luIGRldmVsb3BlciBzaG91bGRcbiAgICAgKiBjb25zaWRlciBjbG9uaW5nIG5vZGVzIHRvIGNyZWF0ZSBuZXcgb25lcyAoaW4gd2hpY2ggY2FzZSB0aGUgbmV3IG5vZGXigJlzXG4gICAgICogc291cmNlIHdpbGwgcmVmZXJlbmNlIHRoZSBvcmlnaW5hbCwgY2xvbmVkIG5vZGUpIG9yIHNldHRpbmdcbiAgICAgKiB0aGUgYHNvdXJjZWAgcHJvcGVydHkgbWFudWFsbHkuXG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqIC8vIEJhZFxuICAgICAqIGNvbnN0IHByZWZpeGVkID0gcG9zdGNzcy5kZWNsKHtcbiAgICAgKiAgIHByb3A6ICctbW96LScgKyBkZWNsLnByb3AsXG4gICAgICogICB2YWx1ZTogZGVjbC52YWx1ZVxuICAgICAqIH0pO1xuICAgICAqXG4gICAgICogLy8gR29vZFxuICAgICAqIGNvbnN0IHByZWZpeGVkID0gZGVjbC5jbG9uZSh7IHByb3A6ICctbW96LScgKyBkZWNsLnByb3AgfSk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBgYGBqc1xuICAgICAqIGlmICggYXRydWxlLm5hbWUgPT0gJ2FkZC1saW5rJyApIHtcbiAgICAgKiAgIGNvbnN0IHJ1bGUgPSBwb3N0Y3NzLnJ1bGUoeyBzZWxlY3RvcjogJ2EnLCBzb3VyY2U6IGF0cnVsZS5zb3VyY2UgfSk7XG4gICAgICogICBhdHJ1bGUucGFyZW50Lmluc2VydEJlZm9yZShhdHJ1bGUsIHJ1bGUpO1xuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogZGVjbC5zb3VyY2UuaW5wdXQuZnJvbSAvLz0+ICcvaG9tZS9haS9hLnNhc3MnXG4gICAgICogZGVjbC5zb3VyY2Uuc3RhcnQgICAgICAvLz0+IHsgbGluZTogMTAsIGNvbHVtbjogMiB9XG4gICAgICogZGVjbC5zb3VyY2UuZW5kICAgICAgICAvLz0+IHsgbGluZTogMTAsIGNvbHVtbjogMTIgfVxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICogQG1lbWJlcm9mIE5vZGUjXG4gICAgICogQG1lbWJlciB7b2JqZWN0fSByYXdzIC0gSW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYnl0ZS10by1ieXRlIGVxdWFsXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSBzdHJpbmcgYXMgaXQgd2FzIGluIHRoZSBvcmlnaW4gaW5wdXQuXG4gICAgICpcbiAgICAgKiBFdmVyeSBwYXJzZXIgc2F2ZXMgaXRzIG93biBwcm9wZXJ0aWVzLFxuICAgICAqIGJ1dCB0aGUgZGVmYXVsdCBDU1MgcGFyc2VyIHVzZXM6XG4gICAgICpcbiAgICAgKiAqIGBiZWZvcmVgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZWZvcmUgdGhlIG5vZGUuIEl0IGFsc28gc3RvcmVzIGAqYFxuICAgICAqICAgYW5kIGBfYCBzeW1ib2xzIGJlZm9yZSB0aGUgZGVjbGFyYXRpb24gKElFIGhhY2spLlxuICAgICAqICogYGFmdGVyYDogdGhlIHNwYWNlIHN5bWJvbHMgYWZ0ZXIgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIG5vZGVcbiAgICAgKiAgIHRvIHRoZSBlbmQgb2YgdGhlIG5vZGUuXG4gICAgICogKiBgYmV0d2VlbmA6IHRoZSBzeW1ib2xzIGJldHdlZW4gdGhlIHByb3BlcnR5IGFuZCB2YWx1ZVxuICAgICAqICAgZm9yIGRlY2xhcmF0aW9ucywgc2VsZWN0b3IgYW5kIGB7YCBmb3IgcnVsZXMsIG9yIGxhc3QgcGFyYW1ldGVyXG4gICAgICogICBhbmQgYHtgIGZvciBhdC1ydWxlcy5cbiAgICAgKiAqIGBzZW1pY29sb25gOiBjb250YWlucyB0cnVlIGlmIHRoZSBsYXN0IGNoaWxkIGhhc1xuICAgICAqICAgYW4gKG9wdGlvbmFsKSBzZW1pY29sb24uXG4gICAgICogKiBgYWZ0ZXJOYW1lYDogdGhlIHNwYWNlIGJldHdlZW4gdGhlIGF0LXJ1bGUgbmFtZSBhbmQgaXRzIHBhcmFtZXRlcnMuXG4gICAgICogKiBgbGVmdGA6IHRoZSBzcGFjZSBzeW1ib2xzIGJldHdlZW4gYC8qYCBhbmQgdGhlIGNvbW1lbnTigJlzIHRleHQuXG4gICAgICogKiBgcmlnaHRgOiB0aGUgc3BhY2Ugc3ltYm9scyBiZXR3ZWVuIHRoZSBjb21tZW504oCZcyB0ZXh0XG4gICAgICogICBhbmQgPGNvZGU+KiYjNDc7PC9jb2RlPi5cbiAgICAgKiAqIGBpbXBvcnRhbnRgOiB0aGUgY29udGVudCBvZiB0aGUgaW1wb3J0YW50IHN0YXRlbWVudCxcbiAgICAgKiAgIGlmIGl0IGlzIG5vdCBqdXN0IGAhaW1wb3J0YW50YC5cbiAgICAgKlxuICAgICAqIFBvc3RDU1MgY2xlYW5zIHNlbGVjdG9ycywgZGVjbGFyYXRpb24gdmFsdWVzIGFuZCBhdC1ydWxlIHBhcmFtZXRlcnNcbiAgICAgKiBmcm9tIGNvbW1lbnRzIGFuZCBleHRyYSBzcGFjZXMsIGJ1dCBpdCBzdG9yZXMgb3JpZ2luIGNvbnRlbnQgaW4gcmF3c1xuICAgICAqIHByb3BlcnRpZXMuIEFzIHN1Y2gsIGlmIHlvdSBkb27igJl0IGNoYW5nZSBhIGRlY2xhcmF0aW9u4oCZcyB2YWx1ZSxcbiAgICAgKiBQb3N0Q1NTIHdpbGwgdXNlIHRoZSByYXcgdmFsdWUgd2l0aCBjb21tZW50cy5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogY29uc3Qgcm9vdCA9IHBvc3Rjc3MucGFyc2UoJ2Ege1xcbiAgY29sb3I6YmxhY2tcXG59JylcbiAgICAgKiByb290LmZpcnN0LmZpcnN0LnJhd3MgLy89PiB7IGJlZm9yZTogJ1xcbiAgJywgYmV0d2VlbjogJzonIH1cbiAgICAgKi9cblxufVxuXG5leHBvcnQgZGVmYXVsdCBOb2RlO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IHBvc2l0aW9uXG4gKiBAcHJvcGVydHkge251bWJlcn0gbGluZSAgIC0gc291cmNlIGxpbmUgaW4gZmlsZVxuICogQHByb3BlcnR5IHtudW1iZXJ9IGNvbHVtbiAtIHNvdXJjZSBjb2x1bW4gaW4gZmlsZVxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gc291cmNlXG4gKiBAcHJvcGVydHkge0lucHV0fSBpbnB1dCAgICAtIHtAbGluayBJbnB1dH0gd2l0aCBpbnB1dCBmaWxlXG4gKiBAcHJvcGVydHkge3Bvc2l0aW9ufSBzdGFydCAtIFRoZSBzdGFydGluZyBwb3NpdGlvbiBvZiB0aGUgbm9kZeKAmXMgc291cmNlXG4gKiBAcHJvcGVydHkge3Bvc2l0aW9ufSBlbmQgICAtIFRoZSBlbmRpbmcgcG9zaXRpb24gb2YgdGhlIG5vZGXigJlzIHNvdXJjZVxuICovXG4iXX0=\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var cssFontSizeKeywords = require('css-font-size-keywords');\r\n\r\nmodule.exports = {\r\n\r\n\tisSize: function(value) {\r\n\t\treturn /^[\\d\\.]/.test(value)\r\n\t\t\t|| value.indexOf('/') !== -1\r\n\t\t\t|| cssFontSizeKeywords.indexOf(value) !== -1\r\n\t\t;\r\n\t}\r\n\r\n};\r\n","/*!\n * Vue.js v2.7.7\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\r\nvar isArray = Array.isArray;\r\n// These helpers produce better VM code in JS engines due to their\r\n// explicitness and function inlining.\r\nfunction isUndef(v) {\r\n return v === undefined || v === null;\r\n}\r\nfunction isDef(v) {\r\n return v !== undefined && v !== null;\r\n}\r\nfunction isTrue(v) {\r\n return v === true;\r\n}\r\nfunction isFalse(v) {\r\n return v === false;\r\n}\r\n/**\r\n * Check if value is primitive.\r\n */\r\nfunction isPrimitive(value) {\r\n return (typeof value === 'string' ||\r\n typeof value === 'number' ||\r\n // $flow-disable-line\r\n typeof value === 'symbol' ||\r\n typeof value === 'boolean');\r\n}\r\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\r\n/**\r\n * Quick object check - this is primarily used to tell\r\n * objects from primitive values when we know the value\r\n * is a JSON-compliant type.\r\n */\r\nfunction isObject(obj) {\r\n return obj !== null && typeof obj === 'object';\r\n}\r\n/**\r\n * Get the raw type string of a value, e.g., [object Object].\r\n */\r\nvar _toString = Object.prototype.toString;\r\nfunction toRawType(value) {\r\n return _toString.call(value).slice(8, -1);\r\n}\r\n/**\r\n * Strict object type check. Only returns true\r\n * for plain JavaScript objects.\r\n */\r\nfunction isPlainObject(obj) {\r\n return _toString.call(obj) === '[object Object]';\r\n}\r\nfunction isRegExp(v) {\r\n return _toString.call(v) === '[object RegExp]';\r\n}\r\n/**\r\n * Check if val is a valid array index.\r\n */\r\nfunction isValidArrayIndex(val) {\r\n var n = parseFloat(String(val));\r\n return n >= 0 && Math.floor(n) === n && isFinite(val);\r\n}\r\nfunction isPromise(val) {\r\n return (isDef(val) &&\r\n typeof val.then === 'function' &&\r\n typeof val.catch === 'function');\r\n}\r\n/**\r\n * Convert a value to a string that is actually rendered.\r\n */\r\nfunction toString(val) {\r\n return val == null\r\n ? ''\r\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n}\r\n/**\r\n * Convert an input value to a number for persistence.\r\n * If the conversion fails, return original string.\r\n */\r\nfunction toNumber(val) {\r\n var n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n}\r\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n var map = Object.create(null);\r\n var list = str.split(',');\r\n for (var i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\r\n}\r\n/**\r\n * Check if a tag is a built-in tag.\r\n */\r\nvar isBuiltInTag = makeMap('slot,component', true);\r\n/**\r\n * Check if an attribute is a reserved attribute.\r\n */\r\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n/**\r\n * Remove an item from an array.\r\n */\r\nfunction remove$2(arr, item) {\r\n if (arr.length) {\r\n var index = arr.indexOf(item);\r\n if (index > -1) {\r\n return arr.splice(index, 1);\r\n }\r\n }\r\n}\r\n/**\r\n * Check whether an object has the property.\r\n */\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached(fn) {\r\n var cache = Object.create(null);\r\n return function cachedFn(str) {\r\n var hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nvar camelizeRE = /-(\\w)/g;\r\nvar camelize = cached(function (str) {\r\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\r\n});\r\n/**\r\n * Capitalize a string.\r\n */\r\nvar capitalize = cached(function (str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n});\r\n/**\r\n * Hyphenate a camelCase string.\r\n */\r\nvar hyphenateRE = /\\B([A-Z])/g;\r\nvar hyphenate = cached(function (str) {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n});\r\n/**\r\n * Simple bind polyfill for environments that do not support it,\r\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n * since native bind is now performant enough in most browsers.\r\n * But removing it would mean breaking code that was able to run in\r\n * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n */\r\n/* istanbul ignore next */\r\nfunction polyfillBind(fn, ctx) {\r\n function boundFn(a) {\r\n var l = arguments.length;\r\n return l\r\n ? l > 1\r\n ? fn.apply(ctx, arguments)\r\n : fn.call(ctx, a)\r\n : fn.call(ctx);\r\n }\r\n boundFn._length = fn.length;\r\n return boundFn;\r\n}\r\nfunction nativeBind(fn, ctx) {\r\n return fn.bind(ctx);\r\n}\r\n// @ts-expect-error bind cannot be `undefined`\r\nvar bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\r\n/**\r\n * Convert an Array-like object to a real Array.\r\n */\r\nfunction toArray(list, start) {\r\n start = start || 0;\r\n var i = list.length - start;\r\n var ret = new Array(i);\r\n while (i--) {\r\n ret[i] = list[i + start];\r\n }\r\n return ret;\r\n}\r\n/**\r\n * Mix properties into target object.\r\n */\r\nfunction extend(to, _from) {\r\n for (var key in _from) {\r\n to[key] = _from[key];\r\n }\r\n return to;\r\n}\r\n/**\r\n * Merge an Array of Objects into a single Object.\r\n */\r\nfunction toObject(arr) {\r\n var res = {};\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i]) {\r\n extend(res, arr[i]);\r\n }\r\n }\r\n return res;\r\n}\r\n/* eslint-disable no-unused-vars */\r\n/**\r\n * Perform no operation.\r\n * Stubbing args to make Flow happy without leaving useless transpiled code\r\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n */\r\nfunction noop(a, b, c) { }\r\n/**\r\n * Always return false.\r\n */\r\nvar no = function (a, b, c) { return false; };\r\n/* eslint-enable no-unused-vars */\r\n/**\r\n * Return the same value.\r\n */\r\nvar identity = function (_) { return _; };\r\n/**\r\n * Generate a string containing static keys from compiler modules.\r\n */\r\nfunction genStaticKeys$1(modules) {\r\n return modules\r\n .reduce(function (keys, m) {\r\n return keys.concat(m.staticKeys || []);\r\n }, [])\r\n .join(',');\r\n}\r\n/**\r\n * Check if two values are loosely equal - that is,\r\n * if they are plain objects, do they have the same shape?\r\n */\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n var isObjectA = isObject(a);\r\n var isObjectB = isObject(b);\r\n if (isObjectA && isObjectB) {\r\n try {\r\n var isArrayA = Array.isArray(a);\r\n var isArrayB = Array.isArray(b);\r\n if (isArrayA && isArrayB) {\r\n return (a.length === b.length &&\r\n a.every(function (e, i) {\r\n return looseEqual(e, b[i]);\r\n }));\r\n }\r\n else if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n else if (!isArrayA && !isArrayB) {\r\n var keysA = Object.keys(a);\r\n var keysB = Object.keys(b);\r\n return (keysA.length === keysB.length &&\r\n keysA.every(function (key) {\r\n return looseEqual(a[key], b[key]);\r\n }));\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n else if (!isObjectA && !isObjectB) {\r\n return String(a) === String(b);\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Return the first index at which a loosely equal value can be\r\n * found in the array (if value is a plain object, the array must\r\n * contain an object of the same shape), or -1 if it is not present.\r\n */\r\nfunction looseIndexOf(arr, val) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (looseEqual(arr[i], val))\r\n return i;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Ensure a function is called only once.\r\n */\r\nfunction once(fn) {\r\n var called = false;\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n fn.apply(this, arguments);\r\n }\r\n };\r\n}\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\r\nfunction hasChanged(x, y) {\r\n if (x === y) {\r\n return x === 0 && 1 / x !== 1 / y;\r\n }\r\n else {\r\n return x === x || y === y;\r\n }\r\n}\n\nvar SSR_ATTR = 'data-server-rendered';\r\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\r\nvar LIFECYCLE_HOOKS = [\r\n 'beforeCreate',\r\n 'created',\r\n 'beforeMount',\r\n 'mounted',\r\n 'beforeUpdate',\r\n 'updated',\r\n 'beforeDestroy',\r\n 'destroyed',\r\n 'activated',\r\n 'deactivated',\r\n 'errorCaptured',\r\n 'serverPrefetch',\r\n 'renderTracked',\r\n 'renderTriggered'\r\n];\n\nvar config = {\r\n /**\r\n * Option merge strategies (used in core/util/options)\r\n */\r\n // $flow-disable-line\r\n optionMergeStrategies: Object.create(null),\r\n /**\r\n * Whether to suppress warnings.\r\n */\r\n silent: false,\r\n /**\r\n * Show production mode tip message on boot?\r\n */\r\n productionTip: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to enable devtools\r\n */\r\n devtools: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to record perf\r\n */\r\n performance: false,\r\n /**\r\n * Error handler for watcher errors\r\n */\r\n errorHandler: null,\r\n /**\r\n * Warn handler for watcher warns\r\n */\r\n warnHandler: null,\r\n /**\r\n * Ignore certain custom elements\r\n */\r\n ignoredElements: [],\r\n /**\r\n * Custom user key aliases for v-on\r\n */\r\n // $flow-disable-line\r\n keyCodes: Object.create(null),\r\n /**\r\n * Check if a tag is reserved so that it cannot be registered as a\r\n * component. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedTag: no,\r\n /**\r\n * Check if an attribute is reserved so that it cannot be used as a component\r\n * prop. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedAttr: no,\r\n /**\r\n * Check if a tag is an unknown element.\r\n * Platform-dependent.\r\n */\r\n isUnknownElement: no,\r\n /**\r\n * Get the namespace of an element\r\n */\r\n getTagNamespace: noop,\r\n /**\r\n * Parse the real tag name for the specific platform.\r\n */\r\n parsePlatformTagName: identity,\r\n /**\r\n * Check if an attribute must be bound using property, e.g. value\r\n * Platform-dependent.\r\n */\r\n mustUseProp: no,\r\n /**\r\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n * This will significantly reduce performance if set to false.\r\n */\r\n async: true,\r\n /**\r\n * Exposed for legacy reasons\r\n */\r\n _lifecycleHooks: LIFECYCLE_HOOKS\r\n};\n\n/**\r\n * unicode letters used for parsing html tags, component names and property paths.\r\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n */\r\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n/**\r\n * Check if a string starts with $ or _\r\n */\r\nfunction isReserved(str) {\r\n var c = (str + '').charCodeAt(0);\r\n return c === 0x24 || c === 0x5f;\r\n}\r\n/**\r\n * Define a property.\r\n */\r\nfunction def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n });\r\n}\r\n/**\r\n * Parse simple path.\r\n */\r\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\r\nfunction parsePath(path) {\r\n if (bailRE.test(path)) {\r\n return;\r\n }\r\n var segments = path.split('.');\r\n return function (obj) {\r\n for (var i = 0; i < segments.length; i++) {\r\n if (!obj)\r\n return;\r\n obj = obj[segments[i]];\r\n }\r\n return obj;\r\n };\r\n}\n\n// can we use __proto__?\r\nvar hasProto = '__proto__' in {};\r\n// Browser environment sniffing\r\nvar inBrowser = typeof window !== 'undefined';\r\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\nvar isIE = UA && /msie|trident/.test(UA);\r\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\nvar isEdge = UA && UA.indexOf('edge/') > 0;\r\nUA && UA.indexOf('android') > 0;\r\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\r\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\nUA && /phantomjs/.test(UA);\r\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n// Firefox has a \"watch\" function on Object.prototype...\r\n// @ts-expect-error firebox support\r\nvar nativeWatch = {}.watch;\r\nvar supportsPassive = false;\r\nif (inBrowser) {\r\n try {\r\n var opts = {};\r\n Object.defineProperty(opts, 'passive', {\r\n get: function () {\r\n /* istanbul ignore next */\r\n supportsPassive = true;\r\n }\r\n }); // https://github.com/facebook/flow/issues/285\r\n window.addEventListener('test-passive', null, opts);\r\n }\r\n catch (e) { }\r\n}\r\n// this needs to be lazy-evaled because vue may be required before\r\n// vue-server-renderer can set VUE_ENV\r\nvar _isServer;\r\nvar isServerRendering = function () {\r\n if (_isServer === undefined) {\r\n /* istanbul ignore if */\r\n if (!inBrowser && typeof global !== 'undefined') {\r\n // detect presence of vue-server-renderer and avoid\r\n // Webpack shimming the process\r\n _isServer =\r\n global['process'] && global['process'].env.VUE_ENV === 'server';\r\n }\r\n else {\r\n _isServer = false;\r\n }\r\n }\r\n return _isServer;\r\n};\r\n// detect devtools\r\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n/* istanbul ignore next */\r\nfunction isNative(Ctor) {\r\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\r\n}\r\nvar hasSymbol = typeof Symbol !== 'undefined' &&\r\n isNative(Symbol) &&\r\n typeof Reflect !== 'undefined' &&\r\n isNative(Reflect.ownKeys);\r\nvar _Set; // $flow-disable-line\r\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\r\n // use native Set when available.\r\n _Set = Set;\r\n}\r\nelse {\r\n // a non-standard Set polyfill that only works with primitive keys.\r\n _Set = /** @class */ (function () {\r\n function Set() {\r\n this.set = Object.create(null);\r\n }\r\n Set.prototype.has = function (key) {\r\n return this.set[key] === true;\r\n };\r\n Set.prototype.add = function (key) {\r\n this.set[key] = true;\r\n };\r\n Set.prototype.clear = function () {\r\n this.set = Object.create(null);\r\n };\r\n return Set;\r\n }());\r\n}\n\nvar currentInstance = null;\r\n/**\r\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\r\n * relies on it). Do not use this internally, just use `currentInstance`.\r\n *\r\n * @internal this function needs manual type declaration because it relies\r\n * on previously manually authored types from Vue 2\r\n */\r\nfunction getCurrentInstance() {\r\n return currentInstance && { proxy: currentInstance };\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction setCurrentInstance(vm) {\r\n if (vm === void 0) { vm = null; }\r\n if (!vm)\r\n currentInstance && currentInstance._scope.off();\r\n currentInstance = vm;\r\n vm && vm._scope.on();\r\n}\n\n/**\r\n * @internal\r\n */\r\nvar VNode = /** @class */ (function () {\r\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\r\n this.tag = tag;\r\n this.data = data;\r\n this.children = children;\r\n this.text = text;\r\n this.elm = elm;\r\n this.ns = undefined;\r\n this.context = context;\r\n this.fnContext = undefined;\r\n this.fnOptions = undefined;\r\n this.fnScopeId = undefined;\r\n this.key = data && data.key;\r\n this.componentOptions = componentOptions;\r\n this.componentInstance = undefined;\r\n this.parent = undefined;\r\n this.raw = false;\r\n this.isStatic = false;\r\n this.isRootInsert = true;\r\n this.isComment = false;\r\n this.isCloned = false;\r\n this.isOnce = false;\r\n this.asyncFactory = asyncFactory;\r\n this.asyncMeta = undefined;\r\n this.isAsyncPlaceholder = false;\r\n }\r\n Object.defineProperty(VNode.prototype, \"child\", {\r\n // DEPRECATED: alias for componentInstance for backwards compat.\r\n /* istanbul ignore next */\r\n get: function () {\r\n return this.componentInstance;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return VNode;\r\n}());\r\nvar createEmptyVNode = function (text) {\r\n if (text === void 0) { text = ''; }\r\n var node = new VNode();\r\n node.text = text;\r\n node.isComment = true;\r\n return node;\r\n};\r\nfunction createTextVNode(val) {\r\n return new VNode(undefined, undefined, undefined, String(val));\r\n}\r\n// optimized shallow clone\r\n// used for static nodes and slot nodes because they may be reused across\r\n// multiple renders, cloning them avoids errors when DOM manipulations rely\r\n// on their elm reference.\r\nfunction cloneVNode(vnode) {\r\n var cloned = new VNode(vnode.tag, vnode.data, \r\n // #7975\r\n // clone children array to avoid mutating original in case of cloning\r\n // a child.\r\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\r\n cloned.ns = vnode.ns;\r\n cloned.isStatic = vnode.isStatic;\r\n cloned.key = vnode.key;\r\n cloned.isComment = vnode.isComment;\r\n cloned.fnContext = vnode.fnContext;\r\n cloned.fnOptions = vnode.fnOptions;\r\n cloned.fnScopeId = vnode.fnScopeId;\r\n cloned.asyncMeta = vnode.asyncMeta;\r\n cloned.isCloned = true;\r\n return cloned;\r\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\r\nvar initProxy;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\r\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\r\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\r\n 'require' // for Webpack/Browserify\r\n );\r\n var warnNonPresent_1 = function (target, key) {\r\n warn$2(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\r\n 'referenced during render. Make sure that this property is reactive, ' +\r\n 'either in the data option, or for class-based components, by ' +\r\n 'initializing the property. ' +\r\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\r\n };\r\n var warnReservedPrefix_1 = function (target, key) {\r\n warn$2(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\r\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\r\n 'prevent conflicts with Vue internals. ' +\r\n 'See: https://vuejs.org/v2/api/#data', target);\r\n };\r\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\r\n if (hasProxy_1) {\r\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\r\n config.keyCodes = new Proxy(config.keyCodes, {\r\n set: function (target, key, value) {\r\n if (isBuiltInModifier_1(key)) {\r\n warn$2(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\r\n return false;\r\n }\r\n else {\r\n target[key] = value;\r\n return true;\r\n }\r\n }\r\n });\r\n }\r\n var hasHandler_1 = {\r\n has: function (target, key) {\r\n var has = key in target;\r\n var isAllowed = allowedGlobals_1(key) ||\r\n (typeof key === 'string' &&\r\n key.charAt(0) === '_' &&\r\n !(key in target.$data));\r\n if (!has && !isAllowed) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return has || !isAllowed;\r\n }\r\n };\r\n var getHandler_1 = {\r\n get: function (target, key) {\r\n if (typeof key === 'string' && !(key in target)) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return target[key];\r\n }\r\n };\r\n initProxy = function initProxy(vm) {\r\n if (hasProxy_1) {\r\n // determine which proxy handler to use\r\n var options = vm.$options;\r\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\r\n vm._renderProxy = new Proxy(vm, handlers);\r\n }\r\n else {\r\n vm._renderProxy = vm;\r\n }\r\n };\r\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar uid$2 = 0;\r\n/**\r\n * A dep is an observable that can have multiple\r\n * directives subscribing to it.\r\n * @internal\r\n */\r\nvar Dep = /** @class */ (function () {\r\n function Dep() {\r\n this.id = uid$2++;\r\n this.subs = [];\r\n }\r\n Dep.prototype.addSub = function (sub) {\r\n this.subs.push(sub);\r\n };\r\n Dep.prototype.removeSub = function (sub) {\r\n remove$2(this.subs, sub);\r\n };\r\n Dep.prototype.depend = function (info) {\r\n if (Dep.target) {\r\n Dep.target.addDep(this);\r\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\r\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\r\n }\r\n }\r\n };\r\n Dep.prototype.notify = function (info) {\r\n // stabilize the subscriber list first\r\n var subs = this.subs.slice();\r\n if (process.env.NODE_ENV !== 'production' && !config.async) {\r\n // subs aren't sorted in scheduler if not running async\r\n // we need to sort them now to make sure they fire in correct\r\n // order\r\n subs.sort(function (a, b) { return a.id - b.id; });\r\n }\r\n for (var i = 0, l = subs.length; i < l; i++) {\r\n if (process.env.NODE_ENV !== 'production' && info) {\r\n var sub = subs[i];\r\n sub.onTrigger &&\r\n sub.onTrigger(__assign({ effect: subs[i] }, info));\r\n }\r\n subs[i].update();\r\n }\r\n };\r\n return Dep;\r\n}());\r\n// The current target watcher being evaluated.\r\n// This is globally unique because only one watcher\r\n// can be evaluated at a time.\r\nDep.target = null;\r\nvar targetStack = [];\r\nfunction pushTarget(target) {\r\n targetStack.push(target);\r\n Dep.target = target;\r\n}\r\nfunction popTarget() {\r\n targetStack.pop();\r\n Dep.target = targetStack[targetStack.length - 1];\r\n}\n\n/*\r\n * not type checking this file because flow doesn't play well with\r\n * dynamically accessing methods on Array prototype\r\n */\r\nvar arrayProto = Array.prototype;\r\nvar arrayMethods = Object.create(arrayProto);\r\nvar methodsToPatch = [\r\n 'push',\r\n 'pop',\r\n 'shift',\r\n 'unshift',\r\n 'splice',\r\n 'sort',\r\n 'reverse'\r\n];\r\n/**\r\n * Intercept mutating methods and emit events\r\n */\r\nmethodsToPatch.forEach(function (method) {\r\n // cache original method\r\n var original = arrayProto[method];\r\n def(arrayMethods, method, function mutator() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = original.apply(this, args);\r\n var ob = this.__ob__;\r\n var inserted;\r\n switch (method) {\r\n case 'push':\r\n case 'unshift':\r\n inserted = args;\r\n break;\r\n case 'splice':\r\n inserted = args.slice(2);\r\n break;\r\n }\r\n if (inserted)\r\n ob.observeArray(inserted);\r\n // notify change\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\r\n target: this,\r\n key: method\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return result;\r\n });\r\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\nvar NO_INIITIAL_VALUE = {};\r\n/**\r\n * In some cases we may want to disable observation inside a component's\r\n * update computation.\r\n */\r\nvar shouldObserve = true;\r\nfunction toggleObserving(value) {\r\n shouldObserve = value;\r\n}\r\n// ssr mock dep\r\nvar mockDep = {\r\n notify: noop,\r\n depend: noop,\r\n addSub: noop,\r\n removeSub: noop\r\n};\r\n/**\r\n * Observer class that is attached to each observed\r\n * object. Once attached, the observer converts the target\r\n * object's property keys into getter/setters that\r\n * collect dependencies and dispatch updates.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n function Observer(value, shallow, mock) {\r\n if (shallow === void 0) { shallow = false; }\r\n if (mock === void 0) { mock = false; }\r\n this.value = value;\r\n this.shallow = shallow;\r\n this.mock = mock;\r\n // this.value = value\r\n this.dep = mock ? mockDep : new Dep();\r\n this.vmCount = 0;\r\n def(value, '__ob__', this);\r\n if (isArray(value)) {\r\n if (!mock) {\r\n if (hasProto) {\r\n value.__proto__ = arrayMethods;\r\n /* eslint-enable no-proto */\r\n }\r\n else {\r\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\r\n var key = arrayKeys[i];\r\n def(value, key, arrayMethods[key]);\r\n }\r\n }\r\n }\r\n if (!shallow) {\r\n this.observeArray(value);\r\n }\r\n }\r\n else {\r\n /**\r\n * Walk through all properties and convert them into\r\n * getter/setters. This method should only be called when\r\n * value type is Object.\r\n */\r\n var keys = Object.keys(value);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\r\n }\r\n }\r\n }\r\n /**\r\n * Observe a list of Array items.\r\n */\r\n Observer.prototype.observeArray = function (value) {\r\n for (var i = 0, l = value.length; i < l; i++) {\r\n observe(value[i], false, this.mock);\r\n }\r\n };\r\n return Observer;\r\n}());\r\n// helpers\r\n/**\r\n * Attempt to create an observer instance for a value,\r\n * returns the new observer if successfully observed,\r\n * or the existing observer if the value already has one.\r\n */\r\nfunction observe(value, shallow, ssrMockReactivity) {\r\n if (!isObject(value) || isRef(value) || value instanceof VNode) {\r\n return;\r\n }\r\n var ob;\r\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n ob = value.__ob__;\r\n }\r\n else if (shouldObserve &&\r\n (ssrMockReactivity || !isServerRendering()) &&\r\n (isArray(value) || isPlainObject(value)) &&\r\n Object.isExtensible(value) &&\r\n !value.__v_skip /* ReactiveFlags.SKIP */) {\r\n ob = new Observer(value, shallow, ssrMockReactivity);\r\n }\r\n return ob;\r\n}\r\n/**\r\n * Define a reactive property on an Object.\r\n */\r\nfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\r\n var dep = new Dep();\r\n var property = Object.getOwnPropertyDescriptor(obj, key);\r\n if (property && property.configurable === false) {\r\n return;\r\n }\r\n // cater for pre-defined getter/setters\r\n var getter = property && property.get;\r\n var setter = property && property.set;\r\n if ((!getter || setter) &&\r\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\r\n val = obj[key];\r\n }\r\n var childOb = !shallow && observe(val, false, mock);\r\n Object.defineProperty(obj, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function reactiveGetter() {\r\n var value = getter ? getter.call(obj) : val;\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.depend({\r\n target: obj,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: key\r\n });\r\n }\r\n else {\r\n dep.depend();\r\n }\r\n if (childOb) {\r\n childOb.dep.depend();\r\n if (isArray(value)) {\r\n dependArray(value);\r\n }\r\n }\r\n }\r\n return isRef(value) && !shallow ? value.value : value;\r\n },\r\n set: function reactiveSetter(newVal) {\r\n var value = getter ? getter.call(obj) : val;\r\n if (!hasChanged(value, newVal)) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production' && customSetter) {\r\n customSetter();\r\n }\r\n if (setter) {\r\n setter.call(obj, newVal);\r\n }\r\n else if (getter) {\r\n // #7981: for accessor properties without setter\r\n return;\r\n }\r\n else if (isRef(value) && !isRef(newVal)) {\r\n value.value = newVal;\r\n return;\r\n }\r\n else {\r\n val = newVal;\r\n }\r\n childOb = !shallow && observe(newVal, false, mock);\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.notify({\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n target: obj,\r\n key: key,\r\n newValue: newVal,\r\n oldValue: value\r\n });\r\n }\r\n else {\r\n dep.notify();\r\n }\r\n }\r\n });\r\n return dep;\r\n}\r\nfunction set(target, key, val) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn$2(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' && warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.length = Math.max(target.length, key);\r\n target.splice(key, 1, val);\r\n // when mocking for SSR, array methods are not hijacked\r\n if (ob && !ob.shallow && ob.mock) {\r\n observe(val, false, true);\r\n }\r\n return val;\r\n }\r\n if (key in target && !(key in Object.prototype)) {\r\n target[key] = val;\r\n return val;\r\n }\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n 'at runtime - declare it upfront in the data option.');\r\n return val;\r\n }\r\n if (!ob) {\r\n target[key] = val;\r\n return val;\r\n }\r\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"add\" /* TriggerOpTypes.ADD */,\r\n target: target,\r\n key: key,\r\n newValue: val,\r\n oldValue: undefined\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return val;\r\n}\r\nfunction del(target, key) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn$2(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.splice(key, 1);\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn$2('Avoid deleting properties on a Vue instance or its root $data ' +\r\n '- just set it to null.');\r\n return;\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn$2(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n if (!hasOwn(target, key)) {\r\n return;\r\n }\r\n delete target[key];\r\n if (!ob) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"delete\" /* TriggerOpTypes.DELETE */,\r\n target: target,\r\n key: key\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n}\r\n/**\r\n * Collect dependencies on array elements when the array is touched, since\r\n * we cannot intercept array element access like property getters.\r\n */\r\nfunction dependArray(value) {\r\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\r\n e = value[i];\r\n if (e && e.__ob__) {\r\n e.__ob__.dep.depend();\r\n }\r\n if (isArray(e)) {\r\n dependArray(e);\r\n }\r\n }\r\n}\n\nfunction reactive(target) {\r\n makeReactive(target, false);\r\n return target;\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n makeReactive(target, true);\r\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n return target;\r\n}\r\nfunction makeReactive(target, shallow) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (!isReadonly(target)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isArray(target)) {\r\n warn$2(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\r\n }\r\n var existingOb = target && target.__ob__;\r\n if (existingOb && existingOb.shallow !== shallow) {\r\n warn$2(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\r\n }\r\n }\r\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\r\n if (process.env.NODE_ENV !== 'production' && !ob) {\r\n if (target == null || isPrimitive(target)) {\r\n warn$2(\"value cannot be made reactive: \".concat(String(target)));\r\n }\r\n if (isCollectionType(target)) {\r\n warn$2(\"Vue 2 does not support reactive collection types such as Map or Set.\");\r\n }\r\n }\r\n }\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\r\n }\r\n return !!(value && value.__ob__);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value.__v_isShallow);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value.__v_isReadonly);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction isCollectionType(value) {\r\n var type = toRawType(value);\r\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\r\n}\n\n/**\r\n * @internal\r\n */\r\nvar RefFlag = \"__v_isRef\";\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref$1(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n var ref = {};\r\n def(ref, RefFlag, true);\r\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\r\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\r\n return ref;\r\n}\r\nfunction triggerRef(ref) {\r\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\r\n warn$2(\"received object is not a triggerable ref.\");\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n ref.dep &&\r\n ref.dep.notify({\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n target: ref,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n ref.dep && ref.dep.notify();\r\n }\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nfunction proxyRefs(objectWithRefs) {\r\n if (isReactive(objectWithRefs)) {\r\n return objectWithRefs;\r\n }\r\n var proxy = {};\r\n var keys = Object.keys(objectWithRefs);\r\n for (var i = 0; i < keys.length; i++) {\r\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\r\n }\r\n return proxy;\r\n}\r\nfunction proxyWithRefUnwrap(target, source, key) {\r\n Object.defineProperty(target, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n var val = source[key];\r\n if (isRef(val)) {\r\n return val.value;\r\n }\r\n else {\r\n var ob = val && val.__ob__;\r\n if (ob)\r\n ob.dep.depend();\r\n return val;\r\n }\r\n },\r\n set: function (value) {\r\n var oldValue = source[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n }\r\n else {\r\n source[key] = value;\r\n }\r\n }\r\n });\r\n}\r\nfunction customRef(factory) {\r\n var dep = new Dep();\r\n var _a = factory(function () {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.depend({\r\n target: ref,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n dep.depend();\r\n }\r\n }, function () {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.notify({\r\n target: ref,\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n dep.notify();\r\n }\r\n }), get = _a.get, set = _a.set;\r\n var ref = {\r\n get value() {\r\n return get();\r\n },\r\n set value(newVal) {\r\n set(newVal);\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n return ref;\r\n}\r\nfunction toRefs(object) {\r\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\r\n warn$2(\"toRefs() expects a reactive object but received a plain one.\");\r\n }\r\n var ret = isArray(object) ? new Array(object.length) : {};\r\n for (var key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n var val = object[key];\r\n if (isRef(val)) {\r\n return val;\r\n }\r\n var ref = {\r\n get value() {\r\n var val = object[key];\r\n return val === undefined ? defaultValue : val;\r\n },\r\n set value(newVal) {\r\n object[key] = newVal;\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n return ref;\r\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\r\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\r\nfunction readonly(target) {\r\n return createReadonly(target, false);\r\n}\r\nfunction createReadonly(target, shallow) {\r\n if (!isPlainObject(target)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isArray(target)) {\r\n warn$2(\"Vue 2 does not support readonly arrays.\");\r\n }\r\n else if (isCollectionType(target)) {\r\n warn$2(\"Vue 2 does not support readonly collection types such as Map or Set.\");\r\n }\r\n else {\r\n warn$2(\"value cannot be made readonly: \".concat(typeof target));\r\n }\r\n }\r\n return target;\r\n }\r\n // already a readonly object\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n // already has a readonly proxy\r\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\r\n var existingProxy = target[existingFlag];\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n var proxy = Object.create(Object.getPrototypeOf(target));\r\n def(target, existingFlag, proxy);\r\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\r\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\r\n if (isRef(target)) {\r\n def(proxy, RefFlag, true);\r\n }\r\n if (shallow || isShallow(target)) {\r\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n }\r\n var keys = Object.keys(target);\r\n for (var i = 0; i < keys.length; i++) {\r\n defineReadonlyProperty(proxy, target, keys[i], shallow);\r\n }\r\n return proxy;\r\n}\r\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\r\n Object.defineProperty(proxy, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n var val = target[key];\r\n return shallow || !isPlainObject(val) ? val : readonly(val);\r\n },\r\n set: function () {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n }\r\n });\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReadonly(target, true);\r\n}\n\nfunction computed(getterOrOptions, debugOptions) {\r\n var getter;\r\n var setter;\r\n var onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = process.env.NODE_ENV !== 'production'\r\n ? function () {\r\n warn$2('Write operation failed: computed value is readonly');\r\n }\r\n : noop;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n var watcher = isServerRendering()\r\n ? null\r\n : new Watcher(currentInstance, getter, noop, { lazy: true });\r\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\r\n watcher.onTrack = debugOptions.onTrack;\r\n watcher.onTrigger = debugOptions.onTrigger;\r\n }\r\n var ref = {\r\n // some libs rely on the presence effect for checking computed refs\r\n // from normal refs, but the implementation doesn't matter\r\n effect: watcher,\r\n get value() {\r\n if (watcher) {\r\n if (watcher.dirty) {\r\n watcher.evaluate();\r\n }\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\r\n Dep.target.onTrack({\r\n effect: Dep.target,\r\n target: ref,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: 'value'\r\n });\r\n }\r\n watcher.depend();\r\n }\r\n return watcher.value;\r\n }\r\n else {\r\n return getter();\r\n }\r\n },\r\n set value(newVal) {\r\n setter(newVal);\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\r\n return ref;\r\n}\n\nvar mark;\r\nvar measure;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var perf_1 = inBrowser && window.performance;\r\n /* istanbul ignore if */\r\n if (perf_1 &&\r\n // @ts-ignore\r\n perf_1.mark &&\r\n // @ts-ignore\r\n perf_1.measure &&\r\n // @ts-ignore\r\n perf_1.clearMarks &&\r\n // @ts-ignore\r\n perf_1.clearMeasures) {\r\n mark = function (tag) { return perf_1.mark(tag); };\r\n measure = function (name, startTag, endTag) {\r\n perf_1.measure(name, startTag, endTag);\r\n perf_1.clearMarks(startTag);\r\n perf_1.clearMarks(endTag);\r\n // perf.clearMeasures(name)\r\n };\r\n }\r\n}\n\nvar normalizeEvent = cached(function (name) {\r\n var passive = name.charAt(0) === '&';\r\n name = passive ? name.slice(1) : name;\r\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\r\n name = once ? name.slice(1) : name;\r\n var capture = name.charAt(0) === '!';\r\n name = capture ? name.slice(1) : name;\r\n return {\r\n name: name,\r\n once: once,\r\n capture: capture,\r\n passive: passive\r\n };\r\n});\r\nfunction createFnInvoker(fns, vm) {\r\n function invoker() {\r\n var fns = invoker.fns;\r\n if (isArray(fns)) {\r\n var cloned = fns.slice();\r\n for (var i = 0; i < cloned.length; i++) {\r\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n else {\r\n // return handler return value for single handlers\r\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n invoker.fns = fns;\r\n return invoker;\r\n}\r\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\r\n var name, cur, old, event;\r\n for (name in on) {\r\n cur = on[name];\r\n old = oldOn[name];\r\n event = normalizeEvent(name);\r\n if (isUndef(cur)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn$2(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\r\n }\r\n else if (isUndef(old)) {\r\n if (isUndef(cur.fns)) {\r\n cur = on[name] = createFnInvoker(cur, vm);\r\n }\r\n if (isTrue(event.once)) {\r\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\r\n }\r\n add(event.name, cur, event.capture, event.passive, event.params);\r\n }\r\n else if (cur !== old) {\r\n old.fns = cur;\r\n on[name] = old;\r\n }\r\n }\r\n for (name in oldOn) {\r\n if (isUndef(on[name])) {\r\n event = normalizeEvent(name);\r\n remove(event.name, oldOn[name], event.capture);\r\n }\r\n }\r\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\r\n if (def instanceof VNode) {\r\n def = def.data.hook || (def.data.hook = {});\r\n }\r\n var invoker;\r\n var oldHook = def[hookKey];\r\n function wrappedHook() {\r\n hook.apply(this, arguments);\r\n // important: remove merged hook to ensure it's called only once\r\n // and prevent memory leak\r\n remove$2(invoker.fns, wrappedHook);\r\n }\r\n if (isUndef(oldHook)) {\r\n // no existing hook\r\n invoker = createFnInvoker([wrappedHook]);\r\n }\r\n else {\r\n /* istanbul ignore if */\r\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\r\n // already a merged invoker\r\n invoker = oldHook;\r\n invoker.fns.push(wrappedHook);\r\n }\r\n else {\r\n // existing plain hook\r\n invoker = createFnInvoker([oldHook, wrappedHook]);\r\n }\r\n }\r\n invoker.merged = true;\r\n def[hookKey] = invoker;\r\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\r\n // we are only extracting raw values here.\r\n // validation and default values are handled in the child\r\n // component itself.\r\n var propOptions = Ctor.options.props;\r\n if (isUndef(propOptions)) {\r\n return;\r\n }\r\n var res = {};\r\n var attrs = data.attrs, props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\r\n if (process.env.NODE_ENV !== 'production') {\r\n var keyInLowerCase = key.toLowerCase();\r\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\r\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\r\n \"\".concat(formatComponentName(\r\n // @ts-expect-error tag is string\r\n tag || Ctor), \", but the declared prop name is\") +\r\n \" \\\"\".concat(key, \"\\\". \") +\r\n \"Note that HTML attributes are case-insensitive and camelCased \" +\r\n \"props need to use their kebab-case equivalents when using in-DOM \" +\r\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\r\n }\r\n }\r\n checkProp(res, props, key, altKey, true) ||\r\n checkProp(res, attrs, key, altKey, false);\r\n }\r\n }\r\n return res;\r\n}\r\nfunction checkProp(res, hash, key, altKey, preserve) {\r\n if (isDef(hash)) {\r\n if (hasOwn(hash, key)) {\r\n res[key] = hash[key];\r\n if (!preserve) {\r\n delete hash[key];\r\n }\r\n return true;\r\n }\r\n else if (hasOwn(hash, altKey)) {\r\n res[key] = hash[altKey];\r\n if (!preserve) {\r\n delete hash[altKey];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\n\n// The template compiler attempts to minimize the need for normalization by\r\n// statically analyzing the template at compile time.\r\n//\r\n// For plain HTML markup, normalization can be completely skipped because the\r\n// generated render function is guaranteed to return Array. There are\r\n// two cases where extra normalization is needed:\r\n// 1. When the children contains components - because a functional component\r\n// may return an Array instead of a single root. In this case, just a simple\r\n// normalization is needed - if any child is an Array, we flatten the whole\r\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n// because functional components already normalize their own children.\r\nfunction simpleNormalizeChildren(children) {\r\n for (var i = 0; i < children.length; i++) {\r\n if (isArray(children[i])) {\r\n return Array.prototype.concat.apply([], children);\r\n }\r\n }\r\n return children;\r\n}\r\n// 2. When the children contains constructs that always generated nested Arrays,\r\n// e.g.