{"version":3,"file":"polyfills.f16d673f24e5a230.js","mappings":"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yB,EAASA,kBAAyBA,iCCXzG3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,yCCtCA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,wCCVA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,4CCLA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,uCCNA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,wCCpBA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,yCCfA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,0CCjCA3U,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,8CCHA3U,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,4CCHA3U,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,IACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,2CCjBA3U,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,8BCVRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,uCCNA3U,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACR,MAAWA,EAAQ,OAEnB2U,0CCtCA3U,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA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","names":["window","process","env","DEBUG","undefined","Buffer","require","exports","b64","lens","getLens","placeHoldersLen","tmp","i","validLen","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","num","start","end","output","tripletToBase64","_classCallCheck","base64","ieee754","customInspectSymbol","Symbol","for","K_MAX_LENGTH","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","value","string","encoding","isEncoding","byteLength","createBuffer","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","buffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","numberIsNaN","type","isArray","data","fromObject","toPrimitive","size","assertSize","array","u","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","n","m","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","readUInt16BE","foundIndex","read","found","j","offset","Number","remaining","strLen","parsed","parseInt","substr","blitBuffer","str","byteArray","asciiToBytes","units","c","hi","utf16leToBytes","fromByteArray","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","fromCharCode","apply","decodeCodePointsArray","ret","out","hexSliceLookupTable","bytes","ext","max","checkIntBI","lo","BigInt","littleEndian","noAssert","checkIEEE754","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","alloc","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap","swap32","swap64","toLocaleString","slowToString","equals","inspect","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","bidirectionalIndexOf","isFinite","hexWrite","utf8Write","asciiWrite","base64Write","ucs2Write","toJSON","_arr","newBuf","subarray","readUintLE","readUIntLE","checkOffset","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","readBigUInt64BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","checkInt","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","wrtBigUInt64LE","writeBigUInt64BE","wrtBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloat","writeFloatBE","writeDoubleLE","writeDouble","writeDoubleBE","targetStart","copyWithin","errors","sym","getMessage","Base","_this","_assertThisInitialized","writable","configurable","name","_createClass","message","NodeError","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","E","input","msg","received","isInteger","abs","addNumericalSeparator","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","split","base64clean","src","dst","constructor","alphabet","table","i16","fn","BufferBigIntNotDefined","document","exportName","assign","VENDOR_PREFIXES","TEST_ELEMENT","createElement","round","now","Date","timeout","context","setTimeout","bindFn","each","iterator","forEach","hasOwnProperty","method","deprecationMessage","stack","log","warn","index","source","nextKey","extend","deprecate","dest","merge","keys","child","base","properties","childP","baseP","create","_super","args","val1","val2","types","handler","splitStr","addEventListener","removeEventListener","node","parent","parentNode","find","findByKey","key","sort","results","values","inArray","property","prefix","prop","camelProp","toUpperCase","_uniqueId","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","prefixed","SUPPORT_ONLY_TOUCH","test","navigator","userAgent","INPUT_TYPE_TOUCH","INPUT_TYPE_MOUSE","PROPS_XY","PROPS_CLIENT_XY","manager","callback","self","options","inputTarget","domHandler","ev","boolOrFn","enable","init","eventType","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","INPUT_END","session","pointersLength","firstInput","simpleCloneInputData","_","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offsetDelta","prevDelta","prevInput","deltaX","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","getScale","rotation","getRotation","maxPointers","C","velocity","velocityX","velocityY","direction","lastInterval","v","computeIntervalInputData","hasParent","srcEvent","computeInputData","emit","recognize","clientX","clientY","DIRECTION_DOWN","p1","p2","props","sqrt","atan2","PI","Input","evEl","addEventListeners","evTarget","evWin","getWindowForElement","destroy","removeEventListeners","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","pressed","inherit","MouseInput","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","MSPointerEvent","PointerEvent","PointerEventInput","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","st","splice","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","all","toArray","touches","changed","changedTouches","uniqueArray","SingleTouchInput","normalizeSingleTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","targetIds","allTouches","INPUT_START","identifier","targetTouches","changedTargetTouches","filter","touch","TouchInput","mouse","primaryTouch","lastTouches","eventData","setLastTouch","lastTouch","lts","DEDUP_TIMEOUT","t","dx","dy","getTouches","TouchMouseInput","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","recordTouches","isSyntheticEvent","PREFIXED_TOUCH_ACTION","style","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","defaults","id","uniqueId","ifUndefined","state","simultaneous","requireFail","otherRecognizer","recognizer","Recognizer","AttrRecognizer","pX","pY","_timer","_input","pTime","pCenter","count","recognizers","Hammer","preset","Manager","handlers","oldCssProps","inputClass","ht","mt","rt","inputHandler","createInputInstance","touchAction","TouchAction","toggleCssProps","item","add","recognizeWith","requireFailure","cssProps","g","compute","actions","update","getTouchAction","inStr","hasPanX","hasPanY","TOUCH_ACTION_AUTO","cleanTouchActions","preventDefaults","prevented","hasNone","DIRECTION_LEFT","DIRECTION_UP","preventSrc","preventDefault","invokeArrayArg","getRecognizerByNameIfManager","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","stateStr","additionalEvent","tryEmit","canEmit","STATE_FAILED","inputDataClone","reset","STATE_RECOGNIZED","STATE_BEGAN","attrTest","optionPointers","isRecognized","isValid","PanRecognizer","threshold","DIRECTION_HORIZONTAL","directionTest","hasMoved","directionStr","PinchRecognizer","PressRecognizer","time","validPointers","validMovement","validTime","setTimeoutContext","clearTimeout","RotateRecognizer","SwipeRecognizer","TapRecognizer","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","stop","force","stopped","STOP","curRecognizer","existing","remove","on","events","off","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_MOVE","INPUT_CANCEL","STATE_POSSIBLE","STATE_CHANGED","STATE_ENDED","STATE_CANCELLED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","define","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","isNaN","LN2","f","IntersectionObserverEntry","intersectionRatio","startDoc","frame","getFrameElement","registry","crossOriginUpdater","crossOriginRect","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","top","bottom","left","right","width","height","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","_observationTargets","some","nodeType","_registerInstance","entry","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","_parseRootMargin","opt_rootMargin","margins","map","margin","exec","parseFloat","unit","win","_monitoringDocuments","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","root","rootDoc","itemDoc","unsubscribe","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","performance","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","body","documentElement","overflow","computeRectIntersection","isDoc","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","frameElement","ensureDOMRect","targetArea","toFixed","opt_options","timer","throttle","bind","rootMargin","opt_useCapture","attachEvent","detachEvent","rect1","rect2","el","err","getEmptyRect","parentBoundingRect","parentIntersectionRect","assignedSlot","host","global","setImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","getPrototypeOf","handle","nextTick","runIfPresent","installNextTickImplementation","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","random","onGlobalMessage","installPostMessageImplementation","o","MessageChannel","channel","port1","port2","installMessageChannelImplementation","script","onreadystatechange","removeChild","appendChild","installReadyStateChangeImplementation","installSetTimeoutImplementation","Function","task","clearImmediate","run","mark","label","measure","symbolPrefix","__Zone_symbol_prefix","checkDuplicate","__symbol__","Zone","nativeMicroTaskQueuePromise","zoneSpec","_parent","_name","_properties","_zoneDelegate","_ZoneDelegate","zone","getZoneWith","current","fork","intercept","runGuarded","applyThis","applyArgs","_currentZoneFrame","invoke","handleError","NO_ZONE","notScheduled","eventTask","macroTask","reEntryGuard","running","_transitionTo","scheduled","runCount","previousTask","_currentTask","isPeriodic","cancelFn","invokeTask","unknown","_updateTaskCount","newZone","scheduling","zoneDelegates","_zoneDelegates","_zone","scheduleTask","customSchedule","ZoneTask","microTask","customCancel","canceling","cancelTask","Promise","patches","ZoneAwarePromise","ignoreDuplicate","perfName","_api","performanceMeasure","DELEGATE_ZS","onHasTask","delegate","hasTaskState","hasTask","onScheduleTask","onInvokeTask","onCancelTask","parentDelegate","_taskCounts","_parentDelegate","_forkZS","onFork","_forkDlgt","_forkCurrZone","_interceptZS","onIntercept","_interceptDlgt","_interceptCurrZone","_invokeZS","onInvoke","_invokeDlgt","_invokeCurrZone","_handleErrorZS","onHandleError","_handleErrorDlgt","_handleErrorCurrZone","_scheduleTaskZS","_scheduleTaskDlgt","_scheduleTaskCurrZone","_invokeTaskZS","_invokeTaskDlgt","_invokeTaskCurrZone","_cancelTaskZS","_cancelTaskDlgt","_cancelTaskCurrZone","_hasTaskZS","_hasTaskDlgt","_hasTaskDlgtOwner","_hasTaskCurrZone","zoneSpecHasTask","targetZone","returnTask","scheduleFn","scheduleMicroTask","isEmpty","counts","prev","next","change","_state","useG","toState","fromState1","fromState2","handleId","_numberOfNestedTaskFrames","runTask","drainMicroTaskQueue","symbolSetTimeout","symbolPromise","symbolThen","_microTaskQueue","_isDrainingMicrotaskQueue","func","resolve","nativeThen","then","nativeScheduleMicroTask","queue","onUnhandledError","microtaskDrainDone","symbol","currentZoneFrame","noop","showUncaughtError","patchEventTarget","patchOnProperties","patchMethod","bindArguments","patchThen","patchMacroTask","patchEventPrototype","isIEOrEdge","getGlobalObjects","ObjectDefineProperty","ObjectGetOwnPropertyDescriptor","ObjectCreate","ArraySlice","patchClass","wrapWithCurrentZone","filterProperties","attachOriginToPatched","_redefineProperty","patchCallbacks","getOwnPropertyDescriptor","ObjectGetPrototypeOf","ADD_EVENT_LISTENER_STR","REMOVE_EVENT_LISTENER_STR","ZONE_SYMBOL_ADD_EVENT_LISTENER","ZONE_SYMBOL_REMOVE_EVENT_LISTENER","TRUE_STR","FALSE_STR","ZONE_SYMBOL_PREFIX","wrap","scheduleMacroTask","zoneSymbol","isWindowExists","internalWindow","_global","propertyDesc","isWebWorker","WorkerGlobalScope","isNode","isBrowser","HTMLElement","isMix","zoneSymbolEventNames$1","wrapFn","eventNameSymbol","result","listener","errorEvent","filename","lineno","colno","desc","onPropPatchedSymbol","originalDescGet","originalDescSet","eventName","newValue","REMOVE_ATTRIBUTE","removeAttribute","patchProperty","onProperties","originalInstanceKey","className","OriginalClass","instance","patchFn","delegateName","isPropertyWritable","patchDelegate","funcName","metaCreator","setNative","cbIdx","meta","scheduleMacroTaskWithCurrentZone","patched","original","isDetectedIEOrEdge","ieOrEdge","ua","__load_patch","api","_uncaughtPromiseErrors","isDisableWrappingUncaughtPromiseRejection","rejection","_loop2","uncaughtPromiseError","shift","throwOriginal","UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL","handleUnhandledRejection","reject","symbolState","symbolValue","symbolFinally","symbolParentPromiseValue","symbolParentPromiseState","UNRESOLVED","REJECTED","promise","resolvePromise","once","wasCalled","wrappedFunction","CURRENT_TASK_TRACE_SYMBOL","onceWrapper","clearRejectedNoCatch","makeResolver","trace","currentTask","creationTrace","scheduleResolveOrReject","JSON","stringify","readableObjectToString","REJECTION_HANDLED_HANDLER","chainPromise","onFulfilled","onRejected","promiseState","forwardResolution","forwardRejection","parentPromiseValue","isFinallyPromise","AggregateError","executor","_a","species","onFinally","ZONE_AWARE_PROMISE_TO_STRING","promises","_step","_iterator","finished","rej","_step2","_iterator2","isThenable","onResolve","onReject","allWithCallback","thenCallback","status","errorCallback","reason","_step3","unresolvedCount","valueIndex","resolvedValues","_iterator3","curValueIndex","thenErr","_loop3","toStringTag","race","NativePromise","symbolThenPatched","Ctor","originalThen","_this2","resultPromise","ctor","zoneify","originalFunctionToString","ORIGINAL_DELEGATE_SYMBOL","PROMISE_SYMBOL","ERROR_SYMBOL","newFunctionToString","originalDelegate","nativePromise","nativeError","originalObjectToString","passiveSupported","OPTIMIZED_ZONE_EVENT_TASK_DATA","zoneSymbolEventNames","globalSources","EVENT_NAME_SYMBOL_REGX","RegExp","IMMEDIATE_PROPAGATION_SYMBOL","eventNameToString","falseEventName","trueEventName","symbolCapture","apis","patchOptions","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","rm","LISTENERS_EVENT_LISTENER","listeners","REMOVE_ALL_LISTENERS_EVENT_LISTENER","rmAll","zoneSymbolAddEventListener","ADD_EVENT_LISTENER_SOURCE","isRemoved","handleEvent","isCapture","tasks","copyTasks","_loop4","globalZoneAwareCallback","globalCallback","globalZoneAwareCaptureCallback","useGlobalCallback","validateHandler","vh","chkDup","returnTarget","nativePrependEventListener","taskData","nativeAddEventListener","nativeRemoveEventListener","nativeListeners","nativeRemoveAllListeners","passive","capture","prepend","isExisting","symbolEventName","symbolEventNames","existingTasks","allRemoved","diff","typeOfDelegate","unpatchedEvents","passiveEvents","makeAddListener","nativeListener","addSource","customScheduleFn","customCancelFn","transferEventName","isHandleEvent","buildEventListenerOptions","fr","prepareEventNames","constructorName","targetSource","scheduleEventTask","zt","unshift","PREPEND_EVENT_LISTENER","Et","existingTask","onPropertySymbol","findEventTasks","symbolCaptureEventName","captureTasks","removeTasks","match","evtName","patchEventTargetMethods","foundTasks","captureFalseTasks","captureTrueTasks","Event","targetName","callbacks","nativeDelegate","opts","descriptor","ignoreProperties","tip","ip","targetIgnoreProperties","op","getOwnPropertyNames","startsWith","substring","eventNames","getOnEventNames","SYMBOL_BLACK_LISTED_EVENTS","SYMBOL_UNPATCHED_EVENTS","taskSymbol","setName","cancelName","nameSuffix","clearNative","tasksByHandleId","delay","clearTask","ref","unref","dt","legacyPatch","clear","patchTimer","blockingMethods","patchEvent","_api$getGlobalObjects2","EVENT_TARGET","EventTarget","eventTargetPatch","XMLHttpRequestEventTarget","__Zone_ignore_on_properties","patchTargets","ignoreErrorProperties","isIE","patchFilteredProperties","propertyDescriptorPatch","_api$getGlobalObjects","customElements","patchCustomElements","XMLHttpRequest","XMLHttpRequestPrototype","oriAddListener","oriRemoveListener","XMLHttpRequestEventTargetPrototype","READY_STATE_CHANGE","SCHEDULED","openNative","XHR_SYNC","XHR_URL","fetchTaskAborting","fetchTaskScheduling","sendNative","url","aborted","placeholderCallback","XHR_ERROR_BEFORE_SCHEDULED","abortNative","XHR_TASK","findPendingTask","XHR_SCHEDULED","XHR_LISTENER","newListener","readyState","DONE","loadTasks","oriInvoke","patchXHR","geolocation","fnNames","_loop","patchPrototype","PromiseRejectionEvent","evt","findPromiseRejectionHandler","r","done","p","S","l","Reflect","O","I","A","P","T","N","F","K","$","G","L","findLast","findLastIndex","X","V","z","every","findIndex","filterReject","return","getConstructor","that","Q","previous","removed","delete","has","setStrong","kind","frozen","ct","k","nt","tt","it","getter","setter","IS_HTMLDDA","EXISTS","PROPER","CONFIGURABLE","objectID","weakData","fastKey","getWeakData","onFreeze","enforce","getterFor","Tt","entries","IteratorPrototype","BUGGY_SAFARI_ITERATORS","open","isPrototypeOf","propertyIsEnumerable","__defineSetter__","Dt","BROKEN_CARET","MISSED_STICKY","UNSUPPORTED_Y","version","mode","copyright","license","codeAt","charAt","arity","at","flatMap","flat","of","reduceRight","reduce","reverse","getYear","setYear","toGMTString","toISOString","acosh","asinh","atanh","cbrt","clz32","cosh","expm1","fround","hypot","imul","log10","log1p","log2","sign","sinh","tanh","trunc","EPSILON","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","toExponential","toPrecision","__defineGetter__","defineProperties","sham","freeze","fromEntries","AS_ENTRIES","getOwnPropertyDescriptors","getOwnPropertySymbols","hasOwn","isExtensible","isFrozen","isSealed","is","__lookupGetter__","__lookupSetter__","preventExtensions","seal","unsafe","construct","deleteProperty","ownKeys","ir","xt","Kt","Zt","_t","Jt","lt","Ct","Yt","Ht","Er","vr","hr","Ir","$t","dotAll","ignoreCase","multiline","sticky","anchor","big","blink","bold","codePointAt","endsWith","fixed","fontcolor","fontsize","fromCodePoint","italics","link","regexp","unicode","bt","matchAll","padEnd","padStart","raw","repeat","replaceAll","small","Ot","strike","sup","trimEnd","trimLeft","trimRight","trimStart","Y","tag","description","Z","dr","W","Sr","h","Fr","br","Nr","useSetter","useSimple","keyFor"],"sourceRoot":"webpack:///","sources":["./projects/applens/src/polyfills.ts","./node_modules/base64-js/index.js","./node_modules/buffer/index.js","./node_modules/hammerjs/hammer.js","./node_modules/ieee754/index.js","./node_modules/intersection-observer/intersection-observer.js","./node_modules/setimmediate/setImmediate.js","./node_modules/zone.js/fesm2015/zone.js","./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/classCallCheck.js","./node_modules/@babel/runtime/helpers/createClass.js","./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/createSuper.js","./node_modules/@babel/runtime/helpers/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/inherits.js","./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/typeof.js","./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","./node_modules/core-js/es/array/index.js","./node_modules/core-js/es/date/index.js","./node_modules/core-js/es/function/index.js","./node_modules/core-js/es/map/index.js","./node_modules/core-js/es/math/index.js","./node_modules/core-js/es/number/index.js","./node_modules/core-js/es/object/index.js","./node_modules/core-js/es/parse-float.js","./node_modules/core-js/es/parse-int.js","./node_modules/core-js/es/reflect/index.js","./node_modules/core-js/es/regexp/index.js","./node_modules/core-js/es/set/index.js","./node_modules/core-js/es/string/index.js","./node_modules/core-js/es/symbol/index.js","./node_modules/core-js/es/weak-map/index.js","./node_modules/core-js/internals/a-callable.js","./node_modules/core-js/internals/a-constructor.js","./node_modules/core-js/internals/a-possible-prototype.js","./node_modules/core-js/internals/add-to-unscopables.js","./node_modules/core-js/internals/advance-string-index.js","./node_modules/core-js/internals/an-instance.js","./node_modules/core-js/internals/an-object.js","./node_modules/core-js/internals/array-buffer-non-extensible.js","./node_modules/core-js/internals/array-copy-within.js","./node_modules/core-js/internals/array-fill.js","./node_modules/core-js/internals/array-for-each.js","./node_modules/core-js/internals/array-from.js","./node_modules/core-js/internals/array-includes.js","./node_modules/core-js/internals/array-iteration-from-last.js","./node_modules/core-js/internals/array-iteration.js","./node_modules/core-js/internals/array-last-index-of.js","./node_modules/core-js/internals/array-method-has-species-support.js","./node_modules/core-js/internals/array-method-is-strict.js","./node_modules/core-js/internals/array-reduce.js","./node_modules/core-js/internals/array-set-length.js","./node_modules/core-js/internals/array-slice-simple.js","./node_modules/core-js/internals/array-slice.js","./node_modules/core-js/internals/array-sort.js","./node_modules/core-js/internals/array-species-constructor.js","./node_modules/core-js/internals/array-species-create.js","./node_modules/core-js/internals/call-with-safe-iteration-closing.js","./node_modules/core-js/internals/check-correctness-of-iteration.js","./node_modules/core-js/internals/classof-raw.js","./node_modules/core-js/internals/classof.js","./node_modules/core-js/internals/collection-strong.js","./node_modules/core-js/internals/collection-weak.js","./node_modules/core-js/internals/collection.js","./node_modules/core-js/internals/copy-constructor-properties.js","./node_modules/core-js/internals/correct-is-regexp-logic.js","./node_modules/core-js/internals/correct-prototype-getter.js","./node_modules/core-js/internals/create-html.js","./node_modules/core-js/internals/create-iter-result-object.js","./node_modules/core-js/internals/create-non-enumerable-property.js","./node_modules/core-js/internals/create-property-descriptor.js","./node_modules/core-js/internals/create-property.js","./node_modules/core-js/internals/date-to-iso-string.js","./node_modules/core-js/internals/date-to-primitive.js","./node_modules/core-js/internals/define-built-in-accessor.js","./node_modules/core-js/internals/define-built-in.js","./node_modules/core-js/internals/define-built-ins.js","./node_modules/core-js/internals/define-global-property.js","./node_modules/core-js/internals/delete-property-or-throw.js","./node_modules/core-js/internals/descriptors.js","./node_modules/core-js/internals/document-all.js","./node_modules/core-js/internals/document-create-element.js","./node_modules/core-js/internals/does-not-exceed-safe-integer.js","./node_modules/core-js/internals/engine-ff-version.js","./node_modules/core-js/internals/engine-is-ie-or-edge.js","./node_modules/core-js/internals/engine-is-node.js","./node_modules/core-js/internals/engine-user-agent.js","./node_modules/core-js/internals/engine-v8-version.js","./node_modules/core-js/internals/engine-webkit-version.js","./node_modules/core-js/internals/enum-bug-keys.js","./node_modules/core-js/internals/export.js","./node_modules/core-js/internals/fails.js","./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","./node_modules/core-js/internals/flatten-into-array.js","./node_modules/core-js/internals/freezing.js","./node_modules/core-js/internals/function-apply.js","./node_modules/core-js/internals/function-bind-context.js","./node_modules/core-js/internals/function-bind-native.js","./node_modules/core-js/internals/function-bind.js","./node_modules/core-js/internals/function-call.js","./node_modules/core-js/internals/function-name.js","./node_modules/core-js/internals/function-uncurry-this-raw.js","./node_modules/core-js/internals/function-uncurry-this.js","./node_modules/core-js/internals/get-built-in.js","./node_modules/core-js/internals/get-iterator-method.js","./node_modules/core-js/internals/get-iterator.js","./node_modules/core-js/internals/get-method.js","./node_modules/core-js/internals/get-substitution.js","./node_modules/core-js/internals/global.js","./node_modules/core-js/internals/has-own-property.js","./node_modules/core-js/internals/hidden-keys.js","./node_modules/core-js/internals/html.js","./node_modules/core-js/internals/ie8-dom-define.js","./node_modules/core-js/internals/indexed-object.js","./node_modules/core-js/internals/inherit-if-required.js","./node_modules/core-js/internals/inspect-source.js","./node_modules/core-js/internals/internal-metadata.js","./node_modules/core-js/internals/internal-state.js","./node_modules/core-js/internals/is-array-iterator-method.js","./node_modules/core-js/internals/is-array.js","./node_modules/core-js/internals/is-callable.js","./node_modules/core-js/internals/is-constructor.js","./node_modules/core-js/internals/is-data-descriptor.js","./node_modules/core-js/internals/is-forced.js","./node_modules/core-js/internals/is-integral-number.js","./node_modules/core-js/internals/is-null-or-undefined.js","./node_modules/core-js/internals/is-object.js","./node_modules/core-js/internals/is-pure.js","./node_modules/core-js/internals/is-regexp.js","./node_modules/core-js/internals/is-symbol.js","./node_modules/core-js/internals/iterate.js","./node_modules/core-js/internals/iterator-close.js","./node_modules/core-js/internals/iterator-create-constructor.js","./node_modules/core-js/internals/iterator-define.js","./node_modules/core-js/internals/iterators-core.js","./node_modules/core-js/internals/iterators.js","./node_modules/core-js/internals/length-of-array-like.js","./node_modules/core-js/internals/make-built-in.js","./node_modules/core-js/internals/math-expm1.js","./node_modules/core-js/internals/math-fround.js","./node_modules/core-js/internals/math-log10.js","./node_modules/core-js/internals/math-log1p.js","./node_modules/core-js/internals/math-sign.js","./node_modules/core-js/internals/math-trunc.js","./node_modules/core-js/internals/not-a-regexp.js","./node_modules/core-js/internals/number-is-finite.js","./node_modules/core-js/internals/number-parse-float.js","./node_modules/core-js/internals/number-parse-int.js","./node_modules/core-js/internals/object-assign.js","./node_modules/core-js/internals/object-create.js","./node_modules/core-js/internals/object-define-properties.js","./node_modules/core-js/internals/object-define-property.js","./node_modules/core-js/internals/object-get-own-property-descriptor.js","./node_modules/core-js/internals/object-get-own-property-names-external.js","./node_modules/core-js/internals/object-get-own-property-names.js","./node_modules/core-js/internals/object-get-own-property-symbols.js","./node_modules/core-js/internals/object-get-prototype-of.js","./node_modules/core-js/internals/object-is-extensible.js","./node_modules/core-js/internals/object-is-prototype-of.js","./node_modules/core-js/internals/object-keys-internal.js","./node_modules/core-js/internals/object-keys.js","./node_modules/core-js/internals/object-property-is-enumerable.js","./node_modules/core-js/internals/object-prototype-accessors-forced.js","./node_modules/core-js/internals/object-set-prototype-of.js","./node_modules/core-js/internals/object-to-array.js","./node_modules/core-js/internals/object-to-string.js","./node_modules/core-js/internals/ordinary-to-primitive.js","./node_modules/core-js/internals/own-keys.js","./node_modules/core-js/internals/path.js","./node_modules/core-js/internals/proxy-accessor.js","./node_modules/core-js/internals/regexp-exec-abstract.js","./node_modules/core-js/internals/regexp-exec.js","./node_modules/core-js/internals/regexp-flags.js","./node_modules/core-js/internals/regexp-get-flags.js","./node_modules/core-js/internals/regexp-sticky-helpers.js","./node_modules/core-js/internals/regexp-unsupported-dot-all.js","./node_modules/core-js/internals/regexp-unsupported-ncg.js","./node_modules/core-js/internals/require-object-coercible.js","./node_modules/core-js/internals/same-value.js","./node_modules/core-js/internals/set-species.js","./node_modules/core-js/internals/set-to-string-tag.js","./node_modules/core-js/internals/shared-key.js","./node_modules/core-js/internals/shared-store.js","./node_modules/core-js/internals/shared.js","./node_modules/core-js/internals/species-constructor.js","./node_modules/core-js/internals/string-html-forced.js","./node_modules/core-js/internals/string-multibyte.js","./node_modules/core-js/internals/string-pad-webkit-bug.js","./node_modules/core-js/internals/string-pad.js","./node_modules/core-js/internals/string-repeat.js","./node_modules/core-js/internals/string-trim-end.js","./node_modules/core-js/internals/string-trim-forced.js","./node_modules/core-js/internals/string-trim-start.js","./node_modules/core-js/internals/string-trim.js","./node_modules/core-js/internals/symbol-constructor-detection.js","./node_modules/core-js/internals/symbol-define-to-primitive.js","./node_modules/core-js/internals/symbol-registry-detection.js","./node_modules/core-js/internals/this-number-value.js","./node_modules/core-js/internals/to-absolute-index.js","./node_modules/core-js/internals/to-indexed-object.js","./node_modules/core-js/internals/to-integer-or-infinity.js","./node_modules/core-js/internals/to-length.js","./node_modules/core-js/internals/to-object.js","./node_modules/core-js/internals/to-primitive.js","./node_modules/core-js/internals/to-property-key.js","./node_modules/core-js/internals/to-string-tag-support.js","./node_modules/core-js/internals/to-string.js","./node_modules/core-js/internals/try-to-string.js","./node_modules/core-js/internals/uid.js","./node_modules/core-js/internals/use-symbol-as-uid.js","./node_modules/core-js/internals/v8-prototype-define-bug.js","./node_modules/core-js/internals/weak-map-basic-detection.js","./node_modules/core-js/internals/well-known-symbol-define.js","./node_modules/core-js/internals/well-known-symbol-wrapped.js","./node_modules/core-js/internals/well-known-symbol.js","./node_modules/core-js/internals/whitespaces.js","./node_modules/core-js/modules/es.array.at.js","./node_modules/core-js/modules/es.array.concat.js","./node_modules/core-js/modules/es.array.copy-within.js","./node_modules/core-js/modules/es.array.every.js","./node_modules/core-js/modules/es.array.fill.js","./node_modules/core-js/modules/es.array.filter.js","./node_modules/core-js/modules/es.array.find-index.js","./node_modules/core-js/modules/es.array.find-last-index.js","./node_modules/core-js/modules/es.array.find-last.js","./node_modules/core-js/modules/es.array.find.js","./node_modules/core-js/modules/es.array.flat-map.js","./node_modules/core-js/modules/es.array.flat.js","./node_modules/core-js/modules/es.array.for-each.js","./node_modules/core-js/modules/es.array.from.js","./node_modules/core-js/modules/es.array.includes.js","./node_modules/core-js/modules/es.array.index-of.js","./node_modules/core-js/modules/es.array.is-array.js","./node_modules/core-js/modules/es.array.iterator.js","./node_modules/core-js/modules/es.array.join.js","./node_modules/core-js/modules/es.array.last-index-of.js","./node_modules/core-js/modules/es.array.map.js","./node_modules/core-js/modules/es.array.of.js","./node_modules/core-js/modules/es.array.push.js","./node_modules/core-js/modules/es.array.reduce-right.js","./node_modules/core-js/modules/es.array.reduce.js","./node_modules/core-js/modules/es.array.reverse.js","./node_modules/core-js/modules/es.array.slice.js","./node_modules/core-js/modules/es.array.some.js","./node_modules/core-js/modules/es.array.sort.js","./node_modules/core-js/modules/es.array.species.js","./node_modules/core-js/modules/es.array.splice.js","./node_modules/core-js/modules/es.array.unscopables.flat-map.js","./node_modules/core-js/modules/es.array.unscopables.flat.js","./node_modules/core-js/modules/es.array.unshift.js","./node_modules/core-js/modules/es.date.get-year.js","./node_modules/core-js/modules/es.date.now.js","./node_modules/core-js/modules/es.date.set-year.js","./node_modules/core-js/modules/es.date.to-gmt-string.js","./node_modules/core-js/modules/es.date.to-iso-string.js","./node_modules/core-js/modules/es.date.to-json.js","./node_modules/core-js/modules/es.date.to-primitive.js","./node_modules/core-js/modules/es.date.to-string.js","./node_modules/core-js/modules/es.function.bind.js","./node_modules/core-js/modules/es.function.has-instance.js","./node_modules/core-js/modules/es.function.name.js","./node_modules/core-js/modules/es.json.stringify.js","./node_modules/core-js/modules/es.json.to-string-tag.js","./node_modules/core-js/modules/es.map.constructor.js","./node_modules/core-js/modules/es.map.js","./node_modules/core-js/modules/es.math.acosh.js","./node_modules/core-js/modules/es.math.asinh.js","./node_modules/core-js/modules/es.math.atanh.js","./node_modules/core-js/modules/es.math.cbrt.js","./node_modules/core-js/modules/es.math.clz32.js","./node_modules/core-js/modules/es.math.cosh.js","./node_modules/core-js/modules/es.math.expm1.js","./node_modules/core-js/modules/es.math.fround.js","./node_modules/core-js/modules/es.math.hypot.js","./node_modules/core-js/modules/es.math.imul.js","./node_modules/core-js/modules/es.math.log10.js","./node_modules/core-js/modules/es.math.log1p.js","./node_modules/core-js/modules/es.math.log2.js","./node_modules/core-js/modules/es.math.sign.js","./node_modules/core-js/modules/es.math.sinh.js","./node_modules/core-js/modules/es.math.tanh.js","./node_modules/core-js/modules/es.math.to-string-tag.js","./node_modules/core-js/modules/es.math.trunc.js","./node_modules/core-js/modules/es.number.constructor.js","./node_modules/core-js/modules/es.number.epsilon.js","./node_modules/core-js/modules/es.number.is-finite.js","./node_modules/core-js/modules/es.number.is-integer.js","./node_modules/core-js/modules/es.number.is-nan.js","./node_modules/core-js/modules/es.number.is-safe-integer.js","./node_modules/core-js/modules/es.number.max-safe-integer.js","./node_modules/core-js/modules/es.number.min-safe-integer.js","./node_modules/core-js/modules/es.number.parse-float.js","./node_modules/core-js/modules/es.number.parse-int.js","./node_modules/core-js/modules/es.number.to-exponential.js","./node_modules/core-js/modules/es.number.to-fixed.js","./node_modules/core-js/modules/es.number.to-precision.js","./node_modules/core-js/modules/es.object.assign.js","./node_modules/core-js/modules/es.object.create.js","./node_modules/core-js/modules/es.object.define-getter.js","./node_modules/core-js/modules/es.object.define-properties.js","./node_modules/core-js/modules/es.object.define-property.js","./node_modules/core-js/modules/es.object.define-setter.js","./node_modules/core-js/modules/es.object.entries.js","./node_modules/core-js/modules/es.object.freeze.js","./node_modules/core-js/modules/es.object.from-entries.js","./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","./node_modules/core-js/modules/es.object.get-own-property-names.js","./node_modules/core-js/modules/es.object.get-own-property-symbols.js","./node_modules/core-js/modules/es.object.get-prototype-of.js","./node_modules/core-js/modules/es.object.has-own.js","./node_modules/core-js/modules/es.object.is-extensible.js","./node_modules/core-js/modules/es.object.is-frozen.js","./node_modules/core-js/modules/es.object.is-sealed.js","./node_modules/core-js/modules/es.object.is.js","./node_modules/core-js/modules/es.object.keys.js","./node_modules/core-js/modules/es.object.lookup-getter.js","./node_modules/core-js/modules/es.object.lookup-setter.js","./node_modules/core-js/modules/es.object.prevent-extensions.js","./node_modules/core-js/modules/es.object.proto.js","./node_modules/core-js/modules/es.object.seal.js","./node_modules/core-js/modules/es.object.set-prototype-of.js","./node_modules/core-js/modules/es.object.to-string.js","./node_modules/core-js/modules/es.object.values.js","./node_modules/core-js/modules/es.parse-float.js","./node_modules/core-js/modules/es.parse-int.js","./node_modules/core-js/modules/es.reflect.apply.js","./node_modules/core-js/modules/es.reflect.construct.js","./node_modules/core-js/modules/es.reflect.define-property.js","./node_modules/core-js/modules/es.reflect.delete-property.js","./node_modules/core-js/modules/es.reflect.get-own-property-descriptor.js","./node_modules/core-js/modules/es.reflect.get-prototype-of.js","./node_modules/core-js/modules/es.reflect.get.js","./node_modules/core-js/modules/es.reflect.has.js","./node_modules/core-js/modules/es.reflect.is-extensible.js","./node_modules/core-js/modules/es.reflect.own-keys.js","./node_modules/core-js/modules/es.reflect.prevent-extensions.js","./node_modules/core-js/modules/es.reflect.set-prototype-of.js","./node_modules/core-js/modules/es.reflect.set.js","./node_modules/core-js/modules/es.reflect.to-string-tag.js","./node_modules/core-js/modules/es.regexp.constructor.js","./node_modules/core-js/modules/es.regexp.dot-all.js","./node_modules/core-js/modules/es.regexp.exec.js","./node_modules/core-js/modules/es.regexp.flags.js","./node_modules/core-js/modules/es.regexp.sticky.js","./node_modules/core-js/modules/es.regexp.test.js","./node_modules/core-js/modules/es.regexp.to-string.js","./node_modules/core-js/modules/es.set.constructor.js","./node_modules/core-js/modules/es.set.js","./node_modules/core-js/modules/es.string.anchor.js","./node_modules/core-js/modules/es.string.at-alternative.js","./node_modules/core-js/modules/es.string.big.js","./node_modules/core-js/modules/es.string.blink.js","./node_modules/core-js/modules/es.string.bold.js","./node_modules/core-js/modules/es.string.code-point-at.js","./node_modules/core-js/modules/es.string.ends-with.js","./node_modules/core-js/modules/es.string.fixed.js","./node_modules/core-js/modules/es.string.fontcolor.js","./node_modules/core-js/modules/es.string.fontsize.js","./node_modules/core-js/modules/es.string.from-code-point.js","./node_modules/core-js/modules/es.string.includes.js","./node_modules/core-js/modules/es.string.italics.js","./node_modules/core-js/modules/es.string.iterator.js","./node_modules/core-js/modules/es.string.link.js","./node_modules/core-js/modules/es.string.match-all.js","./node_modules/core-js/modules/es.string.match.js","./node_modules/core-js/modules/es.string.pad-end.js","./node_modules/core-js/modules/es.string.pad-start.js","./node_modules/core-js/modules/es.string.raw.js","./node_modules/core-js/modules/es.string.repeat.js","./node_modules/core-js/modules/es.string.replace-all.js","./node_modules/core-js/modules/es.string.replace.js","./node_modules/core-js/modules/es.string.search.js","./node_modules/core-js/modules/es.string.small.js","./node_modules/core-js/modules/es.string.split.js","./node_modules/core-js/modules/es.string.starts-with.js","./node_modules/core-js/modules/es.string.strike.js","./node_modules/core-js/modules/es.string.sub.js","./node_modules/core-js/modules/es.string.substr.js","./node_modules/core-js/modules/es.string.sup.js","./node_modules/core-js/modules/es.string.trim-end.js","./node_modules/core-js/modules/es.string.trim-left.js","./node_modules/core-js/modules/es.string.trim-right.js","./node_modules/core-js/modules/es.string.trim-start.js","./node_modules/core-js/modules/es.string.trim.js","./node_modules/core-js/modules/es.symbol.async-iterator.js","./node_modules/core-js/modules/es.symbol.constructor.js","./node_modules/core-js/modules/es.symbol.description.js","./node_modules/core-js/modules/es.symbol.for.js","./node_modules/core-js/modules/es.symbol.has-instance.js","./node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","./node_modules/core-js/modules/es.symbol.iterator.js","./node_modules/core-js/modules/es.symbol.js","./node_modules/core-js/modules/es.symbol.key-for.js","./node_modules/core-js/modules/es.symbol.match-all.js","./node_modules/core-js/modules/es.symbol.match.js","./node_modules/core-js/modules/es.symbol.replace.js","./node_modules/core-js/modules/es.symbol.search.js","./node_modules/core-js/modules/es.symbol.species.js","./node_modules/core-js/modules/es.symbol.split.js","./node_modules/core-js/modules/es.symbol.to-primitive.js","./node_modules/core-js/modules/es.symbol.to-string-tag.js","./node_modules/core-js/modules/es.symbol.unscopables.js","./node_modules/core-js/modules/es.weak-map.constructor.js","./node_modules/core-js/modules/es.weak-map.js"],"sourcesContent":["/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\nimport 'core-js/es/symbol';\nimport 'core-js/es/object';\nimport 'core-js/es/function';\nimport 'core-js/es/parse-int';\nimport 'core-js/es/parse-float';\nimport 'core-js/es/number';\nimport 'core-js/es/math';\nimport 'core-js/es/string';\nimport 'core-js/es/date';\nimport 'core-js/es/array';\nimport 'core-js/es/regexp';\nimport 'core-js/es/map';\nimport 'core-js/es/weak-map';\nimport 'core-js/es/set';\nimport 'core-js/es/object';\nimport 'core-js/es/array';\nimport 'intersection-observer/intersection-observer';\n\n/** IE10 and IE11 requires the following for the Reflect API. */\nimport 'core-js/es/reflect'; // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n */\n\n // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n\n /*\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\n */\n// (window as any).__Zone_enable_cross_context_check = true;\n\n// https://stackoverflow.com/questions/50313745/angular-6-process-is-not-defined-when-trying-to-serve-application\n(window as any).process = { env: { DEBUG: undefined }, };\n// @ts-ignore\nwindow.Buffer = window.Buffer || require('buffer').Buffer;\nrequire(\"setimmediate\"); \n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js'; // Included with Angular CLI.\n\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\nimport 'hammerjs';\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\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(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit 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 * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\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 = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or 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 /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\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 * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\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(target.ownerDocument);\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 return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\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._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\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 monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\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 if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\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, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\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} targetRect The bounding rect of the target.\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, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\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 null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\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 var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.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 parent = 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 {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.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 {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} 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 var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detachEvent == 'function') {\n node.detachEvent('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|?ClientRect} The intersection rect or undefined if no\n * intersection 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 } || null;\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 {DOMRect|ClientRect} 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 {ClientRect} 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/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\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\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a