{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./src/shared/story/VideoPlayer/VideoMedia/index.css","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/index.css","webpack:///./src/shared/story/App.css","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./src/shared/audioButton/AudioButton.css","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/util.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/Scrubber/index.css","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./src/shared/story/VideoloopMedia/index.css","webpack:///./src/shared/story/MediaCredit.css","webpack:///./node_modules/stackframe/stackframe.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/is-callable/index.js","webpack:///./node_modules/has/src/index.js","webpack:///./src/shared/story/ImageMedia/Credit/Credit.css","webpack:///./src/shared/story/ImageMedia/index.css","webpack:///./src/shared/story/PlaceholderSection.css","webpack:///./src/shared/story/QuoteSection.css","webpack:///./src/shared/story/TextSection.css","webpack:///./src/shared/story/HeaderSection.css","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/array-set.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64-vlq.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-generator.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/array-includes/polyfill.js","webpack:///./node_modules/array-includes/implementation.js","webpack:///./node_modules/es-abstract/helpers/mod.js","webpack:///./node_modules/es-abstract/helpers/sign.js","webpack:///./node_modules/es-abstract/helpers/isFinite.js","webpack:///./node_modules/es-abstract/helpers/isNaN.js","webpack:///./node_modules/es-to-primitive/helpers/isPrimitive.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/es-abstract/es6.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.commonjs.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.commonjs.js","webpack:///./node_modules/stacktrace-js/stacktrace.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/MuteButton/index.css","webpack:///./src/shared/story/VideoPlayer/MediaControls/TogglePlayButton/index.css","webpack:///./src/shared/story/VideoPlayer/MediaControls/LargePlayButton/index.css","webpack:///./src/shared/story/VideoPlayer/VideoMedia/vtt-parser.js","webpack:///./node_modules/sweet-scroll/sweet-scroll.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","webpack:///./node_modules/preact/dist/preact.esm.js","webpack:///./src/shared/lib/array.js","webpack:///./src/shared/lib/id.js","webpack:///./src/shared/lib/store.js","webpack:///./src/shared/lib/bem.js","webpack:///./src/shared/lib/provider.js","webpack:///./node_modules/@nrk/max-viewport-observable/dist/max-viewport-observable.module.js","webpack:///./src/shared/story/common/MaxViewportRect.js","webpack:///./src/shared/story/common/HtmlContent.js","webpack:///./src/shared/story/HeaderSection.js","webpack:///./src/shared/story/TextSection.js","webpack:///./src/shared/story/QuoteSection.js","webpack:///./src/shared/story/PlaceholderSection.js","webpack:///./src/shared/story/ImageMedia/PolopolyPicture/index.js","webpack:///./src/shared/story/MediaCredit.js","webpack:///./src/shared/story/ImageMedia/Credit/Credit.js","webpack:///./src/shared/story/ImageMedia/index.js","webpack:///./src/shared/story/common/Video.js","webpack:///./src/shared/story/VideoloopMedia/index.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./src/shared/story/VideoPlayer/VideoMedia/Ludo.js","webpack:///./src/shared/story/VideoPlayer/VideoMedia/Subtitle.js","webpack:///./src/shared/lib/nl2br.js","webpack:///./src/shared/story/VideoPlayer/VideoMedia/index.js","webpack:///./node_modules/@nrk/core-icons/core-icons.mjs","webpack:///./src/shared/story/VideoPlayer/MediaControls/LargePlayButton/index.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/TogglePlayButton/index.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/Scrubber/index.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/MuteButton/index.js","webpack:///./src/shared/story/VideoPlayer/MediaControls/index.js","webpack:///./src/shared/story/VideoPlayer/UserActive/index.js","webpack:///./src/shared/story/VideoPlayer/actions.js","webpack:///./src/shared/story/VideoPlayer/index.js","webpack:///./src/shared/lib/math.js","webpack:///./src/shared/story/App.js","webpack:///./src/client/lib/parseStack.js","webpack:///./src/client/lib/getContextId.js","webpack:///./src/client/story/index.js","webpack:///./src/client/lib/error-reporting.js","webpack:///./src/shared/audioButton/AudioButton.js","webpack:///./src/client/audioButton/index.js","webpack:///./src/client/index.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-node.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/quick-sort.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/binary-search.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-consumer.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/mapping-list.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/source-map.js","webpack:///./node_modules/stacktrace-gps/stacktrace-gps.js","webpack:///./node_modules/stack-generator/stack-generator.js","webpack:///./node_modules/error-stack-parser/error-stack-parser.js","webpack:///./node_modules/core-js/modules/es6.array.species.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.last-index-of.js","webpack:///./node_modules/core-js/modules/es6.array.index-of.js","webpack:///./node_modules/core-js/modules/es6.array.reduce-right.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/core-js/modules/es6.array.every.js","webpack:///./node_modules/core-js/modules/es6.array.some.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/es6.array.for-each.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/modules/es6.array.slice.js","webpack:///./node_modules/core-js/modules/es6.array.join.js","webpack:///./node_modules/core-js/modules/es6.array.of.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/es6/array.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/es6/promise.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/array-includes/shim.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/es-to-primitive/es5.js","webpack:///./node_modules/es-abstract/es5.js","webpack:///./node_modules/es-abstract/helpers/isPrimitive.js","webpack:///./node_modules/es-abstract/helpers/assign.js","webpack:///./node_modules/is-symbol/index.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/es-to-primitive/es6.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/es-abstract/es2015.js","webpack:///./node_modules/foreach/index.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/array-includes/index.js","webpack:///./src/client/polyfills.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","global","core","hide","redefine","ctx","$export","type","source","key","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","target","S","expProto","undefined","Function","U","W","R","store","uid","Symbol","USE_SYMBOL","window","Math","self","__g","fails","method","arg","toInteger","min","it","media","media--video","ludo-video","storyRoot--noJs","ludo-video--is-active","ludo-video--is-horizontal","ludo-video--is-vertical","media--horizontal-contain","media--horizontal-cover","media--vertical-contain","media--vertical-cover","media__verticalVideo","media--vertical","media__horizontalVideo","media__captions","media--controlsActive","media__caption","IObject","toObject","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","create","$this","callbackfn","that","val","res","O","f","length","index","result","push","defined","isObject","TypeError","version","__e","mediaControls","mediaControls--controlsActive","mediaControls__bottom","mediaControls__largePlayButton","mediaControls__togglePlayButton","mediaControls__muteButton","mediaControls__scrubber","scrubber","app","storyRoot--js","app__mediaContainer","app--visible","media--visible","aFunction","fn","a","b","apply","arguments","exec","e","_typeof","dP","createDesc","toString","slice","buttonApp","buttonRoot--js","audioButton","audioButton__label","audioButton__button","audioMuteButton","audioMuteButton__volumeIcon","audioMuteButton--muted","audioMuteButton__mutedIcon","getArg","aArgs","aName","aDefaultValue","Error","urlRegexp","dataUrlRegexp","urlParse","aUrl","match","scheme","auth","host","port","path","urlGenerate","aParsedUrl","url","normalize","aPath","part","isAbsolute","parts","split","up","splice","join","aRoot","aPathUrl","aRootUrl","joined","charAt","replace","relative","level","indexOf","lastIndexOf","Array","substr","supportsNullProto","identity","isProtoString","charCodeAt","strcmp","aStr1","aStr2","toSetString","aStr","fromSetString","compareByOriginalPositions","mappingA","mappingB","onlyCompareOriginal","cmp","originalLine","originalColumn","generatedColumn","generatedLine","compareByGeneratedPositionsDeflated","onlyCompareGenerated","compareByGeneratedPositionsInflated","UNSCOPABLES","ArrayProto","anObject","IE8_DOM_DEFINE","toPrimitive","Attributes","has","SRC","$toString","TPL","inspectSource","safe","isFunction","String","this","scrubber__bgBar","scrubber__bufferedBar","scrubber__playedBar","max","cof","propertyIsEnumerable","ceil","floor","isNaN","media--videoloop","wrapper","inner","bubble","root","factory","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","_isNumber","parseFloat","isFinite","_capitalize","str","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","props","concat","StackFrame","obj","getArgs","args","setArgs","v","getEvalOrigin","evalOrigin","setEvalOrigin","functionName","getFunctionName","fileName","getFileName","lineNumber","getLineNumber","columnNumber","getColumnNumber","Boolean","j","Number","k","def","TAG","tag","stat","document","documentElement","shared","bitmap","writable","is","createElement","id","px","random","ARG","T","tryGet","callee","fnToStr","constructorRegex","isES6ClassFn","spaceStripped","test","toStr","hasToStringTag","toStringTag","tryFunctionObject","strClass","bind","horizontal","vertical","media--image","media__image","media__image--darker","media__image--horizontal-cover","media__image--horizontal-contain","media__image--vertical-cover","media__image--vertical-contain","placeholderSection","placeholderSection__card","placeholderSection--first","quoteSection","quoteSection__card","quoteSection--invert","quoteSection--left","quoteSection--right","textSection","textSection__card","textSection--invert","textSection--left","textSection--right","textSection--notext","headerSection","headerSection__card","headerSection--invert","headerSection--left","headerSection--right","util","ArraySet","_array","_set","fromArray","aArray","aAllowDuplicates","set","len","add","size","getOwnPropertyNames","sStr","isDuplicate","idx","at","aIdx","toArray","base64","encode","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","decode","aIndex","aOutParam","continuation","shifted","strLen","shift","rest","base64VLQ","MappingList","SourceMapGenerator","_file","_sourceRoot","_skipValidation","_sources","_names","_mappings","_sourcesContents","_version","fromSourceMap","aSourceMapConsumer","sourceRoot","generator","file","eachMapping","mapping","newMapping","generated","line","column","original","addMapping","sources","forEach","sourceFile","content","sourceContentFor","setSourceContent","_validateMapping","aSourceFile","aSourceContent","keys","applySourceMap","aSourceMapPath","newSources","newNames","unsortedForEach","originalPositionFor","aGenerated","aOriginal","aSource","JSON","stringify","_serializeMappings","next","nameIdx","sourceIdx","previousGeneratedColumn","previousGeneratedLine","previousOriginalColumn","previousOriginalLine","previousName","previousSource","mappings","_generateSourcesContent","aSources","aSourceRoot","map","toJSON","names","sourcesContent","aLen","memo","isRight","$defineProperty","isArray","ITERATOR","SAFE_CLOSING","riter","from","skipClosing","arr","iter","done","DESCRIPTORS","SPECIES","KEY","C","resolve","reject","promise","$$resolve","$$reject","defer","channel","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","data","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","clear","classof","Iterators","getIteratorMethod","iterator","entries","ret","addToUnscopables","step","toIObject","iterated","kind","_t","_i","_k","Arguments","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","$keys","enumBugKeys","LIBRARY","$iterCreate","setToStringTag","getPrototypeOf","BUGGY","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","$at","point","mode","copyright","implementation","includes","ES","$isNaN","$isFinite","searchElement","ToInteger","ToObject","ToLength","SameValueZero","number","modulo","remain","x","Infinity","foreach","hasSymbols","supportsDescriptors","_","arePropertyDescriptorsSupported","predicate","defineProperties","predicates","getOwnPropertySymbols","hasSupportCache","testEventPassiveListener","callback","opts","testJs","testJs$1","style","objectFit","testPositionSticky","cssText","position","videoAutoPlayCache","testVideoAutoPlay","videoElm","isPlaying","setAttribute","canPlayType","src","load","playPromise","play","catch","oncanplay","onplay","testObjectFit","default","gaReady","ga","_extends","assign","createGoogleAnalyticsTracker","config","_eventQueue","gaPropertyId","context","selfId","contextId","title","publishedDate","isStandalone","referrer","eventQueue","trackerCreated","standardDimensions","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","handleEvent","trackerName","isQueued","category","action","trackingId","cookieDomain","createNamespacedTracker","gaEvent","eventCategory","eventAction","eventLabel","label","eventValue","nonInteraction","additionalFields","fieldsObject","toGAEvent","intervalId","setInterval","clearInterval","sendEvent","ErrorStackParser","StackGenerator","StackTraceGPS","_options","filter","stackframe","sourceCache","_generateError","err","_merge","first","second","prop","_isShapedLikeParsableError","stack","_filtered","stackframes","fromError","generateArtificially","getSync","parse","backtrace","error","gps","Promise","all","sf","resolveOriginal","pinpoint","then","stackFrames","instrument","errback","thisArg","__stacktraceOriginalFn","instrumented","deinstrument","report","errorMsg","requestOptions","req","XMLHttpRequest","onerror","onreadystatechange","readyState","status","responseText","open","setRequestHeader","headers","header","reportPayload","message","send","t","register","time","Date","dryRun","u","parseStack","errorRegister","filename","lineno","colno","sendErrorReport","stackTrace","reason","console","log","isInRegisterWithinRange","addErrorToRegister","SimpleErrorReport","muteButton","togglePlayButton","largePlayButton","ParserError","TIMESTAMP_REGEXP","parseCue","cue","identifier","start","end","styles","lines","msg","times","validTimestamp","parseTimestamp","trim","text","timestamp","matches","secs","input","startsWith","headerParts","valid","cues","parseCues","__assign","canUseDOM","canUseHistory","history","location","protocol","canUsePassiveOption","support","isString","isElement","Element","hasProp","raf","requestAnimationFrame","caf","cancelAnimationFrame","cos","sin","pow","sqrt","PI","easings","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","directionMethodMap","y","directionPropMap","getScroll","$el","direction","setScroll","offset","getOffset","$context","rect","getBoundingClientRect","width","height","scroll_1","top","left","$ctx","isRootContainer","cRect","clientTop","clientLeft","$$","selector","querySelectorAll","$","results","body","findScrollable","selectors","$elements","$div","$result","outerWidth_1","outerWidth","innerWidth_1","innerWidth","zoom","clientWidth","clientHeight","getHeight","scrollHeight","offsetHeight","getWidth","scrollWidth","offsetWidth","getSize","getViewportAndElementSizes","isRoot","viewport","innerHeight","wheelEventName","passive","eventName","addEvent","removeEvent","reRelativeToken","parseCoordinate","coordinate","enableVertical","op","parseInt","defaultOptions","trigger","duration","easing","cancellable","updateURL","preventDefault","stopPropagation","quickMode","before","after","cancel","complete","SweetScroll","options","container","_this","$trigger","progress","pos","startPos","hash","loop","_a","startOffset","directionMap","timeElapsed","initial","delta","round","hook","stop","handleClick","parentNode","dataOptions","getAttribute","to","toTop","toLeft","handleStop","$container","distance","currentOptions","optOffset","$header","scroll","current","$target","_b","toElement","$element","gotoEnd","update","unbind","destroy","onBefore","__","onStep","onAfter","onCancel","onComplete","abs","callbackResult","methodResult","click","g","w","fns","doc","loaded","doScroll","removeEventListener","preact_esm_options","EMPTY_CHILDREN","h","nodeName","attributes","lastSimple","child","simple","children","pop","vnode","extend","IS_NON_DIMENSIONAL","items","enqueueRender","component","_dirty","debounceRendering","rerender","list","renderComponent","isNamedNode","node","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","removeNode","setAccessor","old","isSvg","innerHTML","__html","useCapture","eventProxy","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","className","mounts","diffLevel","isSvgMode","hydrating","flushMounts","afterMount","componentDidMount","diff","dom","mountAll","parent","componentRoot","ownerSVGElement","idiff","prevSvgMode","splitText","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","_componentConstructor","isOwner","_parentComponent","constructor","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createElementNS","firstChild","fc","vchildren","nextSibling","isHydrating","vchild","originalChildren","childNodes","keyed","keyedLen","childrenLen","vlen","_child","__key","insertBefore","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","ref","removeChildren","lastChild","previousSibling","components","Ctor","inst","render","Component","doRender","state","_disable","__ref","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","shouldComponentUpdate","componentWillUpdate","getChildContext","toUnmount","childComponent","childProps","baseParent","componentRef","unshift","componentDidUpdate","afterUpdate","_renderCallbacks","beforeUnmount","componentWillUnmount","collectComponent","preact_esm_render","merge","setState","forceUpdate","createUniqueId","createStore","initialState","observers","getState","subscribe","observer","unsubscribe","bem","blockName","_len","modifiers","_key","modifier","Provider","_props","__CTX__","_objectWithoutProperties","connect","mapContextToProps","wrappedComponent","Connected","_Component2","_ref","_temp","_this2","_classCallCheck","_possibleConstructorReturn","__proto__","_inherits","_createClass","displayName","max_viewport_observable_module","isDynamicViewport","isTouching","listeners","orientationchange","resize","prevRect","getRect","touchstart","touchend","viewport$","elm","dispose","onViewportChange","_this3","HtmlContent_HtmlContent","_Component","HtmlContent","HtmlContent_classCallCheck","HtmlContent_possibleConstructorReturn","HtmlContent_inherits","HtmlContent_createClass","nextProps","shared_story_HeaderSection","align","invert","offsetEnd","_props$offsetStart","offsetStart","inlineStyle","paddingBottom","marginBottom","marginTop","HeaderSection_default","triggerElm","shared_story_TextSection","notext","TextSection_default","shared_story_QuoteSection","footer","QuoteSection_default","viewBox","cx","cy","shared_story_PlaceholderSection","viewportHeight","PlaceholderSection_default","PolopolyPicture","transformKey","getSrcSet","getImage","image","aspect","getDefault","w1280","onFocus","class","horizontalId","verticalId","srcset","data-src","alt","tabIndex","shared_story_MediaCredit","MediaCredit_default","getStyle","aspectString","cover","Credit_Credit_Credit","horizontalCredit","getCreditString","verticalCredit","Credit_default","creators","credit","ImageMedia_Credit_Credit","shared_story_ImageMedia","handleFocus","onMediaFocus","active","visible","advanced","imageClassName","ImageMedia_default","darker","showCredit","common_Video","retries","handleCanPlay","onCanPlay","handlePlay","onPlay","handlePause","onPause","handleDurationChange","onDurationChange","handleTimeUpdate","onTimeUpdate","handleEnded","onEnded","handlePromiseError","handleErrorInternal","handleError","onError","paused","code","MEDIA_ERR_SRC_NOT_SUPPORTED","updateVideoSource","captions","playing","onCaptionCueEnter","onCaptionCueExit","reduceMotion","matchMedia","track","addTextTrack","addCue","VTTCue","startTime","endTime","ex","TextTrackCue","_loop","onenter","onexit","_props2","muted","pause","playFailed","_props3","onSourceUpdate","find","fallback","currentTime","_this4","_props4","poster","aria-label","preload","playsInline","disableRemotePlayback","x-webkit-airplay","VideoloopMedia_VideoloopMedia","VideoloopMedia","VideoloopMedia_classCallCheck","VideoloopMedia_possibleConstructorReturn","currentVideoTime","sendGaEvent","isVerticalViewport","verticalVideo","updateTime","horizontalVideo","mp4","VideoloopMedia_default","hasVerticalVideoSupport","commonProps","VideoloopMedia_extends","getSources","shared_story_VideoloopMedia","_toConsumableArray","arr2","module_bem","strings","objectString","bem_typeof","toStrings","reduce","Ludo_options","mute","autoplay","controls","features","airplay","chromecast","help","navKeys","subtitle","enabled","analytics","getOptions","client","origin","domain","params","previewclient","getApiClient","Ludo_extends","apiClient","extractIdFromSmartUrl","smartUrl","debuglog","_console","search","Ludo_Ludo","Ludo","Ludo_classCallCheck","Ludo_possibleConstructorReturn","ludoInstance","ludoMount","ludo","getSubtitles","subtitles","fetch","sub","setSubtitles","requireLudo","requirejs","require","instanciateLudo","videoPlayerAspectRatio","aspectRatio","Ludo_inherits","Ludo_createClass","isMuted","selectedTime","isActive","mediaId","once","on","userInteraction","shouldPlay","wasPlaying","seekTo","isUserPaused","unmute","_props$isVertical","isVertical","VideoMedia_default","is-vertical","is-horizontal","is-active","data-potionid","VideoMedia_Subtitle","currentCue","nextCue","story_VideoPlayer_VideoMedia","videoDuration","onTimeupdate","onDurationchange","handleSourceUpdate","handleCaptionCueEnter","captionsElm","handleCaptionCueExit","getActiveCue","_this$subtitles$cues","VideoMedia_extends","vtt_parser","videoId","userPaused","controlsActive","nrkMediaPlay","nrkMediaVolume3","nrkMediaVolumeMuted","MediaControls_LargePlayButton","LargePlayButton_default","onClick","onBlur","aria-hidden","TogglePlayButton_default","currentIcon","VideoPlayer_MediaControls_Scrubber","isScrubbing","handleKeyDown","evt","_this$props","onPositionUpdate","nextTime","handleMouseDown","focus","pageX","handleMouseMove","handleMouseUp","move","handleResize","bgElm","handleTouchStart","touches","clientX","handleTouchMove","handleTouchEnd","handleElm","positionTimeout","clearTimeout","Scrubber_default","role","aria-valuemin","aria-valuemax","aria-valuenow","MediaControls_MuteButton","MuteButton_default","MediaControls_MediaControls","togglePlayback","toggleMuted","handleScrubberPositionUpdate","hasStarted","mediaControlsInlineStyle","MediaControls_default","VideoPlayer_MediaControls_TogglePlayButton","ACTIVATION_TIMEOUT","UserActive_UserActive","UserActive","UserActive_classCallCheck","UserActive_possibleConstructorReturn","userActive","setUserActive","activate","activationTimeoutId","deactivate","UserActive_inherits","UserActive_createClass","playerState","onUserActiveChanged","actions","sendError","VideoPlayer_VideoPlayer","VideoPlayer","VideoPlayer_classCallCheck","VideoPlayer_possibleConstructorReturn","handleDurationchange","handleTimeupdate","handlePlayFailed","hasFocus","onControlsFocus","handleMediaEnded","onMediaEnded","handleBlur","handleUserActiveChanged","section","sectionActive","onPlayFailed","story_VideoPlayer","clamp","NEXT_CARD_REVEAL_HEIGHT","scroller","sweet_scroll_default","App_App","_App","App_classCallCheck","App_possibleConstructorReturn","setIndex","_this$state","App_extends","handleViewportChange","handleMediaFocus","sections","scrollIntoView","vpHeight","nextCard","scrollY","offsetTop","autoPlaySupport","appVisible","appCoversScreen","trackedInitial","playingVideoIndex","storeSubscription","triggerElms","insersectionObserver","IntersectionObserver","entry","setVisiblity","isIntersecting","rootMargin","threshold","observe","unobserve","disconnect","_elm$getBoundingClien","bottom","checkAppCoverage","_this5","shouldHaveOffsetStart","shouldHaveOffsetEnd","sectionProps","_this6","_state","vhString","App_default","paddingTop","common_MaxViewportRect","mediaContainerInlineStyle","pointerEvents","renderTextSection","story_App_App","stacktrace_default","POLOPOLY_ID_REGEX","getContextId","extractPolopolyIdFromString","rootElementClassName","findElements","getElementsByClassName","isInitialized","initStories","navigator","userAgent","pictureImgElements","img","addSrcToImg","preloadedState","dataset","errorEventTrackingEnabled","story","metadata","published","googleAnalyticsTracker","dh_analytics_utils_min","href","eventObj","story_extends","simpleErrorReport","devicePixelRatio","isErrorReportingEnabled","simple_error_report_min","listenAndCatch","storeKey","supported","video","potionid","AudioButton_Button","_Button","AudioButton_classCallCheck","AudioButton_possibleConstructorReturn","AudioButton_extends","AudioButton_inherits","AudioButton_createClass","AudioButton_default","currentSvg","AudioButton_AudioButton","storyElementClassName","buttonElementClassName","audioButton_findElements","audioButton_isInitialized","ready_default","dh_analytics_utils_commonjs","audioButton_extends","feature_tests_commonjs","REGEX_NEWLINE","isSourceNode","SourceNode","aLine","aColumn","aChunks","sourceContents","fromStringWithSourceMap","aGeneratedCode","aRelativePath","remainingLines","shiftNextLine","lastGeneratedLine","lastGeneratedColumn","lastMapping","nextLine","addMappingWithCode","aChunk","chunk","prepend","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","walkSourceContents","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent","swap","ary","temp","doQuickSort","comparator","low","high","pivot","q","quickSort","GREATEST_LOWER_BOUND","LEAST_UPPER_BOUND","aNeedle","aHaystack","aCompare","aBias","recursiveSearch","aLow","aHigh","mid","binarySearch","SourceMapConsumer","aSourceMap","sourceMap","IndexedSourceMapConsumer","BasicSourceMapConsumer","Mapping","lastOffset","_sections","offsetLine","offsetColumn","generatedOffset","consumer","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","GENERATED_ORDER","ORIGINAL_ORDER","aCallback","aContext","aOrder","_generatedMappings","_originalMappings","allGeneratedPositionsFor","needle","_findMapping","lastColumn","smc","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","segment","cachedSegments","originalMappings","aMappings","aLineName","aColumnName","aComparator","computeColumnSpans","nextMapping","hasContentsOfAllSources","some","sc","nullOnMissing","fileUriAbsPath","generatedPositionFor","sectionIndex","bias","every","generatedPosition","sectionMappings","adjustedMapping","_sorted","_last","aThisArg","aMapping","lineA","lineB","columnA","columnB","sort","intToCharMap","charCode","SourceMap","_xdr","_atob","b64str","atob","_ensureStackFrameIsLegit","sourceMapConsumerCache","ajax","_get","isDataUrl","offline","sourceMapStart","encodedSource","xhrPromise","_getSourceMapConsumer","sourceMappingURL","defaultSourceRoot","sourceMapConsumerPromise","sourceMapSource","string","_parseJson","getMappedLocation","mappedStackFrame","resolveMappedStackFrame","findFunctionName","guessedFunctionName","syntaxes","maxLines","commentPos","_findFunctionName","_ensureSupportedEnvironment","lastSourceMappingUrl","matchSourceMappingUrl","sourceMappingUrlRegExp","_findSourceMappingURL","sourceMapConsumer","loc","mappedSource","_extractLocationInfoFromSourceMapSource","maxStackSize","curr","RegExp","$1","caller","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","filtered","tokens","locationParts","functionNameRegex","parseOpera9","parseOpera11","parseOpera10","lineRE","argsRaw","functionCall","$find","forced","findIndex","endPos","fill","copyWithin","count","inc","NEGATIVE_ZERO","$indexOf","$reduce","reduceRight","$every","$some","$filter","$map","speciesConstructor","$forEach","STRICT","$sort","comparefn","arraySlice","begin","klass","upTo","cloned","arrayJoin","separator","createProperty","of","isArrayIter","getIterFn","arrayLike","mapfn","iterFn","newPromiseCapability","promiseCapability","macrotask","Observer","MutationObserver","WebKitMutationObserver","isNode","head","last","notify","flush","exit","enter","standalone","toggle","characterData","task","un","D","BREAK","RETURN","iterable","forbiddenField","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","onrejectionhandled","$reject","_d","_w","$resolve","executor","onFulfilled","onRejected","capability","remaining","$index","alreadyCalled","race","$iterators","getKeys","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","IE_PROTO","ObjectProto","arrayIndexOf","Properties","dPs","Empty","createDict","iframeDocument","iframe","display","contentWindow","write","lt","close","descriptor","TO_STRING","valueOf","IntersectionObserverEntry","intersectionRatio","registry","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_observationTargets","item","element","nodeType","_registerInstance","_monitorIntersections","_checkForIntersections","_unmonitorIntersections","_unregisterInstance","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","_parseRootMargin","opt_rootMargin","margins","margin","unit","_monitoringIntersections","_monitoringInterval","_domObserver","childList","subtree","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","right","targetRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","performance","boundingClientRect","rootBounds","_hasCrossedThreshold","_callback","getComputedStyle","rect1","rect2","getParentNode","atRoot","parentRect","parentComputedStyle","overflow","_expandRectByRootMargin","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","opt_options","timeout","timer","opt_useCapture","attachEvent","detatchEvent","define","getPolyfill","polyfill","eval","regexExec","gOPD","getOwnPropertyDescriptor","lastIndex","tryRegexExecCall","isPrimitive","isCallable","ES5internalSlots","hint","actualHint","PreferredType","sign","mod","IsCallable","ES5","ToPrimitive","ToBoolean","ToNumber","ToInt32","ToUint32","ToUint16","posInt","ToString","CheckObjectCoercible","optMessage","SameValue","Type","IsPropertyDescriptor","Desc","allowed","[[Configurable]]","[[Enumerable]]","[[Get]]","[[Set]]","[[Value]]","[[Writable]]","isData","IsAccessor","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","ToPropertyDescriptor","Obj","desc","setter","symToStr","symStringRegex","isSymbolObject","getDay","tryDateObject","isDate","isSymbol","exoticToPrim","func","GetMethod","methodNames","ordinaryToPrimitive","bound","boundLength","boundArgs","MAX_SAFE_INTEGER","parseInteger","strSlice","isBinary","isOctal","nonWS","nonWSregex","hasNonWS","isInvalidHexLiteral","ws","trimRegex","hasRegExpMatcher","ES6","Call","V","argument","NaN","trimmed","ToInt16","int16bit","ToInt8","int8bit","ToUint8","ToUint8Clamp","RequireObjectCoercible","ToPropertyKey","CanonicalNumericIndexString","IsArray","IsConstructor","IsExtensible","preventExtensions","isExtensible","IsInteger","IsPropertyKey","IsRegExp","isRegExp","GetV","Get","SpeciesConstructor","defaultConstructor","species","CompletePropertyDescriptor","Set","Throw","HasOwnProperty","HasProperty","IsConcatSpreadable","isConcatSpreadable","spreadable","Invoke","argumentsList","CreateIterResultObject","RegExpExec","ArraySpeciesCreate","originalArray","CreateDataProperty","oldDesc","extensible","newDesc","CreateDataPropertyOrThrow","success","AdvanceStringIndex","unicode","RangeError","hasOwn","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","keysShim","isArguments","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","shim","originalKeys","boundIncludesShim","array","isInteger"],"mappings":"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","file":"story-v3.3.2-a043b036062f82109db7.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 168);\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 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","// 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","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\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","// removed by extract-text-webpack-plugin\nmodule.exports = {\"media\":\"dh-visual-story-xl-media\",\"media--video\":\"dh-visual-story-xl-media--video\",\"ludo-video\":\"dh-visual-story-xl-ludo-video\",\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"ludo-video--is-active\":\"dh-visual-story-xl-ludo-video--is-active\",\"ludo-video--is-horizontal\":\"dh-visual-story-xl-ludo-video--is-horizontal\",\"ludo-video--is-vertical\":\"dh-visual-story-xl-ludo-video--is-vertical\",\"media--horizontal-contain\":\"dh-visual-story-xl-media--horizontal-contain\",\"media--horizontal-cover\":\"dh-visual-story-xl-media--horizontal-cover\",\"media--vertical-contain\":\"dh-visual-story-xl-media--vertical-contain\",\"media--vertical-cover\":\"dh-visual-story-xl-media--vertical-cover\",\"media__verticalVideo\":\"dh-visual-story-xl-media__verticalVideo\",\"media--vertical\":\"dh-visual-story-xl-media--vertical\",\"media__horizontalVideo\":\"dh-visual-story-xl-media__horizontalVideo\",\"media__captions\":\"dh-visual-story-xl-media__captions\",\"media--controlsActive\":\"dh-visual-story-xl-media--controlsActive\",\"media__caption\":\"dh-visual-story-xl-media__caption\"};","// 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","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var core = module.exports = { version: '2.6.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"mediaControls\":\"dh-visual-story-xl-mediaControls\",\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"mediaControls--controlsActive\":\"dh-visual-story-xl-mediaControls--controlsActive\",\"mediaControls__bottom\":\"dh-visual-story-xl-mediaControls__bottom\",\"mediaControls__largePlayButton\":\"dh-visual-story-xl-mediaControls__largePlayButton\",\"mediaControls__togglePlayButton\":\"dh-visual-story-xl-mediaControls__togglePlayButton\",\"mediaControls__muteButton\":\"dh-visual-story-xl-mediaControls__muteButton\",\"mediaControls__scrubber\":\"dh-visual-story-xl-mediaControls__scrubber\",\"scrubber\":\"dh-visual-story-xl-scrubber\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"app\":\"dh-visual-story-xl-app\",\"storyRoot--js\":\"dh-visual-story-xl-storyRoot--js\",\"app__mediaContainer\":\"dh-visual-story-xl-app__mediaContainer\",\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"media\":\"dh-visual-story-xl-media\",\"app--visible\":\"dh-visual-story-xl-app--visible\",\"media--visible\":\"dh-visual-story-xl-media--visible\"};","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\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","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"buttonApp\":\"dh-visual-story-xl-buttonApp\",\"buttonRoot--js\":\"dh-visual-story-xl-buttonRoot--js\",\"audioButton\":\"dh-visual-story-xl-audioButton\",\"audioButton__label\":\"dh-visual-story-xl-audioButton__label\",\"audioButton__button\":\"dh-visual-story-xl-audioButton__button\",\"audioMuteButton\":\"dh-visual-story-xl-audioMuteButton\",\"audioMuteButton__volumeIcon\":\"dh-visual-story-xl-audioMuteButton__volumeIcon\",\"audioMuteButton--muted\":\"dh-visual-story-xl-audioMuteButton--muted\",\"audioMuteButton__mutedIcon\":\"dh-visual-story-xl-audioMuteButton__mutedIcon\"};","/* -*- 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","// 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","// 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","module.exports = {};\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 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","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\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","// removed by extract-text-webpack-plugin\nmodule.exports = {\"scrubber\":\"dh-visual-story-xl-scrubber\",\"scrubber__bgBar\":\"dh-visual-story-xl-scrubber__bgBar\",\"scrubber__bufferedBar\":\"dh-visual-story-xl-scrubber__bufferedBar\",\"scrubber__playedBar\":\"dh-visual-story-xl-scrubber__playedBar\"};","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","// 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","// 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","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"media\":\"dh-visual-story-xl-media\",\"media--videoloop\":\"dh-visual-story-xl-media--videoloop\",\"media__verticalVideo\":\"dh-visual-story-xl-media__verticalVideo\",\"media--vertical\":\"dh-visual-story-xl-media--vertical\",\"media__horizontalVideo\":\"dh-visual-story-xl-media__horizontalVideo\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"wrapper\":\"dh-visual-story-xl-wrapper\",\"inner\":\"dh-visual-story-xl-inner\",\"bubble\":\"dh-visual-story-xl-bubble\"};","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function() {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function() {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function() {\n return this.args;\n },\n setArgs: function(v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n getEvalOrigin: function() {\n return this.evalOrigin;\n },\n setEvalOrigin: function(v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n return function(v) {\n this[p] = Boolean(v);\n };\n })(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n return function(v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n this[p] = Number(v);\n };\n })(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n return function(v) {\n this[p] = String(v);\n };\n })(stringProps[k]);\n }\n\n return StackFrame;\n}));\n","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 document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var 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","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = false;\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","'use strict';\n\nvar fnToStr = Function.prototype.toString;\n\nvar constructorRegex = /^\\s*class /;\nvar isES6ClassFn = function isES6ClassFn(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\tvar singleStripped = fnStr.replace(/\\/\\/.*\\n/g, '');\n\t\tvar multiStripped = singleStripped.replace(/\\/\\*[.\\s\\S]*\\*\\//g, '');\n\t\tvar spaceStripped = multiStripped.replace(/\\n/mg, ' ').replace(/ {2}/g, ' ');\n\t\treturn constructorRegex.test(spaceStripped);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionObject(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n\tif (!value) { return false; }\n\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\tif (hasToStringTag) { return tryFunctionObject(value); }\n\tif (isES6ClassFn(value)) { return false; }\n\tvar strClass = toStr.call(value);\n\treturn strClass === fnClass || strClass === genClass;\n};\n","var bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"horizontal\":\"dh-visual-story-xl-horizontal\",\"vertical\":\"dh-visual-story-xl-vertical\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"media\":\"dh-visual-story-xl-media\",\"media--image\":\"dh-visual-story-xl-media--image\",\"media__image\":\"dh-visual-story-xl-media__image\",\"media__image--darker\":\"dh-visual-story-xl-media__image--darker\",\"media__image--horizontal-cover\":\"dh-visual-story-xl-media__image--horizontal-cover\",\"media__image--horizontal-contain\":\"dh-visual-story-xl-media__image--horizontal-contain\",\"media__image--vertical-cover\":\"dh-visual-story-xl-media__image--vertical-cover\",\"media__image--vertical-contain\":\"dh-visual-story-xl-media__image--vertical-contain\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"placeholderSection\":\"dh-visual-story-xl-placeholderSection\",\"placeholderSection__card\":\"dh-visual-story-xl-placeholderSection__card\",\"placeholderSection--first\":\"dh-visual-story-xl-placeholderSection--first\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"quoteSection\":\"dh-visual-story-xl-quoteSection\",\"storyRoot--js\":\"dh-visual-story-xl-storyRoot--js\",\"quoteSection__card\":\"dh-visual-story-xl-quoteSection__card\",\"app--visible\":\"dh-visual-story-xl-app--visible\",\"quoteSection--invert\":\"dh-visual-story-xl-quoteSection--invert\",\"quoteSection--left\":\"dh-visual-story-xl-quoteSection--left\",\"quoteSection--right\":\"dh-visual-story-xl-quoteSection--right\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"textSection\":\"dh-visual-story-xl-textSection\",\"storyRoot--js\":\"dh-visual-story-xl-storyRoot--js\",\"textSection__card\":\"dh-visual-story-xl-textSection__card\",\"app--visible\":\"dh-visual-story-xl-app--visible\",\"textSection--invert\":\"dh-visual-story-xl-textSection--invert\",\"textSection--left\":\"dh-visual-story-xl-textSection--left\",\"textSection--right\":\"dh-visual-story-xl-textSection--right\",\"textSection--notext\":\"dh-visual-story-xl-textSection--notext\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"storyRoot--noJs\":\"dh-visual-story-xl-storyRoot--noJs\",\"headerSection\":\"dh-visual-story-xl-headerSection\",\"storyRoot--js\":\"dh-visual-story-xl-storyRoot--js\",\"headerSection__card\":\"dh-visual-story-xl-headerSection__card\",\"app--visible\":\"dh-visual-story-xl-app--visible\",\"headerSection--invert\":\"dh-visual-story-xl-headerSection--invert\",\"headerSection--left\":\"dh-visual-story-xl-headerSection--left\",\"headerSection--right\":\"dh-visual-story-xl-headerSection--right\"};","/* -*- 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;\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 = 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 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 = util.toSetString(aStr);\n var isDuplicate = 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 this._set[sStr] = idx;\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 var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\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 var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\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","/* -*- 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","/* -*- 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 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","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\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 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","'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","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\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","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","// 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","// 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';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\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","'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","'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","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: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn Array.prototype.includes || implementation;\n};\n","'use strict';\n\nvar ES = require('es-abstract/es6');\nvar $isNaN = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\nvar $isFinite = Number.isFinite || function isFinite(n) {\n\treturn typeof n === 'number' && global.isFinite(n);\n};\nvar indexOf = Array.prototype.indexOf;\n\nmodule.exports = function includes(searchElement) {\n\tvar fromIndex = arguments.length > 1 ? ES.ToInteger(arguments[1]) : 0;\n\tif (indexOf && !$isNaN(searchElement) && $isFinite(fromIndex) && typeof searchElement !== 'undefined') {\n\t\treturn indexOf.apply(this, arguments) > -1;\n\t}\n\n\tvar O = ES.ToObject(this);\n\tvar length = ES.ToLength(O.length);\n\tif (length === 0) {\n\t\treturn false;\n\t}\n\tvar k = fromIndex >= 0 ? fromIndex : Math.max(0, length + fromIndex);\n\twhile (k < length) {\n\t\tif (ES.SameValueZero(searchElement, O[k])) {\n\t\t\treturn true;\n\t\t}\n\t\tk += 1;\n\t}\n\treturn false;\n};\n","module.exports = function mod(number, modulo) {\n\tvar remain = number % modulo;\n\treturn Math.floor(remain >= 0 ? remain : remain + modulo);\n};\n","module.exports = function sign(number) {\n\treturn number >= 0 ? 1 : -1;\n};\n","var $isNaN = Number.isNaN || function (a) { return a !== a; };\n\nmodule.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; };\n","module.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nmodule.exports = require('./es2015');\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hasSupportCache = void 0;\n\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\n\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n\n var isPlaying = false;\n\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {\n // Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay\n};\n\nexports.testEventPassiveListener = testEventPassiveListener;\nexports.testJs = testJs;\nexports.testObjectFit = testJs$1;\nexports.testPositionSticky = testPositionSticky;\nexports.testVideoAutoPlay = testVideoAutoPlay;\nexports.default = index;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getNRKDimensionsObject(selfId, contextId, title, publishedDate) {\n var isStandalone = selfId === contextId;\n var referrer = document.referrer;\n return {\n // self ID\n dimension1: selfId ? 'pp:' + selfId : null,\n // self title\n dimension2: title || null,\n // published year\n dimension3: publishedDate ? String(publishedDate.getFullYear()) : null,\n // published month\n dimension4: publishedDate ? String(publishedDate.getMonth() + 1) : null,\n // published day\n dimension5: publishedDate ? String(publishedDate.getDate()) : null,\n // referrer without www\n dimension6: referrer.replace(/^(https?:\\/\\/)?www./, '$1'),\n // referrer without www and protocol\n dimension7: referrer.replace(/^(https?:\\/\\/)/, '').replace(/^www./, ''),\n // context id, if not standalone\n dimension10: isStandalone ? null : contextId ? 'pp:' + contextId : null\n };\n}\n\nfunction gaReady() {\n return window.ga;\n}\n\nfunction createNamespacedTracker(trackerName, gaPropertyId) {\n window.ga('create', {\n trackingId: gaPropertyId,\n cookieDomain: 'auto',\n name: trackerName\n });\n window.ga(trackerName + '.set', 'anonymizeIp', true);\n}\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction toGAEvent(event, standardDimensions) {\n var gaEvent = {};\n if (event.hasOwnProperty('category')) {\n gaEvent.eventCategory = event.category;\n }\n if (event.hasOwnProperty('action')) {\n gaEvent.eventAction = event.action;\n }\n if (event.hasOwnProperty('label')) {\n gaEvent.eventLabel = event.label;\n }\n if (event.hasOwnProperty('value')) {\n gaEvent.eventValue = event.value;\n }\n gaEvent.nonInteraction = event.nonInteraction || false;\n\n var additionalFields = _extends({}, standardDimensions, event.fieldsObject);\n\n return _extends({}, gaEvent, additionalFields);\n}\n\nfunction createGoogleAnalyticsTracker(config) {\n var _eventQueue = [];\n var _checkQueueIntervalMs = 1000;\n\n var name = config.name,\n gaPropertyId = config.gaPropertyId,\n self = config.self,\n context = config.context;\n\n\n if (!name || !gaPropertyId || !self || !context) {\n throw new Error('Unable to create google analytics tracker. Please pass an object containing name, gaPropertyId, self and context to createGoogleAnalyticsTracker method');\n }\n\n var standardDimensions = getNRKDimensionsObject(self.id, context.id, self.title, self.publishedDate);\n var handleEvent = createHandleEventFn(_eventQueue);\n\n // handle queued events *once* when ga is ready\n var intervalId = setInterval(function () {\n if (gaReady()) {\n clearInterval(intervalId);\n // empty queue\n while (_eventQueue.length) {\n var event = _eventQueue.shift();\n handleEvent(name, gaPropertyId, event, standardDimensions);\n }\n }\n }, _checkQueueIntervalMs);\n\n // return an object with method 'sendEvent'\n return {\n sendEvent: function sendEvent(event) {\n handleEvent(name, gaPropertyId, event, standardDimensions);\n }\n };\n}\n\nfunction createHandleEventFn(eventQueue) {\n // flag to prevent tracker from being created more than once\n var trackerCreated = false;\n\n return function handleEvent(trackerName, gaPropertyId, event, standardDimensions, isQueued) {\n if (!event.category || !event.action) {\n throw new Error('Error sending event to google analytics: Event is missing mandatory fields category and/or action');\n }\n if (!gaReady()) {\n eventQueue.push(event);\n return;\n }\n if (!trackerCreated) {\n createNamespacedTracker(trackerName, gaPropertyId);\n trackerCreated = true;\n }\n window.ga(trackerName + '.send', 'event', toGAEvent(event, standardDimensions));\n };\n}\n\nexports.createGoogleAnalyticsTracker = createGoogleAnalyticsTracker;\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace', ['error-stack-parser', 'stack-generator', 'stacktrace-gps'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('error-stack-parser'), require('stack-generator'), require('stacktrace-gps'));\n } else {\n root.StackTrace = factory(root.ErrorStackParser, root.StackGenerator, root.StackTraceGPS);\n }\n}(this, function StackTrace(ErrorStackParser, StackGenerator, StackTraceGPS) {\n var _options = {\n filter: function(stackframe) {\n // Filter out stackframes for this library by default\n return (stackframe.functionName || '').indexOf('StackTrace$$') === -1 &&\n (stackframe.functionName || '').indexOf('ErrorStackParser$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackTraceGPS$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackGenerator$$') === -1;\n },\n sourceCache: {}\n };\n\n var _generateError = function StackTrace$$GenerateError() {\n try {\n // Error must be thrown to get stack in IE\n throw new Error();\n } catch (err) {\n return err;\n }\n };\n\n /**\n * Merge 2 given Objects. If a conflict occurs the second object wins.\n * Does not do deep merges.\n *\n * @param {Object} first base object\n * @param {Object} second overrides\n * @returns {Object} merged first and second\n * @private\n */\n function _merge(first, second) {\n var target = {};\n\n [first, second].forEach(function(obj) {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n target[prop] = obj[prop];\n }\n }\n return target;\n });\n\n return target;\n }\n\n function _isShapedLikeParsableError(err) {\n return err.stack || err['opera#sourceloc'];\n }\n\n function _filtered(stackframes, filter) {\n if (typeof filter === 'function') {\n return stackframes.filter(filter);\n }\n return stackframes;\n }\n\n return {\n /**\n * Get a backtrace from invocation point.\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n get: function StackTrace$$get(opts) {\n var err = _generateError();\n return _isShapedLikeParsableError(err) ? this.fromError(err, opts) : this.generateArtificially(opts);\n },\n\n /**\n * Get a backtrace from invocation point.\n * IMPORTANT: Does not handle source maps or guess function names!\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n getSync: function StackTrace$$getSync(opts) {\n opts = _merge(_options, opts);\n var err = _generateError();\n var stack = _isShapedLikeParsableError(err) ? ErrorStackParser.parse(err) : StackGenerator.backtrace(opts);\n return _filtered(stack, opts.filter);\n },\n\n /**\n * Given an error object, parse it.\n *\n * @param {Error} error object\n * @param {Object} opts\n * @returns {Promise} for Array[StackFrame}\n */\n fromError: function StackTrace$$fromError(error, opts) {\n opts = _merge(_options, opts);\n var gps = new StackTraceGPS(opts);\n return new Promise(function(resolve) {\n var stackframes = _filtered(ErrorStackParser.parse(error), opts.filter);\n resolve(Promise.all(stackframes.map(function(sf) {\n return new Promise(function(resolve) {\n function resolveOriginal() {\n resolve(sf);\n }\n\n gps.pinpoint(sf).then(resolve, resolveOriginal)['catch'](resolveOriginal);\n });\n })));\n }.bind(this));\n },\n\n /**\n * Use StackGenerator to generate a backtrace.\n *\n * @param {Object} opts\n * @returns {Promise} of Array[StackFrame]\n */\n generateArtificially: function StackTrace$$generateArtificially(opts) {\n opts = _merge(_options, opts);\n var stackFrames = StackGenerator.backtrace(opts);\n if (typeof opts.filter === 'function') {\n stackFrames = stackFrames.filter(opts.filter);\n }\n return Promise.resolve(stackFrames);\n },\n\n /**\n * Given a function, wrap it such that invocations trigger a callback that\n * is called with a stack trace.\n *\n * @param {Function} fn to be instrumented\n * @param {Function} callback function to call with a stack trace on invocation\n * @param {Function} errback optional function to call with error if unable to get stack trace.\n * @param {Object} thisArg optional context object (e.g. window)\n */\n instrument: function StackTrace$$instrument(fn, callback, errback, thisArg) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n // Already instrumented, return given Function\n return fn;\n }\n\n var instrumented = function StackTrace$$instrumented() {\n try {\n this.get().then(callback, errback)['catch'](errback);\n return fn.apply(thisArg || this, arguments);\n } catch (e) {\n if (_isShapedLikeParsableError(e)) {\n this.fromError(e).then(callback, errback)['catch'](errback);\n }\n throw e;\n }\n }.bind(this);\n instrumented.__stacktraceOriginalFn = fn;\n\n return instrumented;\n },\n\n /**\n * Given a function that has been instrumented,\n * revert the function to it's original (non-instrumented) state.\n *\n * @param {Function} fn to de-instrument\n */\n deinstrument: function StackTrace$$deinstrument(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot de-instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n return fn.__stacktraceOriginalFn;\n } else {\n // Function not instrumented, return original\n return fn;\n }\n },\n\n /**\n * Given an error message and Array of StackFrames, serialize and POST to given URL.\n *\n * @param {Array} stackframes\n * @param {String} url\n * @param {String} errorMsg\n * @param {Object} requestOptions\n */\n report: function StackTrace$$report(stackframes, url, errorMsg, requestOptions) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if (req.status >= 200 && req.status < 400) {\n resolve(req.responseText);\n } else {\n reject(new Error('POST to ' + url + ' failed with status: ' + req.status));\n }\n }\n };\n req.open('post', url);\n\n // Set request headers\n req.setRequestHeader('Content-Type', 'application/json');\n if (requestOptions && typeof requestOptions.headers === 'object') {\n var headers = requestOptions.headers;\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n var reportPayload = {stack: stackframes};\n if (errorMsg !== undefined && errorMsg !== null) {\n reportPayload.message = errorMsg;\n }\n\n req.send(JSON.stringify(reportPayload));\n });\n }\n };\n}));\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"simple-error-report\"]={})}(this,function(e){\"use strict\";var n=function(){function e(e,n){for(var r=0;r0}}]),e}(),t=Object.assign||function(e){for(var n=1;n0&&(a.line=o),s>0&&(a.column=s),n.error&&\"function\"==typeof e.parseStack?e.parseStack(n.error).then(function(n){e.sendErrorReport(t({},a,{stackTrace:n}))}):e.sendErrorReport(a)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=s,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","// removed by extract-text-webpack-plugin\nmodule.exports = {\"muteButton\":\"dh-visual-story-xl-muteButton\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"togglePlayButton\":\"dh-visual-story-xl-togglePlayButton\"};","// removed by extract-text-webpack-plugin\nmodule.exports = {\"largePlayButton\":\"dh-visual-story-xl-largePlayButton\"};","'use strict'\n\nfunction ParserError (message, error) {\n this.message = message\n this.error = error\n}\nParserError.prototype = Object.create(Error.prototype)\n\nconst TIMESTAMP_REGEXP = /([0-9]{1,2})?:?([0-9]{2}):([0-9]{2}\\.[0-9]{3})/\n\nfunction parse (input) {\n if (typeof input !== 'string') {\n throw new ParserError('Input must be a string')\n }\n\n input = input.replace(/\\r\\n/g, '\\n')\n input = input.replace(/\\r/g, '\\n')\n\n const parts = input.split('\\n\\n')\n\n const header = parts.shift()\n\n if (!header.startsWith('WEBVTT')) {\n throw new ParserError('Must start with \"WEBVTT\"')\n }\n\n const headerParts = header.split('\\n')\n\n // nothing of interests, return early\n if (parts.length === 0 && headerParts.length === 1) {\n return { valid: true }\n }\n\n if (headerParts.length > 1 && headerParts[1] !== '') {\n throw new ParserError('No blank line after signature')\n }\n\n const cues = parseCues(parts)\n\n return { valid: true, cues }\n}\n\nfunction parseCues (cues) {\n return cues.map(parseCue)\n}\n\nfunction parseCue (cue, i) {\n let identifier = ''\n let start = 0\n let end = 0\n let text = ''\n let styles = ''\n\n // split and remove empty lines\n const lines = cue.split('\\n').filter(Boolean)\n\n if (lines.length === 1 && !lines[0].includes('-->')) {\n throw new ParserError(`Cue identifier cannot be standalone (cue #${i})`)\n }\n\n if (lines.length > 1 && !(lines[0].includes('-->') || lines[1].includes('-->'))) {\n const msg = `Cue identifier needs to be followed by timestamp (cue #${i})`\n throw new ParserError(msg)\n }\n\n if (lines.length > 1 && lines[1].includes('-->')) {\n identifier = lines.shift()\n }\n\n if (lines.length > 0 && lines[0].includes('-->')) {\n const times = lines[0].split(' --> ')\n\n if (times.length !== 2 || !validTimestamp(times[0]) || !validTimestamp(times[1])) {\n throw new ParserError(`Invalid cue timestamp (cue #${i})`)\n }\n\n start = parseTimestamp(times[0])\n end = parseTimestamp(times[1])\n\n if (start > end) {\n throw new ParserError(`Start timestamp greater than end (cue #${i})`)\n }\n\n if (end <= start) {\n throw new ParserError(`End must be greater than start (cue #${i})`)\n }\n\n // TODO better style validation\n styles = times[1].replace(TIMESTAMP_REGEXP, '').trim()\n\n lines.shift()\n }\n\n text = lines.join('\\n')\n\n return { identifier, start, end, text, styles }\n}\n\nfunction validTimestamp (timestamp) {\n return TIMESTAMP_REGEXP.test(timestamp)\n}\n\nfunction parseTimestamp (timestamp) {\n const matches = timestamp.match(TIMESTAMP_REGEXP)\n\n let secs = parseFloat(matches[3])\n secs += parseFloat(matches[2]) * 60 // mins\n secs += parseFloat(matches[1] || 0) * 60 * 60 // hours\n return secs\n}\n\nmodule.exports = { ParserError, parse }\n","/*! @preserve sweet-scroll v3.0.1 - tsuyoshiwada | MIT License */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global.SweetScroll = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n\r\n var __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 };\n\n // @link https://github.com/JedWatson/exenv/blob/master/index.js\n var canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n var canUseHistory = !canUseDOM\n ? false\n : (window.history &&\n 'pushState' in window.history &&\n window.location.protocol !== 'file:');\n var canUsePassiveOption = (function () {\n var support = false;\n if (!canUseDOM) {\n return support;\n }\n /* tslint:disable:no-empty */\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () {\n support = true;\n },\n }));\n }\n catch (e) { }\n /* tslint:enable */\n return support;\n })();\n\n var isString = function (obj) { return typeof obj === 'string'; };\n var isFunction = function (obj) { return typeof obj === 'function'; };\n var isArray = function (obj) { return Array.isArray(obj); };\n var isNumeric = function (obj) { return !isArray(obj) && ((obj - parseFloat(obj)) + 1) >= 0; };\n var isElement = function (obj) { return obj instanceof Element; };\n var hasProp = function (obj, key) { return (obj && obj.hasOwnProperty(key)); };\n\n var raf = canUseDOM ? window.requestAnimationFrame.bind(window) : null;\n var caf = canUseDOM ? window.cancelAnimationFrame.bind(window) : null;\n\n /* tslint:disable:curly */\n /* tslint:disable:no-conditional-assignment */\n var cos = Math.cos, sin = Math.sin, pow = Math.pow, sqrt = Math.sqrt, PI = Math.PI;\n var easings = {\n linear: function (p) { return p; },\n easeInQuad: function (_, t, b, c, d) { return (c * (t /= d) * t + b); },\n easeOutQuad: function (_, t, b, c, d) { return (-c * (t /= d) * (t - 2) + b); },\n easeInOutQuad: function (_, t, b, c, d) { return ((t /= d / 2) < 1 ? c / 2 * t * t + b : -c / 2 * ((--t) * (t - 2) - 1) + b); },\n easeInCubic: function (_, t, b, c, d) { return (c * (t /= d) * t * t + b); },\n easeOutCubic: function (_, t, b, c, d) { return (c * ((t = t / d - 1) * t * t + 1) + b); },\n easeInOutCubic: function (_, t, b, c, d) { return ((t /= d / 2) < 1 ? c / 2 * t * t * t + b : c / 2 * ((t -= 2) * t * t + 2) + b); },\n easeInQuart: function (_, t, b, c, d) { return (c * (t /= d) * t * t * t + b); },\n easeOutQuart: function (_, t, b, c, d) { return (-c * ((t = t / d - 1) * t * t * t - 1) + b); },\n easeInOutQuart: function (_, t, b, c, d) { return ((t /= d / 2) < 1 ? c / 2 * t * t * t * t + b : -c / 2 * ((t -= 2) * t * t * t - 2) + b); },\n easeInQuint: function (_, t, b, c, d) { return (c * (t /= d) * t * t * t * t + b); },\n easeOutQuint: function (_, t, b, c, d) { return (c * ((t = t / d - 1) * t * t * t * t + 1) + b); },\n easeInOutQuint: function (_, t, b, c, d) { return ((t /= d / 2) < 1 ? c / 2 * t * t * t * t * t + b : c / 2 * ((t -= 2) * t * t * t * t + 2) + b); },\n easeInSine: function (_, t, b, c, d) { return (-c * cos(t / d * (PI / 2)) + c + b); },\n easeOutSine: function (_, t, b, c, d) { return (c * sin(t / d * (PI / 2)) + b); },\n easeInOutSine: function (_, t, b, c, d) { return (-c / 2 * (cos(PI * t / d) - 1) + b); },\n easeInExpo: function (_, t, b, c, d) { return ((t === 0) ? b : c * pow(2, 10 * (t / d - 1)) + b); },\n easeOutExpo: function (_, t, b, c, d) { return ((t === d) ? b + c : c * (-pow(2, -10 * t / d) + 1) + b); },\n easeInOutExpo: function (_, t, b, c, d) {\n if (t === 0)\n return b;\n if (t === d)\n return b + c;\n if ((t /= d / 2) < 1)\n return c / 2 * pow(2, 10 * (t - 1)) + b;\n return c / 2 * (-pow(2, -10 * --t) + 2) + b;\n },\n easeInCirc: function (_, t, b, c, d) { return (-c * (sqrt(1 - (t /= d) * t) - 1) + b); },\n easeOutCirc: function (_, t, b, c, d) { return (c * sqrt(1 - (t = t / d - 1) * t) + b); },\n easeInOutCirc: function (_, t, b, c, d) { return ((t /= d / 2) < 1 ? -c / 2 * (sqrt(1 - t * t) - 1) + b : c / 2 * (sqrt(1 - (t -= 2) * t) + 1) + b); },\n };\n\n var directionMethodMap = {\n y: 'scrollTop',\n x: 'scrollLeft',\n };\n var directionPropMap = {\n y: 'pageYOffset',\n x: 'pageXOffset',\n };\n var getScroll = function ($el, direction) { return ($el[directionMethodMap[direction]]); };\n var setScroll = function ($el, offset, direction) {\n $el[directionMethodMap[direction]] = offset;\n };\n var getOffset = function ($el, $context) {\n var rect = $el.getBoundingClientRect();\n if (rect.width || rect.height) {\n var scroll_1 = { top: 0, left: 0 };\n var $ctx = void 0;\n if (isRootContainer($context)) {\n $ctx = document.documentElement;\n scroll_1.top = window[directionPropMap.y];\n scroll_1.left = window[directionPropMap.x];\n }\n else {\n $ctx = $context;\n var cRect = $ctx.getBoundingClientRect();\n scroll_1.top = (cRect.top * -1) + $ctx[directionMethodMap.y];\n scroll_1.left = (cRect.left * -1) + $ctx[directionMethodMap.x];\n }\n return {\n top: (rect.top + scroll_1.top) - $ctx.clientTop,\n left: (rect.left + scroll_1.left) - $ctx.clientLeft,\n };\n }\n return rect;\n };\n\n var $$ = function (selector) { return (Array.prototype.slice.call((!selector ? [] : document.querySelectorAll(selector)))); };\n var $ = function (selector) { return ($$(selector).shift() || null); };\n var matches = function ($el, selector) {\n if (isElement(selector)) {\n return $el === selector;\n }\n var results = $$(selector);\n var i = results.length;\n // tslint:disable-next-line no-empty\n while (--i >= 0 && results[i] !== $el) { }\n return i > -1;\n };\n var isRootContainer = function ($el) { return ($el === document.documentElement || $el === document.body); };\n var findScrollable = function (selectors, direction) {\n var method = directionMethodMap[direction];\n var $elements = isElement(selectors) ? [selectors] : $$(selectors);\n var $div = document.createElement('div');\n for (var i = 0; i < $elements.length; i += 1) {\n var $el = $elements[i];\n var $result = null;\n if ($el[method] > 0) {\n $result = $el;\n }\n else {\n var outerWidth_1 = window.outerWidth, innerWidth_1 = window.innerWidth;\n var zoom = outerWidth_1 ? outerWidth_1 / innerWidth_1 : 1;\n $div.style.width = $el.clientWidth + 1 + \"px\";\n $div.style.height = $el.clientHeight + 1 + \"px\";\n $el.appendChild($div);\n $el[method] = Math.max(1, 1.5 / zoom);\n if ($el[method] > 0) {\n $result = $el;\n }\n $el[method] = 0;\n $el.removeChild($div);\n }\n if ($result) {\n return $result;\n }\n }\n return null;\n };\n\n var getHeight = function ($el) { return (Math.max($el.scrollHeight, $el.clientHeight, $el.offsetHeight)); };\n var getWidth = function ($el) { return (Math.max($el.scrollWidth, $el.clientWidth, $el.offsetWidth)); };\n var getSize = function ($el) { return ({\n width: getWidth($el),\n height: getHeight($el),\n }); };\n var getViewportAndElementSizes = function ($el) {\n var isRoot = isRootContainer($el);\n return {\n viewport: {\n width: isRoot\n ? Math.min(window.innerWidth, document.documentElement.clientWidth)\n : $el.clientWidth,\n height: isRoot ? window.innerHeight : $el.clientHeight,\n },\n size: isRoot\n ? {\n width: Math.max(getWidth(document.body), getWidth(document.documentElement)),\n height: Math.max(getHeight(document.body), getHeight(document.documentElement)),\n }\n : getSize($el),\n };\n };\n\n var wheelEventName = (function () {\n if (!canUseDOM) {\n return 'wheel';\n }\n return 'onwheel' in document ? 'wheel' : 'mousewheel';\n })();\n var eventName = function (name) { return (name === 'wheel' ? wheelEventName : name); };\n var apply = function ($el, method, event, listener, passive) {\n event.split(' ').forEach(function (name) {\n $el[method](eventName(name), listener, canUsePassiveOption ? { passive: passive } : false);\n });\n };\n var addEvent = function ($el, event, listener, passive) {\n apply($el, 'addEventListener', event, listener, passive);\n };\n var removeEvent = function ($el, event, listener, passive) {\n apply($el, 'removeEventListener', event, listener, passive);\n };\n\n var reRelativeToken = /^(\\+|-)=(\\d+(?:\\.\\d+)?)$/;\n var parseCoordinate = function (coordinate, enableVertical) {\n var res = { top: 0, left: 0, relative: false };\n // Object ({ top: {n}, left: {n} })\n if (hasProp(coordinate, 'top') || hasProp(coordinate, 'left')) {\n res = __assign({}, res, coordinate);\n // Array ([{n}, [{n}])\n }\n else if (isArray(coordinate)) {\n if (coordinate.length > 1) {\n res.top = coordinate[0];\n res.left = coordinate[1];\n }\n else if (coordinate.length === 1) {\n res.top = enableVertical ? coordinate[0] : 0;\n res.left = !enableVertical ? coordinate[0] : 0;\n }\n else {\n return null;\n }\n // Number\n }\n else if (isNumeric(coordinate)) {\n if (enableVertical) {\n res.top = coordinate;\n }\n else {\n res.left = coordinate;\n }\n // String ('+={n}', '-={n}')\n }\n else if (isString(coordinate)) {\n var m = coordinate.trim().match(reRelativeToken);\n if (!m) {\n return null;\n }\n var op = m[1];\n var val = parseInt(m[2], 10);\n if (op === '+') {\n res.top = enableVertical ? val : 0;\n res.left = !enableVertical ? val : 0;\n }\n else {\n res.top = enableVertical ? -val : 0;\n res.left = !enableVertical ? -val : 0;\n }\n res.relative = true;\n }\n else {\n return null;\n }\n return res;\n };\n\n var defaultOptions = {\n trigger: '[data-scroll]',\n header: '[data-scroll-header]',\n duration: 1000,\n easing: 'easeOutQuint',\n offset: 0,\n vertical: true,\n horizontal: false,\n cancellable: true,\n updateURL: false,\n preventDefault: true,\n stopPropagation: true,\n quickMode: false,\n // Callbacks\n before: null,\n after: null,\n cancel: null,\n complete: null,\n step: null,\n };\n\n var CONTAINER_CLICK_EVENT = 'click';\n var CONTAINER_STOP_EVENT = 'wheel touchstart touchmove';\n var SweetScroll = /** @class */ (function () {\n /**\n * Constructor\n */\n function SweetScroll(options, container) {\n var _this = this;\n this.ctx = {\n $trigger: null,\n opts: null,\n progress: false,\n pos: null,\n startPos: null,\n easing: null,\n start: 0,\n id: 0,\n cancel: false,\n hash: null,\n };\n /**\n * Handle each frame of the animation.\n */\n this.loop = function (time) {\n var _a = _this, $el = _a.$el, ctx = _a.ctx;\n if (!ctx.start) {\n ctx.start = time;\n }\n if (!ctx.progress || !$el) {\n _this.stop();\n return;\n }\n var options = ctx.opts;\n var offset = ctx.pos;\n var start = ctx.start;\n var startOffset = ctx.startPos;\n var easing = ctx.easing;\n var duration = options.duration;\n var directionMap = { top: 'y', left: 'x' };\n var timeElapsed = time - start;\n var t = Math.min(1, Math.max(timeElapsed / duration, 0));\n Object.keys(offset).forEach(function (key) {\n var value = offset[key];\n var initial = startOffset[key];\n var delta = value - initial;\n if (delta !== 0) {\n var val = easing(t, duration * t, 0, 1, duration);\n setScroll($el, Math.round(initial + delta * val), directionMap[key]);\n }\n });\n if (timeElapsed <= duration) {\n _this.hook(options, 'step', t);\n ctx.id = SweetScroll.raf(_this.loop);\n }\n else {\n _this.stop(true);\n }\n };\n /**\n * Handling of container click event.\n */\n this.handleClick = function (e) {\n var opts = _this.opts;\n var $el = e.target;\n for (; $el && $el !== document; $el = $el.parentNode) {\n if (!matches($el, opts.trigger)) {\n continue;\n }\n var dataOptions = JSON.parse($el.getAttribute('data-scroll-options') || '{}');\n var data = $el.getAttribute('data-scroll');\n var to = data || $el.getAttribute('href');\n var options = __assign({}, opts, dataOptions);\n var preventDefault = options.preventDefault, stopPropagation = options.stopPropagation, vertical = options.vertical, horizontal = options.horizontal;\n if (preventDefault) {\n e.preventDefault();\n }\n if (stopPropagation) {\n e.stopPropagation();\n }\n // Passes the trigger element to callback\n _this.ctx.$trigger = $el;\n if (horizontal && vertical) {\n _this.to(to, options);\n }\n else if (vertical) {\n _this.toTop(to, options);\n }\n else if (horizontal) {\n _this.toLeft(to, options);\n }\n }\n };\n /**\n * Handling of container stop events.\n */\n this.handleStop = function (e) {\n var ctx = _this.ctx;\n var opts = ctx.opts;\n if (opts && opts.cancellable) {\n ctx.cancel = true;\n _this.stop();\n }\n else {\n e.preventDefault();\n }\n };\n var opts = __assign({}, defaultOptions, (options || {}));\n var vertical = opts.vertical, horizontal = opts.horizontal;\n var selector = container === undefined ? 'body,html' : container;\n var $container = null;\n if (canUseDOM) {\n if (vertical) {\n $container = findScrollable(selector, 'y');\n }\n if (!$container && horizontal) {\n $container = findScrollable(selector, 'x');\n }\n }\n if ($container) {\n this.opts = opts;\n this.$el = $container;\n this.bind(true, false);\n }\n }\n /**\n * SweetScroll instance factory.\n */\n SweetScroll.create = function (options, container) {\n return new SweetScroll(options, container);\n };\n /**\n * Scroll animation to the specified position.\n */\n SweetScroll.prototype.to = function (distance, options) {\n if (!canUseDOM) {\n return;\n }\n var _a = this, $el = _a.$el, ctx = _a.ctx, currentOptions = _a.opts;\n var $trigger = ctx.$trigger;\n var opts = __assign({}, currentOptions, options || {});\n var optOffset = opts.offset, vertical = opts.vertical, horizontal = opts.horizontal;\n var $header = isElement(opts.header) ? opts.header : $(opts.header);\n var hash = isString(distance) && /^#/.test(distance) ? distance : null;\n ctx.opts = opts; // Temporary options\n ctx.cancel = false; // Disable the call flag of `cancel`\n ctx.hash = hash;\n // Stop current animation\n this.stop();\n // Does not move if the container is not found\n if (!$el) {\n return;\n }\n // Get scroll offset\n var offset = parseCoordinate(optOffset, vertical);\n var coordinate = parseCoordinate(distance, vertical);\n var scroll = { top: 0, left: 0 };\n if (coordinate) {\n if (coordinate.relative) {\n var current = getScroll($el, vertical ? 'y' : 'x');\n scroll.top = vertical ? current + coordinate.top : coordinate.top;\n scroll.left = !vertical ? current + coordinate.left : coordinate.left;\n }\n else {\n scroll = coordinate;\n }\n }\n else if (isString(distance) && distance !== '#') {\n var $target = $(distance);\n if (!$target) {\n return;\n }\n scroll = getOffset($target, $el);\n }\n if (offset) {\n scroll.top += offset.top;\n scroll.left += offset.left;\n }\n if ($header) {\n scroll.top = Math.max(0, scroll.top - getSize($header).height);\n }\n // Normalize scroll offset\n var _b = getViewportAndElementSizes($el), viewport = _b.viewport, size = _b.size;\n scroll.top = vertical\n ? Math.max(0, Math.min(size.height - viewport.height, scroll.top))\n : getScroll($el, 'y');\n scroll.left = horizontal\n ? Math.max(0, Math.min(size.width - viewport.width, scroll.left))\n : getScroll($el, 'x');\n // Call `before`\n // Stop scrolling when it returns false\n if (this.hook(opts, 'before', scroll, $trigger) === false) {\n ctx.opts = null;\n return;\n }\n // Set offset\n ctx.pos = scroll;\n // Run animation!!\n this.start(opts);\n // Bind stop events\n this.bind(false, true);\n };\n /**\n * Scroll animation to specified left position.\n */\n SweetScroll.prototype.toTop = function (distance, options) {\n this.to(distance, __assign({}, options || {}, { vertical: true, horizontal: false }));\n };\n /**\n * Scroll animation to specified top position.\n */\n SweetScroll.prototype.toLeft = function (distance, options) {\n this.to(distance, __assign({}, options || {}, { vertical: false, horizontal: true }));\n };\n /**\n * Scroll animation to specified element.\n */\n SweetScroll.prototype.toElement = function ($element, options) {\n var $el = this.$el;\n if (!canUseDOM || !$el) {\n return;\n }\n this.to(getOffset($element, $el), options || {});\n };\n /**\n * Stop the current scroll animation.\n */\n SweetScroll.prototype.stop = function (gotoEnd) {\n if (gotoEnd === void 0) { gotoEnd = false; }\n var _a = this, $el = _a.$el, ctx = _a.ctx;\n var pos = ctx.pos;\n if (!$el || !ctx.progress) {\n return;\n }\n SweetScroll.caf(ctx.id);\n ctx.progress = false;\n ctx.start = 0;\n ctx.id = 0;\n if (gotoEnd && pos) {\n setScroll($el, pos.left, 'x');\n setScroll($el, pos.top, 'y');\n }\n this.complete();\n };\n /**\n * Update options.\n */\n SweetScroll.prototype.update = function (options) {\n if (this.$el) {\n var opts = __assign({}, this.opts, options);\n this.stop();\n this.unbind(true, true);\n this.opts = opts;\n this.bind(true, false);\n }\n };\n /**\n * Destroy instance.\n */\n SweetScroll.prototype.destroy = function () {\n if (this.$el) {\n this.stop();\n this.unbind(true, true);\n this.$el = null;\n }\n };\n /**\n * Callback methods.\n */\n /* tslint:disable:no-empty */\n SweetScroll.prototype.onBefore = function (_, __) { return true; };\n SweetScroll.prototype.onStep = function (_) { };\n SweetScroll.prototype.onAfter = function (_, __) { };\n SweetScroll.prototype.onCancel = function () { };\n SweetScroll.prototype.onComplete = function (_) { };\n /* tslint:enable */\n /**\n * Start scrolling animation.\n */\n SweetScroll.prototype.start = function (opts) {\n var ctx = this.ctx;\n ctx.opts = opts;\n ctx.progress = true;\n ctx.easing = isFunction(opts.easing)\n ? opts.easing\n : easings[opts.easing];\n // Update start offset.\n var $container = this.$el;\n var offset = ctx.pos;\n var start = {\n top: getScroll($container, 'y'),\n left: getScroll($container, 'x'),\n };\n if (opts.quickMode) {\n var _a = getViewportAndElementSizes($container).viewport, width = _a.width, height = _a.height;\n if (Math.abs(start.top - offset.top) > height) {\n start.top = start.top > offset.top ? offset.top + height : offset.top - height;\n }\n if (Math.abs(start.left - offset.left) > width) {\n start.left = start.left > offset.left ? offset.left + width : offset.left - width;\n }\n }\n ctx.startPos = start;\n // Loop\n ctx.id = SweetScroll.raf(this.loop);\n };\n /**\n * Handle the completion of scrolling animation.\n */\n SweetScroll.prototype.complete = function () {\n var _a = this, $el = _a.$el, ctx = _a.ctx;\n var hash = ctx.hash, cancel = ctx.cancel, opts = ctx.opts, pos = ctx.pos, $trigger = ctx.$trigger;\n if (!$el || !opts) {\n return;\n }\n if (hash != null && hash !== window.location.hash) {\n var updateURL = opts.updateURL;\n if (canUseDOM && canUseHistory && updateURL !== false) {\n window.history[updateURL === 'replace' ? 'replaceState' : 'pushState'](null, '', hash);\n }\n }\n this.unbind(false, true);\n ctx.opts = null;\n ctx.$trigger = null;\n if (cancel) {\n this.hook(opts, 'cancel');\n }\n else {\n this.hook(opts, 'after', pos, $trigger);\n }\n this.hook(opts, 'complete', cancel);\n };\n /**\n * Callback function and method call.\n */\n SweetScroll.prototype.hook = function (options, type) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var callback = options[type];\n var callbackResult;\n var methodResult;\n // callback\n if (isFunction(callback)) {\n callbackResult = callback.apply(this, args.concat([this]));\n }\n // method\n methodResult = this[\"on\" + (type[0].toUpperCase() + type.slice(1))].apply(this, args);\n return callbackResult !== undefined ? callbackResult : methodResult;\n };\n /**\n * Bind events of container element.\n */\n SweetScroll.prototype.bind = function (click, stop) {\n var _a = this, $el = _a.$el, opts = _a.ctx.opts;\n if ($el) {\n if (click) {\n addEvent($el, CONTAINER_CLICK_EVENT, this.handleClick, false);\n }\n if (stop) {\n addEvent($el, CONTAINER_STOP_EVENT, this.handleStop, opts ? opts.cancellable : true);\n }\n }\n };\n /**\n * Unbind events of container element.\n */\n SweetScroll.prototype.unbind = function (click, stop) {\n var _a = this, $el = _a.$el, opts = _a.ctx.opts;\n if ($el) {\n if (click) {\n removeEvent($el, CONTAINER_CLICK_EVENT, this.handleClick, false);\n }\n if (stop) {\n removeEvent($el, CONTAINER_STOP_EVENT, this.handleStop, opts ? opts.cancellable : true);\n }\n }\n };\n /**\n * You can set Polyfill (or Ponyfill) for browsers that do not support requestAnimationFrame.\n */\n SweetScroll.raf = raf;\n SweetScroll.caf = caf;\n return SweetScroll;\n }());\n\n return SweetScroll;\n\n})));\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;nHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\t// if a \"vnode hook\" is defined, pass every created VNode to it\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {\n\t\t// ignore\n\t} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\tsetProperty(node, name, value == null ? '' : value);\n\t\tif (value == null || value === false) node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n\ttry {\n\t\tnode[name] = value;\n\t} catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\t// diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n\tif (!diffLevel++) {\n\t\t// when first starting the diff, check if we're diffing an SVG or within an SVG\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\t// hydration is indicated by the existing element to be diffed not having a prop cache\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\t// append the element if its a new parent\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\t// diffLevel being reduced to 0 means we're exiting the diff\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\t\t// invoke queued componentDidMount lifecycle methods\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\t// empty values (null, undefined, booleans) render as empty Text nodes\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\t// Fast case: Strings & Numbers create/update Text nodes.\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\n\t\t// update if it's already a Text node:\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\t/* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\t// it wasn't a Text node: replace it with one and recycle the old Element\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\t// If the VNode represents a Component, perform a component diff:\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\t// If there's no existing element or it's the wrong type, create a new one:\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\t// move children into the replacement node\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t} // if the previous Element was mounted into the DOM, replace it inline\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\t// recycle the old element (skips non-Element node types)\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\t// Optimization: fast-path for elements containing a single TextNode:\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t}\n\t// otherwise, if there are existing or new children, diff them:\n\telse if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\t// Apply attributes/props from VNode to the DOM Element:\n\tdiffAttributes(out, vnode.attributes, props);\n\n\t// restore previous SVG mode: (in case we're exiting an SVG namespace)\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\t// Build up a map of keyed children and an Array of unkeyed children:\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\t// attempt to find a node based on key matching\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// attempt to pluck a node of the same type from the existing children\n\t\t\telse if (!child && min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// morph the matched/found/created DOM child to match vchild (deep)\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// remove unused keyed children:\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\t// remove orphaned unkeyed children:\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\t// if node is owned by a Component, unmount that component (ends up recursing back here)\n\t\tunmountComponent(component);\n\t} else {\n\t\t// If the node's VNode had a ref function, invoke it with null here.\n\t\t// (this is part of the React spec, and smart for unsetting references)\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\t// remove attributes no longer present on the vnode by setting them to undefined\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\t// add new & update changed attributes\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n\tvar name = component.constructor.name;\n\t(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context) {\n\tvar list = components[Ctor.name],\n\t inst;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\tif (list) {\n\t\tfor (var i = list.length; i--;) {\n\t\t\tif (list[i].constructor === Ctor) {\n\t\t\t\tinst.nextBase = list[i].nextBase;\n\t\t\t\tlist.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tif (component.__ref = props.ref) delete props.ref;\n\tif (component.__key = props.key) delete props.key;\n\n\tif (!component.base || mountAll) {\n\t\tif (component.componentWillMount) component.componentWillMount();\n\t} else if (component.componentWillReceiveProps) {\n\t\tcomponent.componentWillReceiveProps(props, context);\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (opts !== 0) {\n\t\tif (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t rendered,\n\t inst,\n\t cbase;\n\n\t// if updating\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (opts !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\t// context to pass to the child, can be updated via (grand-)parent component\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\t\t\t// set up high order component link\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\t// destroy high order component link\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || opts === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\t\t// Ensure that pending componentDidMount() hooks of child components\n\t\t// are called before the componentDidUpdate() hook in the parent.\n\t\t// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n\t\t// flushMounts();\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, previousContext);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\tif (component._renderCallbacks != null) {\n\t\twhile (component._renderCallbacks.length) {\n\t\t\tcomponent._renderCallbacks.pop().call(component);\n\t\t}\n\t}\n\n\tif (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\t\t\t// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\t// recursively tear down & recollect high-order component children:\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\tcollectComponent(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\n/** Base Component class.\n *\tProvides `setState()` and `forceUpdate()`, which trigger rendering.\n *\t@public\n *\n *\t@example\n *\tclass MyFoo extends Component {\n *\t\trender(props, state) {\n *\t\t\treturn
;\n *\t\t}\n *\t}\n */\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.context = context;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.props = props;\n\n\t/** @public\n *\t@type {object}\n */\n\tthis.state = this.state || {};\n}\n\nextend(Component.prototype, {\n\n\t/** Returns a `boolean` indicating if the component should re-render when receiving the given `props` and `state`.\n *\t@param {object} nextProps\n *\t@param {object} nextState\n *\t@param {object} nextContext\n *\t@returns {Boolean} should the component re-render\n *\t@name shouldComponentUpdate\n *\t@function\n */\n\n\t/** Update component state by copying properties from `state` to `this.state`.\n *\t@param {object} state\t\tA hash of state properties to update with new values\n *\t@param {function} callback\tA function to be called once component state is updated\n */\n\tsetState: function setState(state, callback) {\n\t\tvar s = this.state;\n\t\tif (!this.prevState) this.prevState = extend({}, s);\n\t\textend(s, typeof state === 'function' ? state(s, this.props) : state);\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\tenqueueRender(this);\n\t},\n\n\n\t/** Immediately perform a synchronous re-render of the component.\n *\t@param {function} callback\t\tA function to be called after component is re-rendered.\n *\t@private\n */\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\n\n\t/** Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n *\tVirtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n *\t@param {object} props\t\tProps (eg: JSX attributes) received from parent element/component\n *\t@param {object} state\t\tThe component's current state\n *\t@param {object} context\t\tContext object (if a parent component has provided context)\n *\t@returns VNode\n */\n\trender: function render() {}\n});\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {Element} [merge]\tAttempt to re-use an existing DOM tree rooted at `merge`\n *\t@public\n *\n *\t@example\n *\t// render a div into :\n *\trender(
hello!
, document.body);\n *\n *\t@example\n *\t// render a \"Thing\" component into #foo:\n *\tconst Thing = ({ name }) => { name };\n *\trender(, document.querySelector('#foo'));\n */\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\n//# sourceMappingURL=preact.esm.js.map\n","export function toArray (iterator) {\n return [].slice.call(iterator)\n}\n","// @flow\n\nexport function createUniqueId () {\n return `_${Math.random()\n .toString(36)\n .substr(2, 9)}`\n}\n","// @flow\n\ntype Observer = (value: State) => void\n\ntype UpdateStateFn = (state: State) => State\n\nexport type Subscription = {\n unsubscribe: () => void\n}\n\nexport type Store = {\n getState: () => State,\n subscribe: (observer: Observer) => Subscription,\n update: (f: UpdateStateFn) => void\n}\n\nexport function createStore (initialState: State): Store {\n const observers: Observer[] = []\n\n let state = initialState\n\n function getState () {\n return state\n }\n\n function subscribe (observer: Observer) {\n observers.push(observer)\n\n return {\n unsubscribe () {\n observers.splice(observers.indexOf(observer), 1)\n }\n }\n }\n\n function update (f: UpdateStateFn) {\n state = f(state)\n observers.forEach(observer => observer(state))\n }\n\n return {\n getState,\n subscribe,\n update\n }\n}\n","// @flow\n\nexport function bem (blockName: string, ...modifiers: any[]) {\n return [blockName].concat(modifiers.filter(Boolean).map(modifier => `${blockName}--${modifier}`)).join(' ')\n}\n","// @flow @jsx h\nimport { h, Component } from 'preact'\n\nclass Provider extends Component<{ children: Array }, {}> {\n getChildContext () {\n const { children, ...props } = this.props\n return { __CTX__: props }\n }\n\n render () {\n return this.props.children[0]\n }\n}\n\nProvider.displayName = 'Provider'\n\n// type MapContextToProps = ({}) => Object\n\nfunction connect (mapContextToProps: any => CP) {\n return function (wrappedComponent: any) {\n class Connected extends Component {\n mapContextToProps = (ctx: {}): any => {\n return mapContextToProps && ctx ? mapContextToProps(ctx) : {}\n }\n\n render () {\n return h(wrappedComponent, {\n ...this.mapContextToProps(this.context.__CTX__),\n ...this.props\n })\n }\n }\n\n Connected.displayName = `connect(${wrappedComponent.displayName ||\n wrappedComponent.name ||\n 'Component'})`\n\n return Connected\n }\n}\n\nexport { Provider, connect }\n","function create() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var root = opts.root;\n\n\n var getRect = function getRect() {\n if (root instanceof Element) {\n var rect = root.getBoundingClientRect();\n return {\n width: rect.width,\n height: rect.height\n };\n }\n\n return {\n width: window.innerWidth,\n height: window.innerHeight\n };\n };\n\n var subscribe = function subscribe(observer) {\n var isDynamicViewport = false;\n var isTouching = false;\n var rect = { width: -1, height: -1 };\n\n var listeners = {\n orientationchange: function orientationchange() {\n rect = { width: -1, height: -1 };\n },\n resize: function resize() {\n var prevRect = rect;\n\n rect = getRect();\n\n if (isDynamicViewport && rect.height < prevRect.height) {\n rect.height = prevRect.height;\n }\n\n observer.next(rect);\n },\n scroll: function scroll() {\n if (isTouching) {\n isDynamicViewport = true;\n window.removeEventListener('scroll', listeners.scroll);\n }\n },\n touchstart: function touchstart() {\n isTouching = true;\n },\n touchend: function touchend() {\n isTouching = false;\n }\n };\n\n window.addEventListener('orientationchange', listeners.orientationchange);\n window.addEventListener('resize', listeners.resize);\n window.addEventListener('scroll', listeners.scroll);\n window.addEventListener('touchstart', listeners.touchstart);\n window.addEventListener('touchend', listeners.touchend);\n\n // Trigger initial \"resize\"\n listeners.resize();\n\n return {\n unsubscribe: function unsubscribe() {\n window.removeEventListener('orientationchange', listeners.orientationchange);\n window.removeEventListener('resize', listeners.resize);\n window.removeEventListener('scroll', listeners.scroll);\n window.removeEventListener('touchstart', listeners.touchstart);\n window.removeEventListener('touchend', listeners.touchend);\n }\n };\n };\n\n return { subscribe: subscribe };\n}\n\nvar index = { create: create };\n\nexport { create };\nexport default index;\n","// @flow\n\n/** @jsx h */\n\nimport MaxViewportObservable from '@nrk/max-viewport-observable'\nimport { Component, h } from 'preact'\n\ntype Props = {\n height?: string,\n onViewportChange: (viewport: any) => void\n}\n\nexport default class MaxViewportRect extends Component {\n dispose: () => void\n elm: HTMLDivElement\n viewport$: any\n\n componentDidMount () {\n this.viewport$ = MaxViewportObservable.create({\n root: this.elm\n })\n\n this.dispose = this.viewport$.subscribe({\n next: (viewport) => {\n this.props.onViewportChange(viewport)\n }\n })\n }\n\n componentWillUnmount () {\n this.dispose()\n }\n\n render () {\n const height = this.props.height || 100\n const inlineStyle = {height: `${height}vh`, position: 'absolute'}\n return
(this.elm = elm)} style={inlineStyle} />\n }\n}\n","// @flow\n/** @jsx h */\nimport { Component, h } from 'preact'\n\ntype HtmlContentProps = {\n content: string,\n type: 'span' | 'p' | 'div' | 'h2',\n className?: string\n}\n\nexport class HtmlContent extends Component {\n shouldComponentUpdate (nextProps: HtmlContentProps) {\n return nextProps.content !== this.props.content\n }\n\n render () {\n const { content, className } = this.props\n switch (this.props.type) {\n case 'h2':\n return

\n case 'p':\n return

\n case 'div':\n return

\n default:\n return \n }\n }\n}\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable react/no-unused-prop-types */\n\nimport {Component, h} from 'preact'\nimport {bem} from '../lib/bem'\nimport { HtmlContent } from './common/HtmlContent'\nimport style from './HeaderSection.css'\n\nexport type Props = {\n align: boolean,\n invert: boolean,\n header?: string,\n body?: string,\n offsetEnd: number | null,\n offsetStart: number | null\n}\n\nclass HeaderSection extends Component {\n triggerElm: HTMLDivElement\n\n render () {\n const {align, invert, header, offsetEnd, offsetStart = 0} = this.props\n const inlineStyle = {}\n\n if (offsetEnd !== null) {\n inlineStyle.paddingBottom = offsetEnd\n inlineStyle.marginBottom = 20\n inlineStyle.marginTop = offsetStart !== null ? offsetStart - 20 : -20\n }\n\n return (\n
\n (this.triggerElm = triggerElm)}\n className={style.headerSection__card}\n >\n {header && }\n
\n
\n )\n }\n}\n\nexport default HeaderSection\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable react/no-unused-prop-types, compat/compat */\n\nimport {Component, h} from 'preact'\nimport {bem} from '../lib/bem'\nimport { HtmlContent } from './common/HtmlContent'\nimport style from './TextSection.css'\n\nexport type Props = {\n align: boolean,\n invert: boolean,\n header?: string,\n body?: string,\n offsetEnd: number | null,\n offsetStart: number | null\n}\n\nclass TextSection extends Component {\n triggerElm: HTMLDivElement\n\n render () {\n const {align, invert, header, body, offsetEnd, offsetStart = 0} = this.props\n const notext = !header && !body\n const inlineStyle = {}\n\n if (offsetEnd !== null) {\n inlineStyle.paddingBottom = offsetEnd\n inlineStyle.marginBottom = 20\n inlineStyle.marginTop = offsetStart !== null ? offsetStart - 20 : 0 - 20\n }\n\n return (\n
\n (this.triggerElm = triggerElm)}\n className={style.textSection__card}\n >\n {header && }\n {body && ${body.split('\\n\\n').join('

')}

`} />}\n
\n

\n )\n }\n}\n\nexport default TextSection\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable react/no-unused-prop-types, compat/compat */\n\nimport {Component, h} from 'preact'\nimport {bem} from '../lib/bem'\nimport { HtmlContent } from './common/HtmlContent'\nimport style from './QuoteSection.css'\n\nexport type Props = {\n align: boolean,\n invert: boolean,\n body: string,\n footer?: string,\n offsetEnd: number | null,\n offsetStart: number | null\n}\n\nclass QuoteSection extends Component {\n triggerElm: HTMLDivElement\n\n render () {\n const {align, invert, body, footer, offsetEnd, offsetStart = 0} = this.props\n const inlineStyle = {}\n\n if (offsetEnd !== null) {\n inlineStyle.paddingBottom = offsetEnd\n inlineStyle.marginBottom = 20\n inlineStyle.marginTop = offsetStart !== null ? offsetStart - 20 : 0 - 20\n }\n\n return (\n
\n (this.triggerElm = triggerElm)}\n className={style.quoteSection__card}\n >\n {body && ${body.split('\\n\\n').join('

')}

`} />}\n {footer &&
\n \n \n – ${footer}`} />\n \n
}\n \n
\n )\n }\n}\n\nexport default QuoteSection\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable react/no-unused-prop-types, compat/compat */\n\nimport { Component, h } from 'preact'\nimport { bem } from '../lib/bem'\nimport style from './PlaceholderSection.css'\n\nexport type Props = {\n viewportHeight: number | null,\n first: boolean\n}\n\nclass PlaceholderSection extends Component {\n triggerElm: HTMLDivElement\n insersectionObserver: IntersectionObserver\n\n render () {\n const { viewportHeight, first } = this.props\n const inlineStyle = {}\n\n if (viewportHeight !== null) {\n inlineStyle.height = `${viewportHeight}px`\n if (first) {\n inlineStyle.marginTop = `-${viewportHeight / 2}px`\n }\n }\n\n return (\n
\n (this.triggerElm = triggerElm)}\n className={style.placeholderSection__card}\n />\n
\n )\n }\n}\n\nexport default PlaceholderSection\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\ntype Sources = {\n w450: string,\n w900: string,\n w1280: string\n}\nexport type Image = {\n id?: string,\n F34?: Sources,\n F169?: Sources,\n original: Sources,\n title: string\n}\n\ntype Props = {\n class?: string,\n horizontal: Image,\n vertical?: Image,\n onFocus: Function\n}\n\nclass Picture extends Component {\n transformKey = (key: string) => {\n return `${key.replace(/w/g, '')}w`\n }\n\n getSrcSet = (sources: Sources) => {\n return Object.keys(sources).filter((key) => key !== 'aspect').map((key) => `${sources[key]} ${this.transformKey(key)}`).join(',')\n }\n\n getImage = (image: Image, aspect: string) => {\n if (aspect && image[aspect]) {\n return this.getSrcSet(image[aspect])\n }\n if (image.original) {\n return this.getSrcSet(image.original)\n }\n }\n\n getDefault = (image: Image) => {\n if (image.original && image.original.w1280) {\n return image.original.w1280\n }\n }\n\n render () {\n const { horizontal, vertical, onFocus } = this.props\n\n const className = this.props.class\n const horizontalId = horizontal && horizontal.id && horizontal.id\n const verticalId = vertical && vertical.id && vertical.id.trim()\n\n if (vertical && verticalId) {\n if (!horizontalId) {\n return
Mangler ID
\n }\n\n return (\n \n \n \n {horizontal.title}\n \n )\n } else {\n const imageId = horizontal.id && horizontal.id.trim()\n\n if (!imageId) {\n return
Mangler ID
\n }\n\n /* Same image, different crops */\n return (\n \n \n {horizontal.title}\n \n )\n }\n }\n}\n\nexport default Picture\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable react/no-unused-prop-types, compat/compat */\n\nimport {Component, h} from 'preact'\nimport style from './MediaCredit.css'\n\nexport type Props = {\n children: any,\n aspect?: string,\n objectFit: string\n}\n\nclass MediaCredit extends Component {\n render () {\n const {aspect, children, objectFit} = this.props\n return (\n
\n
\n
\n {children}\n
\n
\n
\n )\n }\n}\n\nexport default MediaCredit\n\n/** Calculate width and height from aspect ratio */\nconst getStyle = (aspectString?: string, cover: boolean) => {\n /* Cover is 100vh / 100vw. Get styles from css */\n if (cover || !aspectString) {\n return\n }\n const aspect = aspectString.split(':')\n const height = `calc(100vw * ${aspect[1]} / ${aspect[0]})`\n const width = `calc((100vh - 40px) / ${aspect[1]} * ${aspect[0]})`\n return {height, width}\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport style from './Credit.css'\nimport MediaCredit from '../../MediaCredit'\n\ntype Props = {\n horizontal: {\n id?: String,\n category?: string,\n creators?: string[],\n credit?: string,\n original: any,\n objectFit: any\n },\n vertical: {\n id?: string,\n category?: string,\n creators?: string[],\n credit?: string,\n original: any,\n objectFit: any\n }\n}\n\nclass Credit extends Component {\n render () {\n const {horizontal, vertical} = this.props\n const horizontalCredit = getCreditString(horizontal)\n const verticalCredit = getCreditString(vertical)\n\n if (horizontal && horizontal.id && vertical && vertical.id) {\n return
\n {horizontalCredit &&
\n {horizontalCredit}\n
}\n {verticalCredit &&
\n {verticalCredit}\n
}\n
\n } else if (horizontalCredit) {\n return \n {horizontalCredit}\n \n }\n }\n}\n\nconst getCreditString = ({category, creators, credit}) => {\n if (!creators && !credit) {\n return\n }\n return [\n (category || 'Foto').concat(':'),\n creators && creators.join(', '),\n creators && credit && '/',\n credit\n ]\n .filter((value) => value)\n .join(' ')\n}\n\nexport default Credit\n","// @flow\n\n/** @jsx h */\n\nimport {Component, h} from 'preact'\nimport {bem} from '../../lib/bem'\nimport PolopolyPicture from './PolopolyPicture'\nimport style from './index.css'\nimport type {ImageMediaProps} from '../types'\nimport Credit from './Credit/Credit'\n\ntype Props = {\n active: boolean,\n visible: boolean,\n media: ImageMediaProps,\n index: number,\n onMediaFocus: Function\n}\n\nclass ImageMedia extends Component {\n handleFocus = () => {\n this.props.onMediaFocus(this.props.index)\n }\n\n render () {\n const {active, media, visible} = this.props\n const {horizontal, vertical, advanced} = media\n const imageClassName = bem(\n style.media__image,\n `horizontal-${horizontal.objectFit || 'cover'}`,\n `vertical-${vertical.objectFit || 'cover'}`,\n advanced.darker && 'darker'\n )\n\n return (\n
\n \n {advanced.showCredit && !advanced.darker && }\n
\n )\n }\n}\n\nexport default ImageMedia\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable jsx-a11y/media-has-caption */\n\nimport { Component, h } from 'preact'\n\nexport type Caption = {\n startTime: number,\n endTime: number,\n text: string\n}\n\ntype Props = {\n sources: Array<{ src: string, type: string, fallback?: boolean }>,\n poster: string,\n preload?: string,\n loop?: boolean,\n class?: string,\n onCanPlay?: Function,\n onEnded?: Function,\n onPlay?: Function,\n onPause?: Function,\n onDurationChange?: Function,\n onTimeUpdate?: Function,\n onCaptionCueEnter?: Function,\n onCaptionCueExit?: Function,\n onFocus?: Function,\n onSourceUpdate?: Function,\n onError?: Function,\n playing?: boolean,\n muted?: boolean,\n captions?: Array,\n label?: string\n}\n\nclass Video extends Component {\n elm: HTMLVideoElement\n track: TextTrack\n retries = 1\n reduceMotion: boolean\n\n componentDidMount (): void {\n const { elm } = this\n const { captions, playing, onCaptionCueEnter, onCaptionCueExit } = this.props\n elm.addEventListener('canplay', this.handleCanPlay)\n elm.addEventListener('play', this.handlePlay)\n elm.addEventListener('ended', this.handleEnded)\n elm.addEventListener('pause', this.handlePause)\n elm.addEventListener('durationchange', this.handleDurationChange)\n elm.addEventListener('timeupdate', this.handleTimeUpdate)\n elm.addEventListener('error', this.handleError)\n this.reduceMotion = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches\n\n if (captions) {\n this.track = elm.addTextTrack('subtitles', 'Norsk')\n\n try {\n captions.forEach(a => this.track.addCue(new window.VTTCue(Number(a.startTime), Number(a.endTime), a.text)))\n } catch (ex) {\n captions.forEach(a => this.track.addCue(new window.TextTrackCue(Number(a.startTime), Number(a.endTime), a.text)))\n }\n\n this.track.mode = 'hidden'\n\n for (let i = 0; i < this.track.cues.length; i++) {\n const cue = this.track.cues[i]\n\n try {\n cue.onenter = () => {\n if (typeof onCaptionCueEnter !== 'undefined') {\n onCaptionCueEnter(cue)\n }\n }\n cue.onexit = () => {\n if (typeof onCaptionCueExit !== 'undefined') {\n onCaptionCueExit()\n }\n }\n } catch (_) {\n // discard error\n }\n }\n }\n\n this.updateVideoSource(false)\n if (playing && !this.reduceMotion) {\n this.play()\n }\n }\n\n componentDidUpdate (prevProps: Props): void {\n const { playing, muted } = this.props\n // Update pause or play state\n if (prevProps.playing && !playing) {\n this.elm.pause()\n }\n if (!prevProps.playing && playing && !this.reduceMotion) {\n this.play()\n }\n // Updated `muted`\n if (prevProps.muted !== muted) {\n this.elm.muted = muted || false\n }\n }\n\n componentWillUnmount (): void {\n const { elm } = this\n elm.removeEventListener('canplay', this.handleCanPlay)\n elm.removeEventListener('play', this.handlePlay)\n elm.removeEventListener('ended', this.handleEnded)\n elm.removeEventListener('pause', this.handlePause)\n elm.removeEventListener('durationchange', this.handleDurationChange)\n elm.removeEventListener('timeupdate', this.handleTimeUpdate)\n elm.removeEventListener('error', this.handleError)\n }\n\n updateVideoSource (playFailed: boolean) {\n const { sources, onSourceUpdate } = this.props\n const source = sources.find(source => this.elm.canPlayType(source.type) && (!playFailed || source.fallback))\n if (source && source.src) {\n this.elm.src = source.src\n if (typeof onSourceUpdate !== 'undefined') {\n onSourceUpdate(source.src, source.type)\n }\n }\n }\n\n handleCanPlay = (event: Event): void => {\n const { onCanPlay } = this.props\n if (typeof onCanPlay !== 'undefined') {\n onCanPlay(event)\n }\n }\n\n handlePlay = (event: Event): void => {\n const { onPlay } = this.props\n if (typeof onPlay !== 'undefined') {\n onPlay(event)\n }\n }\n\n handlePause = (event: Event): void => {\n const { onPause } = this.props\n if (typeof onPause !== 'undefined') {\n onPause(event)\n }\n }\n\n handleDurationChange = (event: Event): void => {\n const { onDurationChange } = this.props\n if (typeof onDurationChange !== 'undefined') {\n onDurationChange(event)\n }\n }\n\n handleTimeUpdate = (event: Event): void => {\n const { onTimeUpdate } = this.props\n if (typeof onTimeUpdate !== 'undefined') {\n onTimeUpdate(event)\n }\n }\n\n handleEnded = (event: Event): void => {\n const { onEnded } = this.props\n if (typeof onEnded !== 'undefined') {\n onEnded(event)\n }\n }\n\n handlePromiseError = (e: MediaError): void => {\n if (e) {\n this.handleErrorInternal(e)\n }\n }\n\n handleError = (): void => {\n if (this.elm.error) {\n this.handleErrorInternal(this.elm.error)\n }\n }\n\n handleErrorInternal = (e: MediaError) => {\n const { onError } = this.props\n if (typeof onError !== 'undefined') {\n onError(e, this.retries, this.elm.paused)\n }\n\n if (this.retries > 0 && e.code === e.MEDIA_ERR_SRC_NOT_SUPPORTED) {\n this.retries -= 1\n this.updateVideoSource(true)\n this.play()\n }\n }\n\n play () {\n const playPromise = this.elm.play()\n if (playPromise) {\n playPromise.catch(this.handlePromiseError)\n }\n }\n\n /**\n * Set new current time\n * @param time\n */\n updateTime (time: number): void {\n this.elm.currentTime = time\n }\n\n render () {\n const { loop, sources, poster, label, onFocus } = this.props\n\n const preload = this.props.preload || 'none'\n const muted = this.props.muted || false\n return (\n (this.elm = elm)}\n loop={loop}\n muted={muted}\n playsInline\n poster={poster}\n tabIndex={onFocus ? -1 : null}\n disableRemotePlayback\n x-webkit-airplay='deny'\n onFocus={onFocus}\n className={this.props.class}>\n {\n sources.map(source => {\n return \n })\n }\n \n )\n }\n}\n\nexport default Video\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport { bem } from '../../lib/bem'\nimport style from './index.css'\nimport Video from '../common/Video'\nimport MediaCredit from '../MediaCredit'\nimport type { VideoloopMediaProps } from '../types'\nimport { connect } from '../../lib/provider'\n\ntype Props = {\n active: boolean,\n visible: boolean,\n isVerticalViewport: boolean,\n index: number,\n media: VideoloopMediaProps,\n onMediaFocus: (number) => void,\n sendGaEvent: ({ action: string }) => void\n}\n\ntype State = {\n currentVideoTime: number\n}\n\nclass VideoloopMedia extends Component {\n verticalVideo: Object\n horizontalVideo: Object\n\n constructor () {\n super()\n this.state = { currentVideoTime: 0 }\n }\n\n componentDidUpdate (prevProps: Props): void {\n if (prevProps.isVerticalViewport !== this.props.isVerticalViewport) {\n if (this.verticalVideo) {\n this.verticalVideo.updateTime(this.state.currentVideoTime)\n }\n this.horizontalVideo.updateTime(this.state.currentVideoTime)\n }\n }\n\n handleFocus = () => {\n this.props.onMediaFocus(this.props.index)\n }\n\n handleTimeUpdate = (event: Object): void => {\n this.setState({ currentVideoTime: event.target.currentTime })\n }\n\n handlePlay = (): void => {\n const { index } = this.props\n this.props.sendGaEvent({ action: `VIDEOLOOP_PLAY/${index}` })\n }\n\n hasVerticalVideoSupport () {\n const { vertical } = this.props.media\n if (typeof vertical === 'undefined') {\n return false\n }\n return vertical.poster && vertical.sources.mp4\n }\n\n getSources (media: any) {\n return [\n { src: media.sources.mp4, type: 'video/mp4' }\n ]\n }\n\n render () {\n const { media, isVerticalViewport, active, visible } = this.props\n const { vertical, horizontal, credit } = media\n const className = bem(\n style.media,\n 'videoloop',\n active && 'active',\n (isVerticalViewport && this.hasVerticalVideoSupport()) ? 'vertical' : 'horizontal',\n `horizontal-${horizontal.objectFit || 'cover'}`,\n `vertical-${vertical.objectFit || 'cover'}`,\n visible && 'visible'\n )\n const commonProps = {\n // Default to `true` if the `loop` property is undefined\n loop: media.loop !== false,\n muted: true,\n onPlay: this.handlePlay,\n onTimeUpdate: this.handleTimeUpdate,\n onFocus: this.handleFocus,\n label: media.alt || 'Levende bilde uten beskrivelse'\n }\n\n return (\n
\n {this.hasVerticalVideoSupport() && (\n (this.verticalVideo = verticalVideo)}\n class={style.media__verticalVideo}\n poster={vertical.poster}\n playing={active && (isVerticalViewport && this.hasVerticalVideoSupport())}\n sources={this.getSources(vertical)}\n />\n )}\n (this.horizontalVideo = horizontalVideo)}\n class={style.media__horizontalVideo}\n poster={horizontal.poster}\n playing={active && !(isVerticalViewport && this.hasVerticalVideoSupport())}\n sources={this.getSources(horizontal)}\n />\n {credit && {credit}}\n
\n )\n }\n}\n\nfunction mapContextToProps (context) {\n const sendGaEvent = context && context.sendGaEvent\n return { sendGaEvent }\n}\n\nexport default connect(mapContextToProps)(VideoloopMedia)\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});","// @flow @jsx h\nimport { h, Component } from 'preact'\nimport { bem } from '@nrk/dh-utils'\nimport styles from './index.css'\n\nconst options = {\n mute: true,\n autoplay: false,\n controls: false,\n features: {\n airplay: false,\n chromecast: false,\n help: false,\n navKeys: false\n },\n poster: {\n title: false,\n subtitle: false,\n duration: false\n },\n chromecast: {\n enabled: false\n },\n analytics: {\n ga: {\n trackingId: 'UA-3413696-1'\n }\n }\n}\n\nexport function getOptions () {\n const client = getApiClient()\n return { ...options, ...(client && {apiClient: client}) }\n}\n\nfunction getApiClient () {\n const origin = window.location.origin\n const preview = origin.indexOf('preview.nrk.no') > -1 || origin.indexOf('localhost') > -1\n if (preview) {\n return {\n domain: 'psapi.nrk.no',\n params: {\n previewclient: true\n }\n }\n }\n}\n\ntype Props = {\n id: string,\n isMuted?: boolean,\n selectedTime: number,\n isActive: boolean,\n isPlaying: boolean,\n isUserPaused: boolean,\n aspectRatio: string,\n currentTime: number,\n isVertical?: Boolean,\n onError: (error: any) => void,\n onDurationChange: (event: { target: { duration: number } }) => void,\n onTimeUpdate: (currentTime: number) => void,\n setSubtitles: (subtitles: string) => void,\n onEnded: () => void,\n onPlay: () => void,\n onPause: () => void\n}\n\ntype LudoType = (...args: any[]) => { [key: string]: any } | null\n\nexport function extractIdFromSmartUrl (smartUrl: string) {\n return smartUrl.substr(smartUrl.lastIndexOf('/') + 1, smartUrl.length)\n}\n\nfunction debuglog (...args) {\n if (typeof window !== 'undefined' && window.location.search.includes('debug')) {\n console.log(...args)\n }\n}\n\nexport class Ludo extends Component {\n ludoInstance: any = null\n ludoMount: HTMLElement | null = null\n ludo: LudoType | null = null\n\n shouldComponentUpdate (nextProps: Props) {\n if (this.props.id !== nextProps.id) return true\n if (this.props.isMuted !== nextProps.isMuted) return true\n if (this.props.selectedTime !== nextProps.selectedTime) return true\n if (this.props.isActive !== nextProps.isActive) return true\n if (this.props.isPlaying !== nextProps.isPlaying) return true\n return false\n }\n\n componentDidMount () {\n debuglog(`componentDidMount (${this.props.id})`, this.props.id)\n\n const { id } = this.props\n const mediaId = id.indexOf('klipp:') > -1 ? extractIdFromSmartUrl(id) : id\n this.instanciateLudo(mediaId)\n .then(() => {\n this.ludoInstance.subtitles(false)\n this.ludoInstance.once('play', this.getSubtitles)\n this.ludoInstance.once('durationchange', this.props.onDurationChange)\n this.props.onTimeUpdate && this.ludoInstance.on('timeupdate', this.props.onTimeUpdate)\n this.props.onPlay && this.ludoInstance.on('playing', this.props.onPlay)\n\n this.props.onEnded && this.ludoInstance.on('ended', () => {\n if (this.props.isActive) {\n this.props.onEnded()\n }\n })\n this.props.onPlay && this.ludoInstance.on('pause', this.props.onPause)\n this.props.onError && this.ludoInstance.on('error', this.props.onError)\n this.ludoInstance.once('prepared', () => {\n if (this.props.isActive && this.props.isPlaying) {\n // we will always attempt to autoplay when the component first mounts\n this.ludoInstance.set('autoplay', true)\n this.ludoInstance.play({ userInteraction: true }).catch(console.error)\n }\n })\n })\n .catch(console.error)\n }\n\n componentDidUpdate (prevProps: Props) {\n if (this.ludoInstance) {\n const shouldPlay = this.props.isPlaying && this.props.isActive\n const wasPlaying = prevProps.isPlaying && prevProps.isActive\n\n if (shouldPlay && !wasPlaying) {\n const { currentTime } = this.props\n if (currentTime !== 0) {\n this.ludoInstance.seekTo(currentTime)\n }\n\n this.props.onDurationChange(this.ludoInstance.duration())\n\n // we need to set the autoplay property to differentiate if it was a user initiated play or autoplay.\n this.ludoInstance.set('autoplay', prevProps.isUserPaused === false)\n\n this.ludoInstance.play({ userInteraction: true }).catch(console.error)\n } else if (!shouldPlay && wasPlaying) {\n this.ludoInstance.pause()\n }\n\n if (this.props.isMuted && !prevProps.isMuted) {\n this.ludoInstance.mute()\n } else if (!this.props.isMuted && prevProps.isMuted) {\n this.ludoInstance.unmute()\n }\n }\n\n if (this.props.selectedTime !== prevProps.selectedTime) {\n if (this.ludoInstance) {\n this.ludoInstance.seekTo(this.props.selectedTime)\n }\n }\n }\n\n componentWillUnmount () {\n this.ludoInstance = null\n this.ludoMount = null\n this.ludo = null\n }\n\n getSubtitles = () => new Promise((resolve, reject) => {\n const current = this.ludoInstance.current()\n const { subtitles } = current\n\n if (subtitles && subtitles[0]) {\n const url = subtitles[0].src\n fetch(url)\n .then(res => res.text())\n .then((sub) => {\n this.props.setSubtitles(sub)\n resolve()\n })\n .catch(console.error)\n } else {\n resolve()\n }\n })\n\n requireLudo = () => {\n debuglog(`Calling requireLudo (${this.props.id})`)\n return new Promise((resolve, reject) => {\n if (this.ludo) {\n debuglog(`Resolving requireLudo with \\`this.ludo\\` (${this.props.id})`, this.ludo)\n resolve(this.ludo)\n } else {\n debuglog(`window.requirejs (${this.props.id})`, window.requirejs)\n window.require(['ludo'], ludo => {\n if (ludo) {\n this.ludo = ludo\n debuglog(`ludo from requirejs (${this.props.id})`, ludo)\n resolve(this.ludo)\n } else {\n reject(new Error('Failed to require Ludo'))\n }\n })\n }\n })\n }\n\n instanciateLudo = (id: string) => {\n debuglog(`Called \\`instanciateLudo\\` (${id})`)\n const options = {...getOptions(), videoPlayerAspectRatio: this.props.aspectRatio}\n return new Promise((resolve, reject) => {\n this.requireLudo()\n .then(ludo => {\n debuglog(`Resolved \\`requireLudo\\` (${id})`, ludo)\n return ludo\n })\n .then((ludo: LudoType | null) => {\n if (ludo) {\n this.ludoInstance = ludo(this.ludoMount, id, options)\n debuglog(`Sat ludoInstance (${id})`, this.ludoInstance)\n resolve()\n } else {\n debuglog(`Failed to require ludo (${id})`, ludo)\n reject(new Error('Failed to require ludo'))\n }\n })\n .catch(reject)\n })\n }\n\n render () {\n const { isActive, isVertical = false, id } = this.props\n\n return (\n
\n
(this.ludoMount = el)} />\n
\n )\n }\n}\n","// @flow\n\n/** @jsx h */\n\nimport { h, Component } from 'preact'\nimport style from './index.css'\nimport { nl2br } from '../../../lib/nl2br'\n\ntype Cue = {\n start: number,\n end: number,\n text: string,\n identifier: string,\n styles: string\n}\n\ntype Props = {\n cue: Cue\n}\n\nclass Subtitle extends Component {\n shouldComponentUpdate (nextProps: Props) {\n const currentCue = this.props.cue\n const nextCue = nextProps.cue\n if (!!currentCue !== !!nextCue) {\n return true\n } else if (currentCue && currentCue.text !== nextCue.text) {\n return true\n }\n return false\n }\n\n render () {\n const { cue } = this.props\n return (\n
\n {cue ? (\n \n ) : null}\n
\n )\n }\n}\n\nexport default Subtitle\n","export function nl2br (str) {\n return String(str).replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1' + '
' + '$2')\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport { bem } from '../../../lib/bem'\nimport style from './index.css'\nimport { Ludo } from './Ludo'\nimport Subtitle from './Subtitle'\nimport { parse as VTTParse } from './vtt-parser'\nimport type { VideoMediaProps } from '../../types'\n\ntype Props = {\n media: VideoMediaProps,\n playing: boolean,\n userPaused: boolean,\n muted: boolean,\n selectedTime: number,\n visible: boolean,\n isVerticalViewport: boolean,\n controlsActive: boolean,\n index: number,\n onDurationchange: Function,\n onPause: Function,\n onPlay: Function,\n onPlayFailed: Function,\n onTimeupdate: Function,\n onFocus: number => void,\n onEnded: Function,\n onSourceUpdate: (string, string) => void,\n label?: string,\n sendError: (error: string, error?: Error) => void\n}\n\ntype State = {\n currentVideoTime: number,\n videoDuration: number,\n paused: boolean,\n}\n\nclass VideoMedia extends Component {\n state = {\n currentVideoTime: 0,\n videoDuration: 0,\n paused: false\n }\n verticalVideo: Object\n horizontalVideo: Object\n captionsElm: HTMLDivElement\n selectedTime = 0\n\n componentDidUpdate (prevProps: Props, prevState: State) {\n // Trigger durationchange when the video loads (fixes duration bug)\n if (this.props.playing && !prevProps.playing) {\n const { videoDuration } = this.state\n if (!isNaN(videoDuration)) {\n this.props.onDurationchange(videoDuration)\n }\n }\n\n if (this.props.selectedTime !== this.selectedTime) {\n this.selectedTime = this.props.selectedTime\n }\n }\n\n handlePlay = () => {\n if (this.props.playing) {\n this.props.onPlay(this.props.index)\n }\n }\n\n handlePause = () => {\n if (!this.props.playing) {\n this.props.onPause(this.props.index)\n }\n }\n\n handleTimeUpdate = (currentTime: number) => {\n if (currentTime !== undefined) {\n this.setState({ currentVideoTime: currentTime })\n this.props.onTimeupdate(currentTime)\n }\n }\n\n handleDurationChange = (duration: number): void => {\n if (duration !== 0) {\n this.setState({ videoDuration: duration })\n this.props.onDurationchange(duration)\n }\n }\n\n handleEnded = () => {\n this.setState({ paused: true })\n this.props.onEnded()\n }\n\n handleSourceUpdate = (source: string, type: string) => {}\n\n handleError = (error: any) => {\n console.error(error)\n }\n\n handleCaptionCueEnter = (cue: Object): void => {\n if (this.captionsElm) {\n this.captionsElm.innerHTML = `${cue.text}`\n }\n }\n\n handleCaptionCueExit = (): void => {\n if (this.captionsElm) {\n this.captionsElm.innerHTML = ''\n }\n }\n\n hasVerticalVideoSupport () {\n const { vertical } = this.props.media\n return !!vertical && !!vertical.videoId\n }\n\n subtitles: { [key: 'VERTICAL' | 'HORIZONTAL']: { cues: any } }\n\n getActiveCue = (vertical: boolean) => {\n try {\n const time = this.state.currentVideoTime\n const { cues = [] } = this.subtitles[vertical ? 'VERTICAL' : 'HORIZONTAL']\n return cues.filter(cue => cue.start <= time && cue.end >= time)[0]\n } catch (err) {\n return undefined\n }\n }\n setSubtitles = (vertical: boolean) => (subtitles: string) => {\n this.subtitles = {\n ...this.subtitles,\n [vertical ? 'VERTICAL' : 'HORIZONTAL']: VTTParse(subtitles)\n }\n }\n render () {\n const {\n media,\n isVerticalViewport,\n playing,\n userPaused,\n muted,\n visible,\n controlsActive\n } = this.props\n const { vertical, horizontal } = media\n const hasVerticalVideoSupport = this.hasVerticalVideoSupport()\n const isVertical = isVerticalViewport && hasVerticalVideoSupport\n const className = bem(\n style.media,\n 'video',\n isVerticalViewport && hasVerticalVideoSupport ? 'vertical' : 'horizontal',\n `horizontal-${horizontal.objectFit || 'cover'}`,\n `vertical-${vertical.objectFit || 'cover'}`,\n controlsActive && 'controlsActive',\n visible && 'visible'\n )\n\n return (\n
\n {hasVerticalVideoSupport && (\n \n )}\n \n\n \n
\n )\n }\n}\n\nexport default VideoMedia\n","export const nrk360 = ''\nexport const nrk404 = ''\nexport const nrkArrowLeftLong = ''\nexport const nrkArrowLeft = ''\nexport const nrkArrowRightLong = ''\nexport const nrkArrowRight = ''\nexport const nrkBellActive = ''\nexport const nrkBell = ''\nexport const nrkBookmarkActive = ''\nexport const nrkBookmark = ''\nexport const nrkBroadcast = ''\nexport const nrkCalendar = ''\nexport const nrkCategory = ''\nexport const nrkCheck = ''\nexport const nrkChevronDown = ''\nexport const nrkChevronLeft = ''\nexport const nrkChevronRight = ''\nexport const nrkChevronUp = ''\nexport const nrkCloseCircle = ''\nexport const nrkClose = ''\nexport const nrkComment = ''\nexport const nrkDice1Active = ''\nexport const nrkDice1 = ''\nexport const nrkDice2Active = ''\nexport const nrkDice2 = ''\nexport const nrkDice3Active = ''\nexport const nrkDice3 = ''\nexport const nrkDice4Active = ''\nexport const nrkDice4 = ''\nexport const nrkDice5Active = ''\nexport const nrkDice5 = ''\nexport const nrkDice6Active = ''\nexport const nrkDice6 = ''\nexport const nrkDownload = ''\nexport const nrkDuration = ''\nexport const nrkFullscreenActive = ''\nexport const nrkFullscreen = ''\nexport const nrkGallery = ''\nexport const nrkGeoActive = ''\nexport const nrkGeo = ''\nexport const nrkGeopointActive = ''\nexport const nrkGeopoint = ''\nexport const nrkGlobe = ''\nexport const nrkHardwareCamera = ''\nexport const nrkHardwareComputer = ''\nexport const nrkHardwareGame = ''\nexport const nrkHardwareMobile = ''\nexport const nrkHardwareRadio = ''\nexport const nrkHardwareSmartSpeaker = ''\nexport const nrkHardwareSmartWatch = ''\nexport const nrkHardwareSpeaker = ''\nexport const nrkHardwareTablet = ''\nexport const nrkHardwareTv = ''\nexport const nrkHardwareWatch = ''\nexport const nrkHeartActive = ''\nexport const nrkHeart = ''\nexport const nrkHelp = ''\nexport const nrkHomeActive = ''\nexport const nrkHome = ''\nexport const nrkInfo = ''\nexport const nrkLatestNewsActive = ''\nexport const nrkLatestNews = ''\nexport const nrkLink = ''\nexport const nrkLockActive = ''\nexport const nrkLock = ''\nexport const nrkLogoNrk1Colorblack = ''\nexport const nrkLogoNrk1Colorgrey = ''\nexport const nrkLogoNrk1Colorwhite = ''\nexport const nrkLogoNrk1 = ''\nexport const nrkLogoNrk2Colorblack = ''\nexport const nrkLogoNrk2Colorgrey = ''\nexport const nrkLogoNrk2Colorwhite = ''\nexport const nrkLogoNrk2 = ''\nexport const nrkLogoNrk3Colorblack = ''\nexport const nrkLogoNrk3Colorgrey = ''\nexport const nrkLogoNrk3Colorwhite = ''\nexport const nrkLogoNrk3 = ''\nexport const nrkLogoNrkAlltidNyheter = ''\nexport const nrkLogoNrkFolkemusikk = ''\nexport const nrkLogoNrkJazz = ''\nexport const nrkLogoNrkKlassisk = ''\nexport const nrkLogoNrkMp3Symbol = ''\nexport const nrkLogoNrkMp3 = ''\nexport const nrkLogoNrkNyheterSymbolBlackwhite = ''\nexport const nrkLogoNrkNyheterSymbolColor = ''\nexport const nrkLogoNrkNyheterSymbol = ''\nexport const nrkLogoNrkNyheter = ''\nexport const nrkLogoNrkP1Pluss = ''\nexport const nrkLogoNrkP1 = ''\nexport const nrkLogoNrkP13Radioresepsjonen = ''\nexport const nrkLogoNrkP13 = ''\nexport const nrkLogoNrkP2 = ''\nexport const nrkLogoNrkP3NationalRapShow = ''\nexport const nrkLogoNrkP3Symbol = ''\nexport const nrkLogoNrkP3Urort = ''\nexport const nrkLogoNrkP3X = ''\nexport const nrkLogoNrkP3 = ''\nexport const nrkLogoNrkRadio = ''\nexport const nrkLogoNrkSapmi = ''\nexport const nrkLogoNrkSportSymbolBlackwhite = ''\nexport const nrkLogoNrkSportSymbolColor = ''\nexport const nrkLogoNrkSportSymbol = ''\nexport const nrkLogoNrkSport = ''\nexport const nrkLogoNrkSuperSentrert = ''\nexport const nrkLogoNrkSuperSymbol = ''\nexport const nrkLogoNrkSuper = ''\nexport const nrkLogoNrkTegnspraakColorblack = ''\nexport const nrkLogoNrkTegnspraakColorgrey = ''\nexport const nrkLogoNrkTegnspraakColorwhite = ''\nexport const nrkLogoNrkTegnspraak = ''\nexport const nrkLogoNrkTv = ''\nexport const nrkLogoNrk = ''\nexport const nrkLogoYrBlackwhite = ''\nexport const nrkLogoYrColor = ''\nexport const nrkLogoYr = ''\nexport const nrkLongreadActive = ''\nexport const nrkLongread = ''\nexport const nrkMat = ''\nexport const nrkMedia404Notfound = ''\nexport const nrkMediaAirplayActive = ''\nexport const nrkMediaAirplay = ''\nexport const nrkMediaChromecastActive = ''\nexport const nrkMediaChromecast = ''\nexport const nrkMediaDirekteActive = ''\nexport const nrkMediaDirekte = ''\nexport const nrkMediaDirektetv = ''\nexport const nrkMediaFfw15sec = ''\nexport const nrkMediaFfw30sec = ''\nexport const nrkMediaFfw = ''\nexport const nrkMediaNext = ''\nexport const nrkMediaPause = ''\nexport const nrkMediaPictureInPictureActive = ''\nexport const nrkMediaPictureInPicture = ''\nexport const nrkMediaPlayFail = ''\nexport const nrkMediaPlay = ''\nexport const nrkMediaPrevious = ''\nexport const nrkMediaProgramguide = ''\nexport const nrkMediaRwd15sec = ''\nexport const nrkMediaRwd30sec = ''\nexport const nrkMediaRwd = ''\nexport const nrkMediaSoundwave = ''\nexport const nrkMediaStop = ''\nexport const nrkMediaSubtitlesActive = ''\nexport const nrkMediaSubtitlesUnavailable = ''\nexport const nrkMediaSubtitles = ''\nexport const nrkMediaTheaterActive = ''\nexport const nrkMediaTheater = ''\nexport const nrkMediaTilgjengelighetGeoblocked = ''\nexport const nrkMediaTilgjengelighetIkkelengertilgjengelig = ''\nexport const nrkMediaTilgjengelighetKommer = ''\nexport const nrkMediaVolume1 = ''\nexport const nrkMediaVolume2 = ''\nexport const nrkMediaVolume3 = ''\nexport const nrkMediaVolumeMuted = ''\nexport const nrkMening = ''\nexport const nrkMinus = ''\nexport const nrkMore = ''\nexport const nrkOffline = ''\nexport const nrkOpenInNew = ''\nexport const nrkPlus = ''\nexport const nrkPoll = ''\nexport const nrkReload = ''\nexport const nrkSearch = ''\nexport const nrkSettingsActive = ''\nexport const nrkSettings = ''\nexport const nrkSomeEmail = ''\nexport const nrkSomeEmbed = ''\nexport const nrkSomeFacebook = ''\nexport const nrkSomeGoogle = ''\nexport const nrkSomeInstagram = ''\nexport const nrkSomeShare = ''\nexport const nrkSomeSnapchat = ''\nexport const nrkSomeTommeloppActive = ''\nexport const nrkSomeTommelopp = ''\nexport const nrkSomeTwitter = ''\nexport const nrkSomeYoutube = ''\nexport const nrkSpinner = ''\nexport const nrkStarActive = ''\nexport const nrkStar = ''\nexport const nrkTilgjengelighetHorbarhet = ''\nexport const nrkTilgjengelighetLydtekst = ''\nexport const nrkTilgjengelighetSynstolking = ''\nexport const nrkTilgjengelighetTegnspraak = ''\nexport const nrkTilgjengelighet = ''\nexport const nrkUpload = ''\nexport const nrkUserLoggedin = ''\nexport const nrkUserNotloggedin = ''\nexport const nrkWarning = ''","// @flow\n\n/** @jsx h */\n\nimport { h } from 'preact'\nimport style from './index.css'\nimport { nrkMediaPlay } from '@nrk/core-icons'\n\ntype Props = {\n class?: string,\n onClick: Function,\n onFocus: Function,\n onBlur: Function\n}\n\nexport default (props: Props) => {\n const className = `${style.largePlayButton}${props.class ? ` ${props.class}` : ''}`\n\n return (\n \n )\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport { bem } from '../../../../lib/bem'\nimport style from './index.css'\nimport { nrkMediaPause, nrkMediaPlay } from '@nrk/core-icons'\n\ntype Props = {\n class?: string,\n paused: boolean,\n onClick: Function,\n onFocus: Function,\n onBlur: Function\n}\n\nexport default class TogglePlayButton extends Component {\n render () {\n const { paused } = this.props\n const className = `${bem(style.togglePlayButton, paused && 'paused')}${this.props.class ? ` ${this.props.class}` : ''}`\n const currentIcon = paused ? nrkMediaPlay : nrkMediaPause\n\n return (\n \n )\n }\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport style from './index.css'\n\ntype Props = {\n class?: string,\n duration: number,\n time: number,\n onPositionUpdate?: (position: number) => void\n}\n\ntype State = {\n left: number,\n width: number,\n isScrubbing: boolean,\n position: number | null\n}\n\nclass Scrubber extends Component {\n bgElm: HTMLDivElement\n elm: HTMLDivElement\n handleElm: HTMLButtonElement\n positionTimeout: TimeoutID\n state = {\n left: 0,\n width: 0,\n isScrubbing: false,\n position: null\n }\n\n componentDidMount () {\n if (this.props.onPositionUpdate) {\n this.elm.addEventListener('keydown', this.handleKeyDown)\n this.elm.addEventListener('mousedown', this.handleMouseDown)\n this.elm.addEventListener('touchstart', this.handleTouchStart)\n window.addEventListener('resize', this.handleResize)\n this.handleResize()\n }\n }\n\n componentWillUnmount () {\n if (this.props.onPositionUpdate) {\n this.elm.removeEventListener('keydown', this.handleKeyDown)\n this.elm.removeEventListener('mousedown', this.handleMouseDown)\n this.elm.removeEventListener('touchstart', this.handleTouchStart)\n window.removeEventListener('resize', this.handleResize)\n }\n }\n\n handleKeyDown = (evt: KeyboardEvent) => {\n const {duration, time, onPositionUpdate} = this.props\n\n if (onPositionUpdate) {\n let nextTime = time\n\n switch (evt.key) {\n case 'ArrowLeft': nextTime -= 1; break\n case 'ArrowRight': nextTime += 1; break\n }\n\n onPositionUpdate(Math.max(Math.min(nextTime / duration, 1), 0))\n }\n }\n\n handleMouseDown = (evt: MouseEvent) => {\n evt.preventDefault()\n this.focus()\n this.start(evt.pageX)\n this.elm.addEventListener('mousemove', this.handleMouseMove)\n window.addEventListener('mouseup', this.handleMouseUp)\n }\n\n handleMouseMove = (evt: MouseEvent) => {\n this.move(evt.pageX)\n }\n\n handleMouseUp = (evt: MouseEvent) => {\n this.focus()\n this.end()\n this.elm.removeEventListener('mousemove', this.handleMouseMove)\n window.removeEventListener('mouseup', this.handleMouseUp)\n }\n\n handleResize = () => {\n const rect = this.bgElm.getBoundingClientRect()\n\n this.setState({\n left: Math.floor(rect.left),\n width: rect.width\n })\n }\n\n handleTouchStart = (evt: TouchEvent) => {\n if (evt.touches.length === 1) {\n evt.preventDefault()\n this.focus()\n this.start(evt.touches[0].clientX)\n this.elm.addEventListener('touchmove', this.handleTouchMove)\n window.addEventListener('touchend', this.handleTouchEnd)\n }\n }\n\n handleTouchMove = (evt: TouchEvent) => {\n if (evt.touches.length === 1) {\n this.move(evt.touches[0].clientX)\n }\n }\n\n handleTouchEnd = (evt: TouchEvent) => {\n this.focus()\n this.end()\n this.elm.removeEventListener('touchmove', this.handleTouchMove)\n window.removeEventListener('touchend', this.handleTouchEnd)\n }\n\n focus () {\n this.handleElm.focus()\n }\n\n start (clientX: number) {\n if (this.positionTimeout) {\n clearTimeout(this.positionTimeout)\n }\n\n this.setState({\n position: (clientX - this.state.left) / this.state.width,\n isScrubbing: true\n })\n }\n\n move (clientX: number) {\n this.setState({\n position: Math.max(Math.min((clientX - this.state.left) / this.state.width, 1), 0)\n })\n }\n\n end () {\n if (this.props.onPositionUpdate && this.state.position !== null) {\n this.props.onPositionUpdate(this.state.position)\n }\n\n this.setState({\n isScrubbing: false\n })\n\n this.positionTimeout = setTimeout(() => {\n this.setState({\n position: null\n })\n }, 250)\n }\n\n render () {\n const {duration, time} = this.props\n const className = this.props.class\n const position = this.state.position !== null ? this.state.position : time / duration\n\n return (\n
(this.elm = elm)} aria-hidden='true'>\n
(this.bgElm = bgElm)} />\n
\n
\n
\n )\n }\n}\n\nexport default Scrubber\n","// @flow\n\n/** @jsx h */\n\nimport { h } from 'preact'\nimport { bem } from '../../../../lib/bem'\nimport style from './index.css'\nimport { nrkMediaVolumeMuted, nrkMediaVolume3 } from '@nrk/core-icons'\n\ntype Props = {\n class?: string,\n muted: boolean,\n onClick: Function,\n onFocus: Function,\n onBlur: Function\n}\n\nexport default (props: Props) => {\n const { muted } = props\n const className = `${bem(style.muteButton, muted && 'muted')}${props.class ? ` ${props.class}` : ''}`\n const currentIcon = muted ? nrkMediaVolumeMuted : nrkMediaVolume3\n\n return (\n \n )\n}\n","// @flow\n\n/** @jsx h */\n\nimport { h } from 'preact'\nimport LargePlayButton from './LargePlayButton/index'\nimport TogglePlayButton from './TogglePlayButton/index'\nimport Scrubber from './Scrubber/index'\nimport MuteButton from './MuteButton/index'\nimport { bem } from '../../../lib/bem'\n\nimport style from './index.css'\n\ntype Props = {\n paused: boolean,\n hasStarted: boolean,\n isPlaying: boolean,\n duration: number,\n time: number,\n muted: boolean,\n controlsActive: boolean,\n viewportHeight: number | null,\n play: Function,\n togglePlayback: Function,\n toggleMuted: Function,\n handleScrubberPositionUpdate: Function,\n onFocus: Function,\n onBlur: Function\n}\n\nexport default function MediaControls (props: Props) {\n const {\n paused, muted, time, duration, controlsActive, viewportHeight,\n play, togglePlayback, toggleMuted, handleScrubberPositionUpdate, onFocus, onBlur,\n hasStarted\n } = props\n\n // Build inline styles\n const mediaControlsInlineStyle = {}\n if (viewportHeight !== null) {\n mediaControlsInlineStyle.height = `${viewportHeight}px`\n mediaControlsInlineStyle.marginBottom = `-${viewportHeight}px`\n }\n return (\n
\n
\n {!hasStarted && (\n \n )}\n {hasStarted && (\n
\n \n \n \n
\n )}\n
\n
\n )\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\n\ntype Props = {\n children: any,\n playerState: boolean,\n onUserActiveChanged: (userActive: boolean) => void\n}\n\ntype State = {\n userActive: boolean\n}\n\nconst ACTIVATION_TIMEOUT = 2000\n\nexport class UserActive extends Component {\n elm: HTMLElement\n activationTimeoutId: TimeoutID | null\n userActive = false\n\n constructor () {\n super()\n this.activationTimeoutId = null\n }\n\n componentDidMount () {\n // Listen for activation events\n this.elm.addEventListener('mousedown', this.handleMouseDown)\n this.elm.addEventListener('mousemove', this.handleMouseMove)\n this.elm.addEventListener('touchstart', this.handleTouchStart)\n this.elm.addEventListener('touchmove', this.handleTouchMove)\n }\n\n componentWillReceiveProps (nextProps: Props) {\n if (this.props.playerState !== nextProps.playerState) {\n this.setUserActive()\n }\n }\n\n handleMouseDown = () => {\n this.setUserActive()\n }\n\n handleMouseMove = () => {\n this.setUserActive()\n }\n\n handleTouchStart = () => {\n this.setUserActive()\n }\n\n handleTouchMove = () => {\n this.setUserActive()\n }\n\n setUserActive = () => {\n this.activate()\n if (this.activationTimeoutId) {\n clearTimeout(this.activationTimeoutId)\n }\n this.activationTimeoutId = setTimeout(() => {\n this.activationTimeoutId = null\n this.deactivate()\n }, ACTIVATION_TIMEOUT)\n }\n\n activate () {\n if (!this.userActive) {\n this.userActive = true\n this.props.onUserActiveChanged(true)\n }\n }\n\n deactivate () {\n if (this.userActive) {\n this.userActive = false\n this.props.onUserActiveChanged(false)\n }\n }\n\n render () {\n const { children } = this.props\n\n return (\n
(this.elm = elm)}>\n {children}\n
\n )\n }\n}\n","import type { State, Props } from './types'\n\nexport const actions = {\n activate (state: State, props: Props) {\n switch (state.playerState) {\n case 'NOT_STARTED':\n return { playerState: 'SHOULD_START' }\n case 'USER_PAUSED':\n return {}\n case 'SYSTEM_PAUSED':\n return { playerState: 'SHOULD_PLAY' }\n default:\n props.sendError(`activate triggered from wrong state: ${state.playerState}`)\n return { playerState: 'NOT_STARTED' }\n }\n },\n\n deactivate (state: State) {\n switch (state.playerState) {\n case 'NOT_STARTED':\n case 'SHOULD_START':\n return { playerState: 'NOT_STARTED' }\n case 'USER_PAUSED':\n return {}\n default:\n return { playerState: 'SYSTEM_PAUSED' }\n }\n },\n\n play (state: State, props: Props) {\n switch (state.playerState) {\n case 'NOT_STARTED':\n case 'USER_PAUSED':\n case 'SYSTEM_PAUSED':\n return { playerState: 'SHOULD_START' }\n default:\n props.sendError(`Play triggered from wrong state: ${state.playerState}`)\n return { playerState: 'NOT_STARTED' }\n }\n },\n\n togglePlayback (state: State, props: Props) {\n switch (state.playerState) {\n case 'PLAYING':\n case 'SHOULD_PLAY':\n return { playerState: 'USER_PAUSED' }\n case 'USER_PAUSED':\n case 'SYSTEM_PAUSED':\n return { playerState: 'SHOULD_PLAY' }\n default:\n props.sendError(`Toggle playback from wrong state: ${state.playerState}`)\n return { playerState: 'NOT_STARTED' }\n }\n },\n\n handlePlay () {\n return { playerState: 'PLAYING' }\n },\n\n handlePause (state: State, props: Props) {\n switch (state.playerState) {\n case 'SHOULD_START':\n case 'NOT_STARTED':\n return { playerState: 'NOT_STARTED' }\n case 'USER_PAUSED':\n case 'SYSTEM_PAUSED':\n return {}\n default:\n props.sendError(`Handle pause from unexpected state: ${state.playerState}`)\n return { playerState: 'NOT_STARTED' }\n }\n },\n\n playFailed (state: State, props: Props) {\n switch (state.playerState) {\n case 'SHOULD_START':\n return { playerState: 'NOT_STARTED' }\n case 'SHOULD_PLAY':\n return { playerState: 'SYSTEM_PAUSED' }\n default:\n props.sendError(`Play failed from unexpected state: ${state.playerState}`)\n return { playerState: 'NOT_STARTED' }\n }\n },\n\n handleEnded () {\n return { playerState: 'USER_PAUSED' }\n }\n\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport { connect } from '../../lib/provider'\nimport VideoMedia from './VideoMedia'\nimport MediaControls from './MediaControls'\nimport { UserActive } from './UserActive'\nimport { actions } from './actions'\n\nimport type { Props, State } from './types'\n\nclass VideoPlayer extends Component {\n constructor () {\n super()\n this.state = {\n duration: 0,\n time: 0,\n selectedTime: 0,\n playerState: 'NOT_STARTED',\n userActive: false,\n hasFocus: false\n }\n }\n\n componentWillReceiveProps (nextProps: Props) {\n if (!this.props.active && nextProps.active) {\n this.setState(actions.activate)\n } else if (this.props.active && !nextProps.active) {\n this.setState(actions.deactivate)\n }\n }\n\n handleDurationchange = (duration: number) => {\n if (duration !== 0) {\n this.setState({ duration })\n }\n }\n\n handleTimeupdate = (time: number) => {\n this.setState({ time })\n }\n\n handlePlay = () => {\n this.setState(actions.handlePlay)\n }\n\n handlePause = () => {\n this.setState(actions.handlePause)\n }\n\n handlePlayFailed = () => {\n this.setState(actions.playFailed)\n }\n\n handleFocus = () => {\n this.setState({ hasFocus: true })\n this.props.onControlsFocus(this.props.index)\n }\n\n handleMediaEnded = () => {\n this.setState(actions.handleEnded)\n this.props.onMediaEnded(this.props.index)\n }\n\n handleBlur = () => {\n this.setState({ hasFocus: false })\n }\n\n play = () => {\n this.setState(actions.play)\n }\n\n togglePlayback = () => {\n this.setState(actions.togglePlayback)\n }\n\n handleScrubberPositionUpdate = (position: number) => {\n const time = position * this.state.duration\n this.setState({ time, selectedTime: time })\n }\n\n handleUserActiveChanged = (userActive: boolean) => {\n this.setState({ userActive })\n }\n\n render () {\n const {\n section,\n index,\n visible,\n sectionActive,\n muted,\n isVerticalViewport,\n viewportHeight\n } = this.props\n const controlsActive =\n sectionActive &&\n (this.state.userActive || this.state.playerState === 'USER_PAUSED' || this.state.hasFocus)\n const { playerState } = this.state\n const playing = ['SHOULD_START', 'PLAYING', 'SHOULD_PLAY'].indexOf(playerState) !== -1\n\n return (\n \n \n \n \n )\n }\n}\n\nfunction mapContextToProps (context) {\n const sendGaEvent = context && context.sendGaEvent\n const sendError = context && context.sendError\n return { sendGaEvent, sendError }\n}\n\nexport default connect(mapContextToProps)(VideoPlayer)\n","// @flow\n\nexport function clamp (x: number, min: number, max: number) {\n return Math.max(min, Math.min(x, max))\n}\n","// @flow\n\n/** @jsx h */\n\n/* eslint-disable compat/compat */\n\nimport { Component, h } from 'preact'\nimport SweetScroll from 'sweet-scroll'\nimport style from './App.css'\nimport { toArray } from '../lib/array'\nimport { bem } from '../lib/bem'\nimport { connect } from '../lib/provider'\n\n// Import components\nimport MaxViewportRect from './common/MaxViewportRect'\n\n// Import text section components\nimport HeaderSection from './HeaderSection'\nimport TextSection from './TextSection'\nimport QuoteSection from './QuoteSection'\nimport PlaceholderSection from './PlaceholderSection'\n\n// Import media components\nimport ImageMedia from './ImageMedia'\nimport VideoloopMedia from './VideoloopMedia'\nimport VideoPlayer from './VideoPlayer'\n\nimport type { MediaSection, Text } from './types'\nimport type { Store, Subscription } from '../lib/store'\nimport { clamp } from '../lib/math'\n\nconst NEXT_CARD_REVEAL_HEIGHT = 200\nconst BLOCK_START_MODIFIER = -0.25\nconst BLOCK_END_MODIFIER = 0.75\n\nconst scroller = new SweetScroll({ duration: 1500 })\n\ntype Section = HeaderSection | TextSection | QuoteSection | PlaceholderSection\n\ntype GlobalState = {\n autoPlaySupport: boolean,\n muted: boolean\n}\n\ntype Props = {\n sections: MediaSection[],\n store: Store,\n sendGaEvent: ({ action: string }) => void\n}\n\ntype State = {\n autoPlaySupport: boolean,\n index: number,\n muted: boolean,\n appVisible: boolean,\n appCoversScreen: boolean,\n trackedInitial: boolean,\n playingVideoIndex: number,\n isVerticalViewport: boolean,\n viewportHeight: number | null\n}\n\nclass _App extends Component {\n elm: HTMLDivElement\n storeSubscription: Subscription\n insersectionObserver: any\n sections: Section[]\n reduceMotion: boolean\n\n constructor (props: Props) {\n super()\n this.state = {\n autoPlaySupport: props.store.getState().autoPlaySupport,\n index: 0,\n muted: props.store.getState().muted,\n appVisible: false,\n appCoversScreen: false,\n trackedInitial: false,\n playingVideoIndex: -1,\n isVerticalViewport: true,\n viewportHeight: null\n }\n this.sections = toArray(Array(props.sections.length))\n }\n\n componentDidMount () {\n // Listen to global state\n this.storeSubscription = this.props.store.subscribe(state => {\n this.setState(state)\n })\n\n window.addEventListener('resize', this.handleResize)\n this.handleResize()\n\n // Collect trigger elements\n const triggerElms = this.sections.map(section => section.triggerElm)\n\n // Create intersection observer\n this.insersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.target === this.elm) {\n this.setVisiblity(entry.isIntersecting)\n } else {\n if (entry.isIntersecting) {\n this.setIndex(triggerElms.indexOf(entry.target))\n }\n }\n })\n },\n {\n rootMargin: '-10px -10px -10px -10px',\n threshold: [0]\n }\n )\n\n // Register trigger elements\n triggerElms.forEach(triggerElm =>\n this.insersectionObserver.observe(triggerElm)\n )\n\n // Register app element\n this.insersectionObserver.observe(this.elm)\n this.reduceMotion = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches\n }\n\n componentWillUnmount () {\n // Unsubscribe to global state changes\n this.storeSubscription.unsubscribe()\n window.removeEventListener('resize', this.handleResize)\n\n // Collect trigger elements\n const triggerElms = this.sections.map(section => section.triggerElm)\n\n // Unregister trigger elements\n triggerElms.forEach(triggerElm =>\n this.insersectionObserver.unobserve(triggerElm)\n )\n\n // Unregister app element\n this.insersectionObserver.unobserve(this.elm)\n\n // Disconnect intersection observer\n this.insersectionObserver.disconnect()\n }\n\n checkAppCoverage () {\n const loop = () => {\n if (!this.state.appVisible || this.state.appCoversScreen) {\n return\n }\n requestAnimationFrame(loop)\n const { top, bottom } = this.elm.getBoundingClientRect()\n const visiblePixels = clamp(bottom, 0, window.innerHeight) - clamp(top, 0, window.innerHeight)\n const percentage = visiblePixels / window.innerHeight\n if (percentage >= 0.7) {\n this.setState({ appCoversScreen: true })\n }\n }\n loop()\n }\n\n setIndex = (index: number) => {\n if (this.state.index !== index) {\n this.setState({ index })\n this.props.sendGaEvent({ action: `LOAD_SUCCESS/index:${index}` })\n }\n }\n\n setVisiblity (appVisible: boolean) {\n if (!this.state.trackedInitial && appVisible) {\n this.props.sendGaEvent({ action: appVisible ? 'SCROLL_IN' : 'SCROLL_OUT' })\n this.props.sendGaEvent({ action: `LOAD_SUCCESS/index:${this.state.index}` })\n this.setState({ appVisible, trackedInitial: true })\n } else if (this.state.appVisible !== appVisible) {\n this.props.sendGaEvent({ action: appVisible ? 'SCROLL_IN' : 'SCROLL_OUT' })\n this.setState({ appVisible })\n }\n\n if (appVisible) {\n this.checkAppCoverage()\n } else {\n this.setState({ appCoversScreen: false })\n }\n }\n\n toggleMuted = () => {\n const { index, muted } = this.state\n\n this.props.store.update(state => {\n return { ...state, muted: !muted }\n })\n\n this.props.sendGaEvent({\n action: muted ? `UNMUTE/index:${index}` : `MUTE/index:${index}`\n })\n }\n\n handleResize = (): void => {\n this.setState({\n isVerticalViewport: window.innerWidth / window.innerHeight <= 7 / 8\n })\n }\n\n handleViewportChange = (viewport: any) => {\n if (this.state.viewportHeight !== viewport.height) {\n this.setState({ viewportHeight: viewport.height })\n }\n }\n\n handleMediaFocus = (index: number) => {\n setTimeout(() => {\n if (this.state.index !== index) {\n this.sections[index].triggerElm.scrollIntoView()\n }\n }, 300)\n }\n\n handleMediaEnded = (index: number) => {\n if (this.reduceMotion) {\n return\n }\n const vpHeight = this.state.viewportHeight ? this.state.viewportHeight : 0\n\n if (index + 1 < this.sections.length) {\n const nextCard = this.sections[index + 1].triggerElm\n const offsetTop = window.scrollY + nextCard.getBoundingClientRect().top\n const top = offsetTop - vpHeight + NEXT_CARD_REVEAL_HEIGHT\n scroller.to({ top })\n } else {\n const bottom = this.elm.offsetTop + this.elm.offsetHeight\n const top = bottom - (vpHeight / 2)\n scroller.to({ top })\n }\n }\n\n renderTextSection (text: Text, index: number) {\n const { viewportHeight } = this.state\n\n // Start offset should only be applied to the first card\n const shouldHaveOffsetStart = index === 0\n // End offset should only be applied to the last card IF there are more than one card\n const shouldHaveOffsetEnd = this.props.sections.length !== 1 && this.props.sections.length - 1 === index\n\n const sectionProps = {\n ...text,\n ref: section => (this.sections[index] = section),\n offsetEnd: viewportHeight && shouldHaveOffsetEnd ? viewportHeight * BLOCK_END_MODIFIER : viewportHeight,\n offsetStart: viewportHeight && shouldHaveOffsetStart ? viewportHeight * BLOCK_START_MODIFIER : 0\n }\n\n if (text.type === 'quote') {\n return \n } else if (text.type === 'text') {\n if (sectionProps.header && !sectionProps.body) {\n return \n }\n return \n }\n\n return
Ukjent teksttype: «{text.type}»
\n }\n\n render () {\n const { sections } = this.props\n const { viewportHeight, appVisible, appCoversScreen } = this.state\n\n if (sections.length === 0) return null\n\n const vhString = viewportHeight !== null ? `${viewportHeight}px` : null\n\n return (\n (this.elm = elm)}\n style={{ paddingTop: vhString }}\n >\n \n {sections.map((section, index) => {\n const sectionActive = index === this.state.index\n const visible = index <= this.state.index && index > this.state.index - 2\n const mediaContainerInlineStyle = {\n height: vhString,\n marginTop: vhString ? `-${vhString}` : null,\n pointerEvents: sectionActive ? 'auto' : 'none'\n }\n switch (section.type) {\n case 'video':\n return [\n sections.length === 1 ? null : (\n (this.sections[index] = section)}\n viewportHeight={viewportHeight}\n first={index === 0}\n />\n ),\n \n \n
\n ]\n\n case 'image':\n return [\n this.renderTextSection(section.text, index),\n \n \n
\n ]\n case 'videoloop':\n return [\n this.renderTextSection(section.text, index),\n \n \n
\n ]\n\n default:\n return [\n
Ukjent seksjon: «{section.type}»
,\n \n
\n Ukjent seksjon: «{section.type}»\n
\n
\n ]\n }\n })}\n
\n )\n }\n}\n\nfunction mapContextToProps (context) {\n const sendGaEvent = context && context.sendGaEvent\n return { sendGaEvent }\n}\n\nexport const App = connect(mapContextToProps)(_App)\n","// @flow\n\nimport StackTrace from 'stacktrace-js'\n\nexport function parseStack (error: Error) {\n return StackTrace\n .fromError(error)\n .then((stackframes) => {\n return stackframes\n .map((stackframe) => stackframe.toString())\n .join('\\n')\n })\n}\n","// @flow\n\nconst POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g\n\nexport function getContextId (url: string): ?string {\n return extractPolopolyIdFromString(url)\n}\n\nfunction extractPolopolyIdFromString (str: string): ?string {\n const matches = str.match(POLOPOLY_ID_REGEX)\n if (matches && matches.length) {\n return matches[0]\n }\n return null\n}\n","/* global __HOT__ */\n\n/** @jsx h */\n\nimport { testPositionSticky, testVideoAutoPlay } from '@nrk/feature-tests'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils'\nimport { h, render } from 'preact'\nimport { toArray } from '../../shared/lib/array'\nimport { createUniqueId } from '../../shared/lib/id'\nimport { createStore } from '../../shared/lib/store'\nimport { App } from '../../shared/story/App'\nimport { createErrorReporter } from '../lib/error-reporting'\nimport { getContextId } from '../lib/getContextId'\nimport { parseStack } from '../lib/parseStack'\nimport { Provider as CustomProvider } from '../../shared/lib/provider'\nimport { getOptions, extractIdFromSmartUrl } from '../../shared/story/VideoPlayer/VideoMedia/Ludo'\n\nconst rootElementClassName = 'dh-visual-story-xl-storyRoot'\n\nwindow[rootElementClassName] = window[rootElementClassName] || {}\n\nfunction findElements () {\n return toArray(document.getElementsByClassName(rootElementClassName)).filter(el => !isInitialized(el))\n}\n\nfunction isInitialized (el) {\n return el.id && window[rootElementClassName][el.id]\n}\n\nfunction addLudo () {\n const require = window.requirejs\n require(['https://static.nrk.no/ludo/latest/ludo.js'], (ludo) => {\n if (ludo) {\n const videos = Array.from(document.querySelectorAll('[data-potionid]'))\n videos.forEach(video => {\n const id = extractIdFromSmartUrl(video.dataset.potionid)\n const options = {...getOptions(), controls: true}\n ludo(video, id, options)\n })\n }\n })\n}\n\n/*\n Remove src from safari to prevent multiple downloads of same src\n*/\nfunction addSrcToImg (el) {\n try {\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n if (!isSafari) {\n var pictureImgElements = el.querySelectorAll('picture img');\n [].slice.call(pictureImgElements).forEach(function (img) {\n img.src = img.getAttribute('data-src')\n })\n }\n } catch (e) {\n\n }\n}\n\nexport function initStories () {\n findElements().forEach(el => {\n addSrcToImg(el)\n el.id = createUniqueId()\n // Extract preloaded state sent from server\n const preloadedState = JSON.parse(el.dataset.preloadedState)\n const { errorEventTrackingEnabled, story } = preloadedState\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n const sendGaEvent = (eventObj) => {\n googleAnalyticsTracker.sendEvent({\n category: 'dh-visual-xl',\n ...eventObj\n })\n }\n\n const sendError = (message, error) => {\n if (error) {\n parseStack(error)\n .then(stack => simpleErrorReport.sendErrorReport({ message, stack }))\n .catch(e => simpleErrorReport.sendErrorReport({ message }))\n } else {\n simpleErrorReport.sendErrorReport({ message })\n }\n }\n\n const devicePixelRatio = window.devicePixelRatio || 1\n sendGaEvent({\n action: `DEVICE_PIXELS_RATIO`,\n value: devicePixelRatio,\n nonInteraction: 1\n })\n\n const simpleErrorReport = createErrorReporter(errorEventTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n // Get or create global store instance\n const storeKey = rootElementClassName + '__store'\n const store = window[storeKey] = (window[storeKey] || createStore({ muted: true, autoPlaySupport: false }))\n\n // Test if the browser is modern enough\n testPositionSticky(supported => {\n if (!supported) {\n // Add ludo for IE\n addLudo()\n sendGaEvent({ action: `NO_STICKY_SUPPORT` })\n return\n }\n\n // Add JS class name\n el.className = el.className.replace('noJs', 'js')\n window[rootElementClassName][el.id] = true\n\n // Test video autoplay support\n testVideoAutoPlay(supported => {\n if (supported) {\n store.update(state => ({ ...state, autoPlaySupport: true }))\n } else {\n sendGaEvent({ action: `NO_AUTOPLAY_SUPPORT` })\n }\n })\n\n try {\n // ... and render with the exact same props\n render(\n \n \n \n , el, el.firstChild)\n } catch (e) {\n sendError('Error rendering VHXL', e)\n }\n })\n\n // Enable webpack hot-reloading\n if (__HOT__) {\n // Reload CSS file\n require('webpack/hot/emitter').on('webpackHotUpdate', currentHash => {\n Array.from(document.querySelectorAll('link[href][rel=stylesheet]')).forEach(link => {\n const nextStyleHref = link.href.replace(/(\\?\\d+)?$/, `?${Date.now()}`)\n link.href = nextStyleHref\n })\n })\n\n // Reload and re-render React application\n module.hot.accept('./index', () => {\n const App = require('../../shared/story/App').default\n const { Provider: CustomProvider } = require('../../shared/lib/provider')\n render(\n \n \n , el, el.firstChild)\n })\n }\n })\n}\n","// @flow\nimport { SimpleErrorReport } from '@nrk/dh-simple-error-report'\nimport { parseStack } from './parseStack'\n\nexport function createErrorReporter (isErrorReportingEnabled: boolean): SimpleErrorReport {\n return new SimpleErrorReport({\n name: 'visual-story-xl',\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled,\n parseStack\n })\n}\n","// @flow\n\n/** @jsx h */\n\nimport { Component, h } from 'preact'\nimport type { Store, Subscription } from '../lib/store'\n\nimport style from './AudioButton.css'\nimport { connect } from '../lib/provider'\nimport { bem } from '../lib/bem'\nimport { nrkMediaVolumeMuted, nrkMediaVolume3 } from '@nrk/core-icons'\n\ntype GlobalState = {\n autoPlaySupport: boolean,\n muted: boolean\n}\n\ntype Props = {\n store: Store,\n sendGaEvent: ({ action: string, label: string }) => void\n}\n\ntype State = {\n muted: boolean\n}\n\nexport class _Button extends Component {\n storeSubscription: Subscription\n\n constructor (props: Props) {\n super()\n this.state = { muted: props.store.getState().muted }\n }\n\n componentDidMount () {\n // Listen to global state\n this.storeSubscription = this.props.store.subscribe(state => {\n this.setState({ muted: state.muted })\n })\n }\n\n toggleMuted = () => {\n const { muted } = this.state\n\n this.props.store.update(state => {\n return { ...state, muted: !muted }\n })\n\n this.props.sendGaEvent({\n action: muted ? `UNMUTE` : `MUTE`,\n label: 'Mute button'\n })\n }\n\n render () {\n const { muted } = this.props.store.getState()\n const className = `nrk-button ${bem(style.audioMuteButton, muted && 'muted')}`\n const currentSvg = muted ? nrkMediaVolumeMuted : nrkMediaVolume3\n return (\n
\n
\n
Artikkelen inneholder lyd
\n
\n \n
\n
\n
\n )\n }\n}\n\nfunction mapContextToProps (context) {\n const sendGaEvent = context && context.sendGaEvent\n return { sendGaEvent }\n}\n\nexport const AudioButton = connect(mapContextToProps)(_Button)\n","\n/** @jsx h */\n\nimport { h, render } from 'preact'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils/dist/dh-analytics-utils.commonjs'\nimport { testPositionSticky } from '@nrk/feature-tests/dist/feature-tests.commonjs'\nimport { getContextId } from '../lib/getContextId'\nimport { Provider as CustomProvider } from '../../shared/lib/provider'\nimport { toArray } from '../../shared/lib/array'\nimport { createUniqueId } from '../../shared/lib/id'\nimport { createStore } from '../../shared/lib/store'\nimport { AudioButton } from '../../shared/audioButton/AudioButton'\n\nconst storyElementClassName = 'dh-visual-story-xl-v1-storyRoot'\nconst buttonElementClassName = 'dh-visual-story-xl-v1-buttonRoot'\nwindow[buttonElementClassName] = window[buttonElementClassName] || {}\n\nfunction findElements () {\n return toArray(document.getElementsByClassName(buttonElementClassName)).filter(el => !isInitialized(el))\n}\n\nfunction isInitialized (el) {\n return el.id && window[buttonElementClassName][el.id]\n}\n\nexport function initButton () {\n findElements().forEach(el => {\n el.id = createUniqueId()\n\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = JSON.parse(el.getAttribute('data-metadata'))\n const { title, selfId, published } = metadata\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document.location.href)\n }\n })\n\n const sendGaEvent = (eventObj) => {\n googleAnalyticsTracker.sendEvent({\n category: 'dh-visual-xl',\n ...eventObj\n })\n }\n\n // Get or create global vhxl store instance\n const storeKey = storyElementClassName + '__store'\n const store = window[storeKey] = (window[storeKey] || createStore({ muted: true, autoPlaySupport: false }))\n\n // Test if the browser is modern enough\n testPositionSticky(supported => {\n if (!supported) {\n sendGaEvent({ action: `NO_STICKY_SUPPORT`, label: 'Mute button' })\n return\n }\n\n sendGaEvent({action: 'SHOW_MUTE_BUTTON', label: 'Mute button'})\n\n // Add JS class name\n el.className = el.className.replace('noJs', 'js')\n window[buttonElementClassName][el.id] = true\n render(\n \n , el, el.firstChild)\n })\n })\n}\n","/* global __HOT__ */\n\nimport domready from 'domready'\nimport { initStories } from './story'\nimport { initButton } from './audioButton'\n\nfunction init () {\n initStories()\n initButton()\n}\n\nif (__HOT__) {\n require('preact/debug')\n}\n\ndomready(init)\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 removed from this array, by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var shiftNextLine = function() {\n var lineContents = remainingLines.shift();\n // The last line of a file might not have a newline.\n var newLine = remainingLines.shift() || \"\";\n return lineContents + newLine;\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[0];\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[0] = 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[0];\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[0] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLines.length > 0) {\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.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","/* -*- 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\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.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 */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.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 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\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 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","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 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');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\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","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace-gps', ['source-map', 'stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('source-map/lib/source-map-consumer'), require('stackframe'));\n } else {\n root.StackTraceGPS = factory(root.SourceMap || root.sourceMap, root.StackFrame);\n }\n}(this, function(SourceMap, StackFrame) {\n 'use strict';\n\n /**\n * Make a X-Domain request to url and callback.\n *\n * @param {String} url\n * @returns {Promise} with response text if fulfilled\n */\n function _xdr(url) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.open('get', url);\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if ((req.status >= 200 && req.status < 300) ||\n (url.substr(0, 7) === 'file://' && req.responseText)) {\n resolve(req.responseText);\n } else {\n reject(new Error('HTTP status: ' + req.status + ' retrieving ' + url));\n }\n }\n };\n req.send();\n });\n\n }\n\n /**\n * Convert a Base64-encoded string into its original representation.\n * Used for inline sourcemaps.\n *\n * @param {String} b64str Base-64 encoded string\n * @returns {String} original representation of the base64-encoded string.\n */\n function _atob(b64str) {\n if (typeof window !== 'undefined' && window.atob) {\n return window.atob(b64str);\n } else {\n throw new Error('You must supply a polyfill for window.atob in this environment');\n }\n }\n\n function _parseJson(string) {\n if (typeof JSON !== 'undefined' && JSON.parse) {\n return JSON.parse(string);\n } else {\n throw new Error('You must supply a polyfill for JSON.parse in this environment');\n }\n }\n\n function _findFunctionName(source, lineNumber/*, columnNumber*/) {\n var syntaxes = [\n // {name} = function ({args}) TODO args capture\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*function\\b/,\n // function {name}({args}) m[1]=name m[2]=args\n /function\\s+([^('\"`]*?)\\s*\\(([^)]*)\\)/,\n // {name} = eval()\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*(?:eval|new Function)\\b/,\n // fn_name() {\n /\\b(?!(?:if|for|switch|while|with|catch)\\b)(?:(?:static)\\s+)?(\\S+)\\s*\\(.*?\\)\\s*\\{/,\n // {name} = () => {\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*\\(.*?\\)\\s*=>/\n ];\n var lines = source.split('\\n');\n\n // Walk backwards in the source lines until we find the line which matches one of the patterns above\n var code = '';\n var maxLines = Math.min(lineNumber, 20);\n for (var i = 0; i < maxLines; ++i) {\n // lineNo is 1-based, source[] is 0-based\n var line = lines[lineNumber - i - 1];\n var commentPos = line.indexOf('//');\n if (commentPos >= 0) {\n line = line.substr(0, commentPos);\n }\n\n if (line) {\n code = line + code;\n var len = syntaxes.length;\n for (var index = 0; index < len; index++) {\n var m = syntaxes[index].exec(code);\n if (m && m[1]) {\n return m[1];\n }\n }\n }\n }\n return undefined;\n }\n\n function _ensureSupportedEnvironment() {\n if (typeof Object.defineProperty !== 'function' || typeof Object.create !== 'function') {\n throw new Error('Unable to consume source maps in older browsers');\n }\n }\n\n function _ensureStackFrameIsLegit(stackframe) {\n if (typeof stackframe !== 'object') {\n throw new TypeError('Given StackFrame is not an object');\n } else if (typeof stackframe.fileName !== 'string') {\n throw new TypeError('Given file name is not a String');\n } else if (typeof stackframe.lineNumber !== 'number' ||\n stackframe.lineNumber % 1 !== 0 ||\n stackframe.lineNumber < 1) {\n throw new TypeError('Given line number must be a positive integer');\n } else if (typeof stackframe.columnNumber !== 'number' ||\n stackframe.columnNumber % 1 !== 0 ||\n stackframe.columnNumber < 0) {\n throw new TypeError('Given column number must be a non-negative integer');\n }\n return true;\n }\n\n function _findSourceMappingURL(source) {\n var sourceMappingUrlRegExp = /\\/\\/[#@] ?sourceMappingURL=([^\\s'\"]+)\\s*$/mg;\n var lastSourceMappingUrl;\n var matchSourceMappingUrl;\n while (matchSourceMappingUrl = sourceMappingUrlRegExp.exec(source)) { // jshint ignore:line\n lastSourceMappingUrl = matchSourceMappingUrl[1];\n }\n if (lastSourceMappingUrl) {\n return lastSourceMappingUrl;\n } else {\n throw new Error('sourceMappingURL not found');\n }\n }\n\n function _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache) {\n return new Promise(function(resolve, reject) {\n var loc = sourceMapConsumer.originalPositionFor({\n line: stackframe.lineNumber,\n column: stackframe.columnNumber\n });\n\n if (loc.source) {\n // cache mapped sources\n var mappedSource = sourceMapConsumer.sourceContentFor(loc.source);\n if (mappedSource) {\n sourceCache[loc.source] = mappedSource;\n }\n\n resolve(\n // given stackframe and source location, update stackframe\n new StackFrame({\n functionName: loc.name || stackframe.functionName,\n args: stackframe.args,\n fileName: loc.source,\n lineNumber: loc.line,\n columnNumber: loc.column\n }));\n } else {\n reject(new Error('Could not get original source for given stackframe and source map'));\n }\n });\n }\n\n /**\n * @constructor\n * @param {Object} opts\n * opts.sourceCache = {url: \"Source String\"} => preload source cache\n * opts.sourceMapConsumerCache = {/path/file.js.map: SourceMapConsumer}\n * opts.offline = True to prevent network requests.\n * Best effort without sources or source maps.\n * opts.ajax = Promise returning function to make X-Domain requests\n */\n return function StackTraceGPS(opts) {\n if (!(this instanceof StackTraceGPS)) {\n return new StackTraceGPS(opts);\n }\n opts = opts || {};\n\n this.sourceCache = opts.sourceCache || {};\n this.sourceMapConsumerCache = opts.sourceMapConsumerCache || {};\n\n this.ajax = opts.ajax || _xdr;\n\n this._atob = opts.atob || _atob;\n\n this._get = function _get(location) {\n return new Promise(function(resolve, reject) {\n var isDataUrl = location.substr(0, 5) === 'data:';\n if (this.sourceCache[location]) {\n resolve(this.sourceCache[location]);\n } else if (opts.offline && !isDataUrl) {\n reject(new Error('Cannot make network requests in offline mode'));\n } else {\n if (isDataUrl) {\n // data URLs can have parameters.\n // see http://tools.ietf.org/html/rfc2397\n var supportedEncodingRegexp =\n /^data:application\\/json;([\\w=:\"-]+;)*base64,/;\n var match = location.match(supportedEncodingRegexp);\n if (match) {\n var sourceMapStart = match[0].length;\n var encodedSource = location.substr(sourceMapStart);\n var source = this._atob(encodedSource);\n this.sourceCache[location] = source;\n resolve(source);\n } else {\n reject(new Error('The encoding of the inline sourcemap is not supported'));\n }\n } else {\n var xhrPromise = this.ajax(location, {method: 'get'});\n // Cache the Promise to prevent duplicate in-flight requests\n this.sourceCache[location] = xhrPromise;\n xhrPromise.then(resolve, reject);\n }\n }\n }.bind(this));\n };\n\n /**\n * Creating SourceMapConsumers is expensive, so this wraps the creation of a\n * SourceMapConsumer in a per-instance cache.\n *\n * @param {String} sourceMappingURL = URL to fetch source map from\n * @param {String} defaultSourceRoot = Default source root for source map if undefined\n * @returns {Promise} that resolves a SourceMapConsumer\n */\n this._getSourceMapConsumer = function _getSourceMapConsumer(sourceMappingURL, defaultSourceRoot) {\n return new Promise(function(resolve, reject) {\n if (this.sourceMapConsumerCache[sourceMappingURL]) {\n resolve(this.sourceMapConsumerCache[sourceMappingURL]);\n } else {\n var sourceMapConsumerPromise = new Promise(function(resolve, reject) {\n return this._get(sourceMappingURL).then(function(sourceMapSource) {\n if (typeof sourceMapSource === 'string') {\n sourceMapSource = _parseJson(sourceMapSource.replace(/^\\)\\]\\}'/, ''));\n }\n if (typeof sourceMapSource.sourceRoot === 'undefined') {\n sourceMapSource.sourceRoot = defaultSourceRoot;\n }\n\n resolve(new SourceMap.SourceMapConsumer(sourceMapSource));\n }, reject);\n }.bind(this));\n this.sourceMapConsumerCache[sourceMappingURL] = sourceMapConsumerPromise;\n resolve(sourceMapConsumerPromise);\n }\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, enhance function name and use source maps for a\n * better StackFrame.\n *\n * @param {StackFrame} stackframe object\n * @returns {Promise} that resolves with with source-mapped StackFrame\n */\n this.pinpoint = function StackTraceGPS$$pinpoint(stackframe) {\n return new Promise(function(resolve, reject) {\n this.getMappedLocation(stackframe).then(function(mappedStackFrame) {\n function resolveMappedStackFrame() {\n resolve(mappedStackFrame);\n }\n\n this.findFunctionName(mappedStackFrame)\n .then(resolve, resolveMappedStackFrame)\n ['catch'](resolveMappedStackFrame);\n }.bind(this), reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, guess function name from location information.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.findFunctionName = function StackTraceGPS$$findFunctionName(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureStackFrameIsLegit(stackframe);\n this._get(stackframe.fileName).then(function getSourceCallback(source) {\n var lineNumber = stackframe.lineNumber;\n var columnNumber = stackframe.columnNumber;\n var guessedFunctionName = _findFunctionName(source, lineNumber, columnNumber);\n // Only replace functionName if we found something\n if (guessedFunctionName) {\n resolve(new StackFrame({\n functionName: guessedFunctionName,\n args: stackframe.args,\n fileName: stackframe.fileName,\n lineNumber: lineNumber,\n columnNumber: columnNumber\n }));\n } else {\n resolve(stackframe);\n }\n }, reject)['catch'](reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, seek source-mapped location and return new enhanced StackFrame.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.getMappedLocation = function StackTraceGPS$$getMappedLocation(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureSupportedEnvironment();\n _ensureStackFrameIsLegit(stackframe);\n\n var sourceCache = this.sourceCache;\n var fileName = stackframe.fileName;\n this._get(fileName).then(function(source) {\n var sourceMappingURL = _findSourceMappingURL(source);\n var isDataUrl = sourceMappingURL.substr(0, 5) === 'data:';\n var defaultSourceRoot = fileName.substring(0, fileName.lastIndexOf('/') + 1);\n\n if (sourceMappingURL[0] !== '/' && !isDataUrl && !(/^https?:\\/\\/|^\\/\\//i).test(sourceMappingURL)) {\n sourceMappingURL = defaultSourceRoot + sourceMappingURL;\n }\n\n return this._getSourceMapConsumer(sourceMappingURL, defaultSourceRoot)\n .then(function(sourceMapConsumer) {\n return _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache)\n .then(resolve)['catch'](function() {\n resolve(stackframe);\n });\n });\n }.bind(this), reject)['catch'](reject);\n }.bind(this));\n };\n };\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n}(this, function(StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({functionName: RegExp.$1 || undefined, args: args}));\n } else {\n stack.push(new StackFrame({args: args}));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n return stack;\n }\n };\n}));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n var tokens = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","require('./_set-species')('Array');\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\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 findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\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","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\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","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","require('../modules/es6.string.iterator');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nmodule.exports = require('../modules/_core').Array;\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\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","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","// 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","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\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","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\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","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\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 has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\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","// 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","'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","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","// 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","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nmodule.exports = require('../modules/_core').Promise;\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 observering 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 this.intersectionRatio = intersectionArea / targetArea;\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 visibilty 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 executiong, 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 elemnt (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","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimArrayPrototypeIncludes() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tArray.prototype,\n\t\t{ includes: polyfill },\n\t\t{ includes: function () { return Array.prototype.includes !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","'use strict';\n\nvar has = require('has');\nvar regexExec = RegExp.prototype.exec;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar tryRegexExecCall = function tryRegexExec(value) {\n\ttry {\n\t\tvar lastIndex = value.lastIndex;\n\t\tvalue.lastIndex = 0;\n\n\t\tregexExec.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\tvalue.lastIndex = lastIndex;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar regexClass = '[object RegExp]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isRegex(value) {\n\tif (!value || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\tif (!hasToStringTag) {\n\t\treturn toStr.call(value) === regexClass;\n\t}\n\n\tvar descriptor = gOPD(value, 'lastIndex');\n\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\tif (!hasLastIndexDataProperty) {\n\t\treturn false;\n\t}\n\n\treturn tryRegexExecCall(value);\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable');\n\n// https://es5.github.io/#x8.12\nvar ES5internalSlots = {\n\t'[[DefaultValue]]': function (O, hint) {\n\t\tvar actualHint = hint || (toStr.call(O) === '[object Date]' ? String : Number);\n\n\t\tif (actualHint === String || actualHint === Number) {\n\t\t\tvar methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\t\t\tvar value, i;\n\t\t\tfor (i = 0; i < methods.length; ++i) {\n\t\t\t\tif (isCallable(O[methods[i]])) {\n\t\t\t\t\tvalue = O[methods[i]]();\n\t\t\t\t\tif (isPrimitive(value)) {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new TypeError('No default value');\n\t\t}\n\t\tthrow new TypeError('invalid [[DefaultValue]] hint supplied');\n\t}\n};\n\n// https://es5.github.io/#x9\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\treturn ES5internalSlots['[[DefaultValue]]'](input, PreferredType);\n};\n","'use strict';\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\n// https://es5.github.io/#x9\nvar ES5 = {\n\tToPrimitive: toPrimitive,\n\n\tToBoolean: function ToBoolean(value) {\n\t\treturn !!value;\n\t},\n\tToNumber: function ToNumber(value) {\n\t\treturn Number(value);\n\t},\n\tToInteger: function ToInteger(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number)) { return 0; }\n\t\tif (number === 0 || !$isFinite(number)) { return number; }\n\t\treturn sign(number) * Math.floor(Math.abs(number));\n\t},\n\tToInt32: function ToInt32(x) {\n\t\treturn this.ToNumber(x) >> 0;\n\t},\n\tToUint32: function ToUint32(x) {\n\t\treturn this.ToNumber(x) >>> 0;\n\t},\n\tToUint16: function ToUint16(value) {\n\t\tvar number = this.ToNumber(value);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x10000);\n\t},\n\tToString: function ToString(value) {\n\t\treturn String(value);\n\t},\n\tToObject: function ToObject(value) {\n\t\tthis.CheckObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\tCheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n\t\t/* jshint eqnull:true */\n\t\tif (value == null) {\n\t\t\tthrow new TypeError(optMessage || 'Cannot call method on ' + value);\n\t\t}\n\t\treturn value;\n\t},\n\tIsCallable: IsCallable,\n\tSameValue: function SameValue(x, y) {\n\t\tif (x === y) { // 0 === -0, but they are not identical.\n\t\t\tif (x === 0) { return 1 / x === 1 / y; }\n\t\t\treturn true;\n\t\t}\n\t\treturn $isNaN(x) && $isNaN(y);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/5.1/#sec-8\n\tType: function Type(x) {\n\t\tif (x === null) {\n\t\t\treturn 'Null';\n\t\t}\n\t\tif (typeof x === 'undefined') {\n\t\t\treturn 'Undefined';\n\t\t}\n\t\tif (typeof x === 'function' || typeof x === 'object') {\n\t\t\treturn 'Object';\n\t\t}\n\t\tif (typeof x === 'number') {\n\t\t\treturn 'Number';\n\t\t}\n\t\tif (typeof x === 'boolean') {\n\t\t\treturn 'Boolean';\n\t\t}\n\t\tif (typeof x === 'string') {\n\t\t\treturn 'String';\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n\tIsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n\t\tif (this.Type(Desc) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tvar allowed = {\n\t\t\t'[[Configurable]]': true,\n\t\t\t'[[Enumerable]]': true,\n\t\t\t'[[Get]]': true,\n\t\t\t'[[Set]]': true,\n\t\t\t'[[Value]]': true,\n\t\t\t'[[Writable]]': true\n\t\t};\n\t\t// jscs:disable\n\t\tfor (var key in Desc) { // eslint-disable-line\n\t\t\tif (has(Desc, key) && !allowed[key]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// jscs:enable\n\t\tvar isData = has(Desc, '[[Value]]');\n\t\tvar IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\t\tif (isData && IsAccessor) {\n\t\t\tthrow new TypeError('Property Descriptors may not be both accessor and data descriptors');\n\t\t}\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n\tIsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n\tIsDataDescriptor: function IsDataDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n\tIsGenericDescriptor: function IsGenericDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n\tFromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n\t\tif (typeof Desc === 'undefined') {\n\t\t\treturn Desc;\n\t\t}\n\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsDataDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tvalue: Desc['[[Value]]'],\n\t\t\t\twritable: !!Desc['[[Writable]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else if (this.IsAccessorDescriptor(Desc)) {\n\t\t\treturn {\n\t\t\t\tget: Desc['[[Get]]'],\n\t\t\t\tset: Desc['[[Set]]'],\n\t\t\t\tenumerable: !!Desc['[[Enumerable]]'],\n\t\t\t\tconfigurable: !!Desc['[[Configurable]]']\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n\tToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n\t\tif (this.Type(Obj) !== 'Object') {\n\t\t\tthrow new TypeError('ToPropertyDescriptor requires an object');\n\t\t}\n\n\t\tvar desc = {};\n\t\tif (has(Obj, 'enumerable')) {\n\t\t\tdesc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n\t\t}\n\t\tif (has(Obj, 'configurable')) {\n\t\t\tdesc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n\t\t}\n\t\tif (has(Obj, 'value')) {\n\t\t\tdesc['[[Value]]'] = Obj.value;\n\t\t}\n\t\tif (has(Obj, 'writable')) {\n\t\t\tdesc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n\t\t}\n\t\tif (has(Obj, 'get')) {\n\t\t\tvar getter = Obj.get;\n\t\t\tif (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n\t\t\t\tthrow new TypeError('getter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Get]]'] = getter;\n\t\t}\n\t\tif (has(Obj, 'set')) {\n\t\t\tvar setter = Obj.set;\n\t\t\tif (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n\t\t\t\tthrow new TypeError('setter must be a function');\n\t\t\t}\n\t\t\tdesc['[[Set]]'] = setter;\n\t\t}\n\n\t\tif ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n\t\t\tthrow new TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n\t\t}\n\t\treturn desc;\n\t}\n};\n\nmodule.exports = ES5;\n","module.exports = function isPrimitive(value) {\n\treturn value === null || (typeof value !== 'function' && typeof value !== 'object');\n};\n","var has = Object.prototype.hasOwnProperty;\nmodule.exports = function assign(target, source) {\n\tif (Object.assign) {\n\t\treturn Object.assign(target, source);\n\t}\n\tfor (var key in source) {\n\t\tif (has.call(source, key)) {\n\t\t\ttarget[key] = source[key];\n\t\t}\n\t}\n\treturn target;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') { return false; }\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') { return true; }\n\t\tif (toStr.call(value) !== '[object Symbol]') { return false; }\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false;\n\t};\n}\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateObject(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) { return false; }\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar isPrimitive = require('./helpers/isPrimitive');\nvar isCallable = require('is-callable');\nvar isDate = require('is-date-object');\nvar isSymbol = require('is-symbol');\n\nvar ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) {\n\tif (typeof O === 'undefined' || O === null) {\n\t\tthrow new TypeError('Cannot call method on ' + O);\n\t}\n\tif (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) {\n\t\tthrow new TypeError('hint must be \"string\" or \"number\"');\n\t}\n\tvar methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n\tvar method, result, i;\n\tfor (i = 0; i < methodNames.length; ++i) {\n\t\tmethod = O[methodNames[i]];\n\t\tif (isCallable(method)) {\n\t\t\tresult = method.call(O);\n\t\t\tif (isPrimitive(result)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError('No default value');\n};\n\nvar GetMethod = function GetMethod(O, P) {\n\tvar func = O[P];\n\tif (func !== null && typeof func !== 'undefined') {\n\t\tif (!isCallable(func)) {\n\t\t\tthrow new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function');\n\t\t}\n\t\treturn func;\n\t}\n};\n\n// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive\nmodule.exports = function ToPrimitive(input, PreferredType) {\n\tif (isPrimitive(input)) {\n\t\treturn input;\n\t}\n\tvar hint = 'default';\n\tif (arguments.length > 1) {\n\t\tif (PreferredType === String) {\n\t\t\thint = 'string';\n\t\t} else if (PreferredType === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t}\n\n\tvar exoticToPrim;\n\tif (hasSymbols) {\n\t\tif (Symbol.toPrimitive) {\n\t\t\texoticToPrim = GetMethod(input, Symbol.toPrimitive);\n\t\t} else if (isSymbol(input)) {\n\t\t\texoticToPrim = Symbol.prototype.valueOf;\n\t\t}\n\t}\n\tif (typeof exoticToPrim !== 'undefined') {\n\t\tvar result = exoticToPrim.call(input, hint);\n\t\tif (isPrimitive(result)) {\n\t\t\treturn result;\n\t\t}\n\t\tthrow new TypeError('unable to convert exotic object to primitive');\n\t}\n\tif (hint === 'default' && (isDate(input) || isSymbol(input))) {\n\t\thint = 'string';\n\t}\n\treturn ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar has = require('has');\nvar toPrimitive = require('es-to-primitive/es6');\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar $isNaN = require('./helpers/isNaN');\nvar $isFinite = require('./helpers/isFinite');\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\n\nvar assign = require('./helpers/assign');\nvar sign = require('./helpers/sign');\nvar mod = require('./helpers/mod');\nvar isPrimitive = require('./helpers/isPrimitive');\nvar parseInteger = parseInt;\nvar bind = require('function-bind');\nvar arraySlice = bind.call(Function.call, Array.prototype.slice);\nvar strSlice = bind.call(Function.call, String.prototype.slice);\nvar isBinary = bind.call(Function.call, RegExp.prototype.test, /^0b[01]+$/i);\nvar isOctal = bind.call(Function.call, RegExp.prototype.test, /^0o[0-7]+$/i);\nvar regexExec = bind.call(Function.call, RegExp.prototype.exec);\nvar nonWS = ['\\u0085', '\\u200b', '\\ufffe'].join('');\nvar nonWSregex = new RegExp('[' + nonWS + ']', 'g');\nvar hasNonWS = bind.call(Function.call, RegExp.prototype.test, nonWSregex);\nvar invalidHexLiteral = /^[-+]0x[0-9a-f]+$/i;\nvar isInvalidHexLiteral = bind.call(Function.call, RegExp.prototype.test, invalidHexLiteral);\n\n// whitespace from: http://es5.github.io/#x15.5.4.20\n// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324\nvar ws = [\n\t'\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003',\n\t'\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028',\n\t'\\u2029\\uFEFF'\n].join('');\nvar trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g');\nvar replace = bind.call(Function.call, String.prototype.replace);\nvar trim = function (value) {\n\treturn replace(value, trimRegex, '');\n};\n\nvar ES5 = require('./es5');\n\nvar hasRegExpMatcher = require('is-regex');\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-abstract-operations\nvar ES6 = assign(assign({}, ES5), {\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-call-f-v-args\n\tCall: function Call(F, V) {\n\t\tvar args = arguments.length > 2 ? arguments[2] : [];\n\t\tif (!this.IsCallable(F)) {\n\t\t\tthrow new TypeError(F + ' is not a function');\n\t\t}\n\t\treturn F.apply(V, args);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toprimitive\n\tToPrimitive: toPrimitive,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toboolean\n\t// ToBoolean: ES5.ToBoolean,\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-tonumber\n\tToNumber: function ToNumber(argument) {\n\t\tvar value = isPrimitive(argument) ? argument : toPrimitive(argument, Number);\n\t\tif (typeof value === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a number');\n\t\t}\n\t\tif (typeof value === 'string') {\n\t\t\tif (isBinary(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 2));\n\t\t\t} else if (isOctal(value)) {\n\t\t\t\treturn this.ToNumber(parseInteger(strSlice(value, 2), 8));\n\t\t\t} else if (hasNonWS(value) || isInvalidHexLiteral(value)) {\n\t\t\t\treturn NaN;\n\t\t\t} else {\n\t\t\t\tvar trimmed = trim(value);\n\t\t\t\tif (trimmed !== value) {\n\t\t\t\t\treturn this.ToNumber(trimmed);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Number(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tointeger\n\t// ToInteger: ES5.ToNumber,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint32\n\t// ToInt32: ES5.ToInt32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint32\n\t// ToUint32: ES5.ToUint32,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint16\n\tToInt16: function ToInt16(argument) {\n\t\tvar int16bit = this.ToUint16(argument);\n\t\treturn int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint16\n\t// ToUint16: ES5.ToUint16,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toint8\n\tToInt8: function ToInt8(argument) {\n\t\tvar int8bit = this.ToUint8(argument);\n\t\treturn int8bit >= 0x80 ? int8bit - 0x100 : int8bit;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8\n\tToUint8: function ToUint8(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; }\n\t\tvar posInt = sign(number) * Math.floor(Math.abs(number));\n\t\treturn mod(posInt, 0x100);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-touint8clamp\n\tToUint8Clamp: function ToUint8Clamp(argument) {\n\t\tvar number = this.ToNumber(argument);\n\t\tif ($isNaN(number) || number <= 0) { return 0; }\n\t\tif (number >= 0xFF) { return 0xFF; }\n\t\tvar f = Math.floor(argument);\n\t\tif (f + 0.5 < number) { return f + 1; }\n\t\tif (number < f + 0.5) { return f; }\n\t\tif (f % 2 !== 0) { return f + 1; }\n\t\treturn f;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tostring\n\tToString: function ToString(argument) {\n\t\tif (typeof argument === 'symbol') {\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n\t\t}\n\t\treturn String(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-toobject\n\tToObject: function ToObject(value) {\n\t\tthis.RequireObjectCoercible(value);\n\t\treturn Object(value);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-topropertykey\n\tToPropertyKey: function ToPropertyKey(argument) {\n\t\tvar key = this.ToPrimitive(argument, String);\n\t\treturn typeof key === 'symbol' ? key : this.ToString(key);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n\tToLength: function ToLength(argument) {\n\t\tvar len = this.ToInteger(argument);\n\t\tif (len <= 0) { return 0; } // includes converting -0 to +0\n\t\tif (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; }\n\t\treturn len;\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring\n\tCanonicalNumericIndexString: function CanonicalNumericIndexString(argument) {\n\t\tif (toStr.call(argument) !== '[object String]') {\n\t\t\tthrow new TypeError('must be a string');\n\t\t}\n\t\tif (argument === '-0') { return -0; }\n\t\tvar n = this.ToNumber(argument);\n\t\tif (this.SameValue(this.ToString(n), argument)) { return n; }\n\t\treturn void 0;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-requireobjectcoercible\n\tRequireObjectCoercible: ES5.CheckObjectCoercible,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isarray\n\tIsArray: Array.isArray || function IsArray(argument) {\n\t\treturn toStr.call(argument) === '[object Array]';\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-iscallable\n\t// IsCallable: ES5.IsCallable,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isconstructor\n\tIsConstructor: function IsConstructor(argument) {\n\t\treturn typeof argument === 'function' && !!argument.prototype; // unfortunately there's no way to truly check this without try/catch `new argument`\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isextensible-o\n\tIsExtensible: function IsExtensible(obj) {\n\t\tif (!Object.preventExtensions) { return true; }\n\t\tif (isPrimitive(obj)) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Object.isExtensible(obj);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-isinteger\n\tIsInteger: function IsInteger(argument) {\n\t\tif (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) {\n\t\t\treturn false;\n\t\t}\n\t\tvar abs = Math.abs(argument);\n\t\treturn Math.floor(abs) === abs;\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-ispropertykey\n\tIsPropertyKey: function IsPropertyKey(argument) {\n\t\treturn typeof argument === 'string' || typeof argument === 'symbol';\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-isregexp\n\tIsRegExp: function IsRegExp(argument) {\n\t\tif (!argument || typeof argument !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols) {\n\t\t\tvar isRegExp = argument[Symbol.match];\n\t\t\tif (typeof isRegExp !== 'undefined') {\n\t\t\t\treturn ES5.ToBoolean(isRegExp);\n\t\t\t}\n\t\t}\n\t\treturn hasRegExpMatcher(argument);\n\t},\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevalue\n\t// SameValue: ES5.SameValue,\n\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-samevaluezero\n\tSameValueZero: function SameValueZero(x, y) {\n\t\treturn (x === y) || ($isNaN(x) && $isNaN(y));\n\t},\n\n\t/**\n\t * 7.3.2 GetV (V, P)\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let O be ToObject(V).\n\t * 3. ReturnIfAbrupt(O).\n\t * 4. Return O.[[Get]](P, V).\n\t */\n\tGetV: function GetV(V, P) {\n\t\t// 7.3.2.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.2.2-3\n\t\tvar O = this.ToObject(V);\n\n\t\t// 7.3.2.4\n\t\treturn O[P];\n\t},\n\n\t/**\n\t * 7.3.9 - http://www.ecma-international.org/ecma-262/6.0/#sec-getmethod\n\t * 1. Assert: IsPropertyKey(P) is true.\n\t * 2. Let func be GetV(O, P).\n\t * 3. ReturnIfAbrupt(func).\n\t * 4. If func is either undefined or null, return undefined.\n\t * 5. If IsCallable(func) is false, throw a TypeError exception.\n\t * 6. Return func.\n\t */\n\tGetMethod: function GetMethod(O, P) {\n\t\t// 7.3.9.1\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\n\t\t// 7.3.9.2\n\t\tvar func = this.GetV(O, P);\n\n\t\t// 7.3.9.4\n\t\tif (func == null) {\n\t\t\treturn void 0;\n\t\t}\n\n\t\t// 7.3.9.5\n\t\tif (!this.IsCallable(func)) {\n\t\t\tthrow new TypeError(P + 'is not a function');\n\t\t}\n\n\t\t// 7.3.9.6\n\t\treturn func;\n\t},\n\n\t/**\n\t * 7.3.1 Get (O, P) - http://www.ecma-international.org/ecma-262/6.0/#sec-get-o-p\n\t * 1. Assert: Type(O) is Object.\n\t * 2. Assert: IsPropertyKey(P) is true.\n\t * 3. Return O.[[Get]](P, O).\n\t */\n\tGet: function Get(O, P) {\n\t\t// 7.3.1.1\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\t// 7.3.1.2\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\t// 7.3.1.3\n\t\treturn O[P];\n\t},\n\n\tType: function Type(x) {\n\t\tif (typeof x === 'symbol') {\n\t\t\treturn 'Symbol';\n\t\t}\n\t\treturn ES5.Type(x);\n\t},\n\n\t// http://www.ecma-international.org/ecma-262/6.0/#sec-speciesconstructor\n\tSpeciesConstructor: function SpeciesConstructor(O, defaultConstructor) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tvar C = O.constructor;\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.Type(C) !== 'Object') {\n\t\t\tthrow new TypeError('O.constructor is not an Object');\n\t\t}\n\t\tvar S = hasSymbols && Symbol.species ? C[Symbol.species] : void 0;\n\t\tif (S == null) {\n\t\t\treturn defaultConstructor;\n\t\t}\n\t\tif (this.IsConstructor(S)) {\n\t\t\treturn S;\n\t\t}\n\t\tthrow new TypeError('no constructor found');\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor\n\tCompletePropertyDescriptor: function CompletePropertyDescriptor(Desc) {\n\t\tif (!this.IsPropertyDescriptor(Desc)) {\n\t\t\tthrow new TypeError('Desc must be a Property Descriptor');\n\t\t}\n\n\t\tif (this.IsGenericDescriptor(Desc) || this.IsDataDescriptor(Desc)) {\n\t\t\tif (!has(Desc, '[[Value]]')) {\n\t\t\t\tDesc['[[Value]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Writable]]')) {\n\t\t\t\tDesc['[[Writable]]'] = false;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!has(Desc, '[[Get]]')) {\n\t\t\t\tDesc['[[Get]]'] = void 0;\n\t\t\t}\n\t\t\tif (!has(Desc, '[[Set]]')) {\n\t\t\t\tDesc['[[Set]]'] = void 0;\n\t\t\t}\n\t\t}\n\t\tif (!has(Desc, '[[Enumerable]]')) {\n\t\t\tDesc['[[Enumerable]]'] = false;\n\t\t}\n\t\tif (!has(Desc, '[[Configurable]]')) {\n\t\t\tDesc['[[Configurable]]'] = false;\n\t\t}\n\t\treturn Desc;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw\n\tSet: function Set(O, P, V, Throw) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tif (this.Type(Throw) !== 'Boolean') {\n\t\t\tthrow new TypeError('Throw must be a Boolean');\n\t\t}\n\t\tif (Throw) {\n\t\t\tO[P] = V;\n\t\t\treturn true;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tO[P] = V;\n\t\t\t} catch (e) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasownproperty\n\tHasOwnProperty: function HasOwnProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn has(O, P);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-hasproperty\n\tHasProperty: function HasProperty(O, P) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('O must be an Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\treturn P in O;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable\n\tIsConcatSpreadable: function IsConcatSpreadable(O) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\tif (hasSymbols && typeof Symbol.isConcatSpreadable === 'symbol') {\n\t\t\tvar spreadable = this.Get(O, Symbol.isConcatSpreadable);\n\t\t\tif (typeof spreadable !== 'undefined') {\n\t\t\t\treturn this.ToBoolean(spreadable);\n\t\t\t}\n\t\t}\n\t\treturn this.IsArray(O);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-invoke\n\tInvoke: function Invoke(O, P) {\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('P must be a Property Key');\n\t\t}\n\t\tvar argumentsList = arraySlice(arguments, 2);\n\t\tvar func = this.GetV(O, P);\n\t\treturn this.Call(func, O, argumentsList);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject\n\tCreateIterResultObject: function CreateIterResultObject(value, done) {\n\t\tif (this.Type(done) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(done) is not Boolean');\n\t\t}\n\t\treturn {\n\t\t\tvalue: value,\n\t\t\tdone: done\n\t\t};\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-regexpexec\n\tRegExpExec: function RegExpExec(R, S) {\n\t\tif (this.Type(R) !== 'Object') {\n\t\t\tthrow new TypeError('R must be an Object');\n\t\t}\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('S must be a String');\n\t\t}\n\t\tvar exec = this.Get(R, 'exec');\n\t\tif (this.IsCallable(exec)) {\n\t\t\tvar result = this.Call(exec, R, [S]);\n\t\t\tif (result === null || this.Type(result) === 'Object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError('\"exec\" method must return `null` or an Object');\n\t\t}\n\t\treturn regexExec(R, S);\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate\n\tArraySpeciesCreate: function ArraySpeciesCreate(originalArray, length) {\n\t\tif (!this.IsInteger(length) || length < 0) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0');\n\t\t}\n\t\tvar len = length === 0 ? 0 : length;\n\t\tvar C;\n\t\tvar isArray = this.IsArray(originalArray);\n\t\tif (isArray) {\n\t\t\tC = this.Get(originalArray, 'constructor');\n\t\t\t// TODO: figure out how to make a cross-realm normal Array, a same-realm Array\n\t\t\t// if (this.IsConstructor(C)) {\n\t\t\t// \tif C is another realm's Array, C = undefined\n\t\t\t// \tObject.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ?\n\t\t\t// }\n\t\t\tif (this.Type(C) === 'Object' && hasSymbols && Symbol.species) {\n\t\t\t\tC = this.Get(C, Symbol.species);\n\t\t\t\tif (C === null) {\n\t\t\t\t\tC = void 0;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (typeof C === 'undefined') {\n\t\t\treturn Array(len);\n\t\t}\n\t\tif (!this.IsConstructor(C)) {\n\t\t\tthrow new TypeError('C must be a constructor');\n\t\t}\n\t\treturn new C(len); // this.Construct(C, len);\n\t},\n\n\tCreateDataProperty: function CreateDataProperty(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar oldDesc = Object.getOwnPropertyDescriptor(O, P);\n\t\tvar extensible = oldDesc || (typeof Object.isExtensible !== 'function' || Object.isExtensible(O));\n\t\tvar immutable = oldDesc && (!oldDesc.writable || !oldDesc.configurable);\n\t\tif (immutable || !extensible) {\n\t\t\treturn false;\n\t\t}\n\t\tvar newDesc = {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: V,\n\t\t\twritable: true\n\t\t};\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow\n\tCreateDataPropertyOrThrow: function CreateDataPropertyOrThrow(O, P, V) {\n\t\tif (this.Type(O) !== 'Object') {\n\t\t\tthrow new TypeError('Assertion failed: Type(O) is not Object');\n\t\t}\n\t\tif (!this.IsPropertyKey(P)) {\n\t\t\tthrow new TypeError('Assertion failed: IsPropertyKey(P) is not true');\n\t\t}\n\t\tvar success = this.CreateDataProperty(O, P, V);\n\t\tif (!success) {\n\t\t\tthrow new TypeError('unable to create data property');\n\t\t}\n\t\treturn success;\n\t},\n\n\t// http://ecma-international.org/ecma-262/6.0/#sec-advancestringindex\n\tAdvanceStringIndex: function AdvanceStringIndex(S, index, unicode) {\n\t\tif (this.Type(S) !== 'String') {\n\t\t\tthrow new TypeError('Assertion failed: Type(S) is not String');\n\t\t}\n\t\tif (!this.IsInteger(index)) {\n\t\t\tthrow new TypeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (index < 0 || index > MAX_SAFE_INTEGER) {\n\t\t\tthrow new RangeError('Assertion failed: length must be an integer >= 0 and <= (2**53 - 1)');\n\t\t}\n\t\tif (this.Type(unicode) !== 'Boolean') {\n\t\t\tthrow new TypeError('Assertion failed: Type(unicode) is not Boolean');\n\t\t}\n\t\tif (!unicode) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar length = S.length;\n\t\tif ((index + 1) >= length) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar first = S.charCodeAt(index);\n\t\tif (first < 0xD800 || first > 0xDBFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\tvar second = S.charCodeAt(index + 1);\n\t\tif (second < 0xDC00 || second > 0xDFFF) {\n\t\t\treturn index + 1;\n\t\t}\n\t\treturn index + 2;\n\t}\n});\n\ndelete ES6.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible\n\nmodule.exports = ES6;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\nvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar excludedKeys = {\n\t$console: true,\n\t$external: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$innerHeight: true,\n\t$innerWidth: true,\n\t$outerHeight: true,\n\t$outerWidth: true,\n\t$pageXOffset: true,\n\t$pageYOffset: true,\n\t$parent: true,\n\t$scrollLeft: true,\n\t$scrollTop: true,\n\t$scrollX: true,\n\t$scrollY: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar define = require('define-properties');\nvar ES = require('es-abstract/es6');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar polyfill = getPolyfill();\nvar shim = require('./shim');\n\nvar slice = Array.prototype.slice;\n\n/* eslint-disable no-unused-vars */\nvar boundIncludesShim = function includes(array, searchElement) {\n/* eslint-enable no-unused-vars */\n\tES.RequireObjectCoercible(array);\n\treturn polyfill.apply(array, slice.call(arguments, 1));\n};\ndefine(boundIncludesShim, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = boundIncludesShim;\n","/* eslint-disable */\n\nrequire('array-includes').shim()\n\nNumber.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' &&\n isFinite(value) &&\n Math.floor(value) === value\n}\n\nimport 'intersection-observer'\nimport 'core-js/es6/promise';\nimport 'core-js/es6/array';\n"],"sourceRoot":""}