-
Notifications
You must be signed in to change notification settings - Fork 0
/
worker.min.js.map
1 lines (1 loc) · 321 KB
/
worker.min.js.map
1
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/buffer/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/file-type/index.js","webpack:///./src/worker-script/browser/index.js","webpack:///./src/worker-script/index.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/file-type/util.js","webpack:///./node_modules/file-type/supported.js","webpack:///./node_modules/is-url/index.js","webpack:///./src/worker-script/utils/dump.js","webpack:///./src/utils/getEnvironment.js","webpack:///./node_modules/is-electron/index.js","webpack:///./src/worker-script/utils/setImage.js","webpack:///./node_modules/bmp-js/index.js","webpack:///./node_modules/bmp-js/lib/encoder.js","webpack:///./node_modules/bmp-js/lib/decoder.js","webpack:///./src/worker-script/constants/defaultParams.js","webpack:///./src/constants/PSM.js","webpack:///./src/utils/log.js","webpack:///./src/worker-script/browser/getCore.js","webpack:///./src/worker-script/browser/gunzip.js","webpack:///./node_modules/zlibjs/bin/node-zlib.js","webpack:///./src/worker-script/browser/cache.js","webpack:///./node_modules/idb-keyval/dist/idb-keyval.mjs"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","base64","require","ieee754","isArray","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","Uint8Array","__proto__","arg","encodingOrOffset","this","Error","allocUnsafe","from","TypeError","ArrayBuffer","array","byteOffset","byteLength","undefined","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","slice","fromString","obj","isBuffer","len","checked","copy","buffer","val","type","data","fromObject","assertSize","size","toString","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexOf","lastIndexOf","arr","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","push","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","foo","subarray","e","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","equals","inspect","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","src","dst","g","Function","window","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","nextTick","args","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","multiByteIndexOf","stringToBytes","readUInt64LE","tarHeaderChecksumMatches","uint8ArrayUtf8ByteString","supported","xpiZipFilename","oxmlContentTypes","oxmlRels","fileType","input","check","header","options","mask","checkString","mime","firstImageDataChunkIndex","findIndex","el","sliced","zipHeader","zipHeaderIndex","oxmlFound","brandMajor","startsWith","idPos","docTypePos","findDocType","every","objectSize","stream","readableStream","Promise","resolve","reject","eval","pass","PassThrough","chunk","minimumBytes","error","unshift","pipeline","pipe","Set","extensions","mimeTypes","worker","getCore","gunzip","cache","addEventListener","dispatchHandlers","postMessage","setAdapter","fetch","TessModule","latestJob","isURL","dump","isWebWorker","setImage","defaultParams","log","setLogging","api","adapter","params","load","workerId","jobId","payload","corePath","logging","loaded","Core","progress","status","TesseractProgress","percent","then","tessModule","FS","method","loadLanguage","langs","langPath","dataPath","cachePath","cacheMethod","gzip","loadAndGunzipFile","_lang","lang","readCache","_data","path","resp","arrayBuffer","mkdir","err","writeFile","writeCache","all","split","map","DOMException","setParameters","_params","keys","filter","k","forEach","SetVariable","initialize","_langs","oem","End","TessBaseAPI","Init","recognize","image","rec","rectangle","ptr","SetRectangle","left","top","width","height","Recognize","_free","getPDF","textonly","pdfRenderer","TessPDFRenderer","BeginDocument","AddImage","EndDocument","readFile","detect","results","OSResults","DetectOS","best","best_result","oid","orientation_id","sid","script_id","tesseract_script_id","script","unicharset","get_script_from_script_id","script_confidence","sconfidence","orientation_degrees","orientation_confidence","oconfidence","terminate","_","terminated","packet","send","action","_adapter","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","result","__await","unwrapped","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","async","iter","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","webpackPolyfill","deprecate","paths","children","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","LN2","character","sum","signedBitSum","byte","readSum","bytesToSearch","startAt","nextBytesMatch","startIndex","index","protocolAndDomainRE","everythingAfterProtocol","localhostDomainRE","test","nonLocalhostDomainRE","deindent","html","lines","substring","block","para","textline","word","symbol","tessjs_create_hocr","tessjs_create_tsv","tessjs_create_box","tessjs_create_unlv","tessjs_create_osd","ri","GetIterator","RIL_BLOCK","RIL_PARA","RIL_TEXTLINE","RIL_WORD","RIL_SYMBOL","blocks","enumToString","prefix","Begin","IsAtBeginningOf","poly","BlockPolygon","polygon","getPointer","get_n","px","get_x","py","get_y","getValue","paragraphs","text","GetUTF8Text","confidence","Confidence","baseline","getBaseline","bbox","getBoundingBox","blocktype","BlockType","is_ltr","ParagraphIsLtr","words","fontInfo","getWordFontAttributes","wordDir","WordDirection","symbols","choices","is_numeric","WordIsNumeric","in_dictionary","WordIsFromDictionary","direction","language","WordRecognitionLanguage","is_bold","is_italic","is_underlined","is_monospace","is_serif","is_smallcaps","font_size","pointsize","font_id","font_name","wc","WordChoiceIterator","Next","destroy","is_superscript","SymbolIsSuperscript","is_subscript","SymbolIsSubscript","is_dropcap","SymbolIsDropcap","ci","ChoiceIterator","hocr","GetHOCRText","tsv","GetTSVText","box","GetBoxText","unlv","GetUNLVText","osd","GetOsdText","MeanTextConf","psm","GetPageSegMode","Version","isElectron","importScripts","electron","navigator","userAgent","bmp","bytesPerPixel","pix","w","h","bmpBuf","decode","_malloc","BYTES_PER_ELEMENT","HEAPU8","_pixReadMem","setValue","v","idx","SetImage","encode","BmpEncoder","imgData","rgbSize","headerInfoSize","flag","reserved","fileSize","planes","bitPP","compress","hr","vr","colors","importantColors","tempBuffer","rowBytes","fillOffset","quality","BmpDecoder","is_with_alpha","bottom_up","parseHeader","parseRGBA","headerSize","rawSize","palette","blue","green","red","quad","bitn","bit1","xlen","ceil","line","location","rgb","bit4","setPixelData","rgbIndex","low_nibble","before","after","bit8","bit15","dif_w","_1_5","B","alpha","bit16","maskRed","maskGreen","maskBlue","mask0","bit24","bit32","getData","bmpData","PSM","tessedit_pageseg_mode","SINGLE_BLOCK","tessedit_char_whitelist","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_LINE","SINGLE_WORD","CIRCLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD","_logging","console","TesseractCore","TesseractCoreWASM","WebAssembly","TesseractCoreASM","gunzipSync","q","Uint16Array","Uint32Array","DataView","G","f","I","L","aa","ba","R","ca","ha","S","ia","ja","ka","T","POSITIVE_INFINITY","na","oa","F","lazy","compressionType","outputBuffer","outputIndex","getParent","U","pa","NONE","X","qa","va","N","C","u","ra","M","z","Y","da","Fa","ea","Ga","la","Ha","Z","ma","E","Ia","D","qb","ta","ua","sa","O","A","fa","H","Ja","Ka","K","J","P","Q","Na","ga","wa","Oa","Pa","Qa","Ra","La","Ma","xa","ya","shift","za","Aa","Ba","flags","filename","comment","deflateOptions","fname","Ca","fcomment","Da","fhcrc","Ea","Date","now","Sa","V","Ta","bufferSize","bufferType","resize","Ua","W","Va","Wa","Xa","Ya","$","ib","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","kb","lb","jb","mb","nb","ob","verify","pb","rb","sb","ub","Bb","wb","noBuffer","yb","Ab","LOG2E","deflate","deflateSync","inflate","inflateSync","gzipSync","del","deleteCache","checkCache","store","Store","dbName","storeName","_dbp","openreq","indexedDB","open","onerror","onsuccess","onupgradeneeded","createObjectStore","callback","transaction","oncomplete","onabort","objectStore","getDefaultStore","req","_withIDBStore","put","delete","clear","openKeyCursor","openCursor","continue"],"mappings":"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A,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,OACA,OACA,QACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,SACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,IACA,KACA,MACA,MACA,MACA,QACA,MACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,QACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QACA,OAEDC,UAAW,CACV,aACA,YACA,YACA,aACA,aACA,oBACA,aACA,YACA,qBACA,4BACA,uBACA,0BACA,0CACA,iDACA,kDACA,0EACA,4EACA,oEACA,kBACA,oBACA,+BACA,mBACA,sBACA,8BACA,gCACA,6BACA,YACA,aACA,mBACA,aACA,kBACA,gBACA,iBACA,cACA,iBACA,iBACA,yBACA,aACA,aACA,aACA,YACA,aACA,YACA,YACA,kBACA,eACA,YACA,gBACA,YACA,kBACA,2BACA,gCACA,kBACA,mBACA,YACA,aACA,gCACA,WACA,WACA,eACA,cACA,yBACA,mBACA,wBACA,iCACA,wCACA,oCACA,oBACA,6BACA,oBACA,yBACA,qBACA,oBACA,oBACA,kBACA,aACA,wBACA,YACA,YACA,YACA,YACA,YACA,aACA,kBACA,iCACA,aACA,sBACA,aACA,sBACA,YACA,oBACA,mBACA,gBACA,oBACA,+BACA,cACA,4BACA,4BACA,cACA,yBACA,cACA,aACA,sBACA,mBACA,oBACA,oBACA,wBACA,uBACA,cACA,cACA,8B,cCrOFnW,EAAOD,QAoBP,SAAe6D,GACb,GAAsB,iBAAXA,EACT,OAAO,EAGT,IAAIyH,EAAQzH,EAAOyH,MAAMwb,GACz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","file":"worker.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 4);\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object 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 * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\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 if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\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(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, 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 interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, 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(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\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(null, 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(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().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)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var 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 (!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 var 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 var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\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 (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var 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 case undefined:\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) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var 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 coersion 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// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var 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 var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var 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 var length = this.length | 0\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.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 var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\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 var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var 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 (isNaN(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 (Buffer.TYPED_ARRAY_SUPPORT &&\n 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 var indexSize = 1\n var arrLength = arr.length\n var 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 var i\n if (dir) {\n var 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 var found = true\n for (var 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 var 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 // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(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 latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, 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 // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var 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 var 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 return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(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 var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var 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\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var 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 var res = ''\n var 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 var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; 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 var 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 var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\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 = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\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 var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\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 = function readUInt32BE (offset, noAssert) {\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.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var 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 var i = byteLength\n var mul = 1\n var 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 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 if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\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 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.readFloatLE = function readFloatLE (offset, noAssert) {\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 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 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 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 = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var 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 = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var 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 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var 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 var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var 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 (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\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 if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\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 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 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 (!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('sourceStart out of bounds')\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 var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\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 (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\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 } else if (typeof val === 'number') {\n val = val & 255\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 var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).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 stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var 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 var byteArray = []\n for (var 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 var c, hi, lo\n var byteArray = []\n for (var 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 for (var 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\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\nconst {\n\tmultiByteIndexOf,\n\tstringToBytes,\n\treadUInt64LE,\n\ttarHeaderChecksumMatches,\n\tuint8ArrayUtf8ByteString\n} = require('./util');\nconst supported = require('./supported');\n\nconst xpiZipFilename = stringToBytes('META-INF/mozilla.rsa');\nconst oxmlContentTypes = stringToBytes('[Content_Types].xml');\nconst oxmlRels = stringToBytes('_rels/.rels');\n\nconst fileType = input => {\n\tif (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) {\n\t\tthrow new TypeError(`Expected the \\`input\\` argument to be of type \\`Uint8Array\\` or \\`Buffer\\` or \\`ArrayBuffer\\`, got \\`${typeof input}\\``);\n\t}\n\n\tconst buffer = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n\tif (!(buffer && buffer.length > 1)) {\n\t\treturn;\n\t}\n\n\tconst check = (header, options) => {\n\t\toptions = {\n\t\t\toffset: 0,\n\t\t\t...options\n\t\t};\n\n\t\tfor (let i = 0; i < header.length; i++) {\n\t\t\t// If a bitmask is set\n\t\t\tif (options.mask) {\n\t\t\t\t// If header doesn't equal `buf` with bits masked off\n\t\t\t\tif (header[i] !== (options.mask[i] & buffer[i + options.offset])) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (header[i] !== buffer[i + options.offset]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tconst checkString = (header, options) => check(stringToBytes(header), options);\n\n\tif (check([0xFF, 0xD8, 0xFF])) {\n\t\treturn {\n\t\t\text: 'jpg',\n\t\t\tmime: 'image/jpeg'\n\t\t};\n\t}\n\n\tif (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\t// APNG format (https://wiki.mozilla.org/APNG_Specification)\n\t\t// 1. Find the first IDAT (image data) chunk (49 44 41 54)\n\t\t// 2. Check if there is an \"acTL\" chunk before the IDAT one (61 63 54 4C)\n\n\t\t// Offset calculated as follows:\n\t\t// - 8 bytes: PNG signature\n\t\t// - 4 (length) + 4 (chunk type) + 13 (chunk data) + 4 (CRC): IHDR chunk\n\t\tconst startIndex = 33;\n\t\tconst firstImageDataChunkIndex = buffer.findIndex((el, i) => i >= startIndex && buffer[i] === 0x49 && buffer[i + 1] === 0x44 && buffer[i + 2] === 0x41 && buffer[i + 3] === 0x54);\n\t\tconst sliced = buffer.subarray(startIndex, firstImageDataChunkIndex);\n\n\t\tif (sliced.findIndex((el, i) => sliced[i] === 0x61 && sliced[i + 1] === 0x63 && sliced[i + 2] === 0x54 && sliced[i + 3] === 0x4C) >= 0) {\n\t\t\treturn {\n\t\t\t\text: 'apng',\n\t\t\t\tmime: 'image/apng'\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\text: 'png',\n\t\t\tmime: 'image/png'\n\t\t};\n\t}\n\n\tif (check([0x47, 0x49, 0x46])) {\n\t\treturn {\n\t\t\text: 'gif',\n\t\t\tmime: 'image/gif'\n\t\t};\n\t}\n\n\tif (check([0x57, 0x45, 0x42, 0x50], {offset: 8})) {\n\t\treturn {\n\t\t\text: 'webp',\n\t\t\tmime: 'image/webp'\n\t\t};\n\t}\n\n\tif (check([0x46, 0x4C, 0x49, 0x46])) {\n\t\treturn {\n\t\t\text: 'flif',\n\t\t\tmime: 'image/flif'\n\t\t};\n\t}\n\n\t// `cr2`, `orf`, and `arw` need to be before `tif` check\n\tif (\n\t\t(check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) &&\n\t\tcheck([0x43, 0x52], {offset: 8})\n\t) {\n\t\treturn {\n\t\t\text: 'cr2',\n\t\t\tmime: 'image/x-canon-cr2'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0x52, 0x4F, 0x08, 0x00, 0x00, 0x00, 0x18])) {\n\t\treturn {\n\t\t\text: 'orf',\n\t\t\tmime: 'image/x-olympus-orf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00]) &&\n\t\t(check([0x10, 0xFB, 0x86, 0x01], {offset: 4}) || check([0x08, 0x00, 0x00, 0x00], {offset: 4})) &&\n\t\t// This pattern differentiates ARW from other TIFF-ish file types:\n\t\tcheck([0x00, 0xFE, 0x00, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01], {offset: 9})\n\t) {\n\t\treturn {\n\t\t\text: 'arw',\n\t\t\tmime: 'image/x-sony-arw'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00]) &&\n\t\t(check([0x2D, 0x00, 0xFE, 0x00], {offset: 8}) ||\n\t\tcheck([0x27, 0x00, 0xFE, 0x00], {offset: 8}))\n\t) {\n\t\treturn {\n\t\t\text: 'dng',\n\t\t\tmime: 'image/x-adobe-dng'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x00]) &&\n\t\tcheck([0x1C, 0x00, 0xFE, 0x00], {offset: 8})\n\t) {\n\t\treturn {\n\t\t\text: 'nef',\n\t\t\tmime: 'image/x-nikon-nef'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0x55, 0x00, 0x18, 0x00, 0x00, 0x00, 0x88, 0xE7, 0x74, 0xD8])) {\n\t\treturn {\n\t\t\text: 'rw2',\n\t\t\tmime: 'image/x-panasonic-rw2'\n\t\t};\n\t}\n\n\t// `raf` is here just to keep all the raw image detectors together.\n\tif (checkString('FUJIFILMCCD-RAW')) {\n\t\treturn {\n\t\t\text: 'raf',\n\t\t\tmime: 'image/x-fujifilm-raf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x49, 0x49, 0x2A, 0x0]) ||\n\t\tcheck([0x4D, 0x4D, 0x0, 0x2A])\n\t) {\n\t\treturn {\n\t\t\text: 'tif',\n\t\t\tmime: 'image/tiff'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4D])) {\n\t\treturn {\n\t\t\text: 'bmp',\n\t\t\tmime: 'image/bmp'\n\t\t};\n\t}\n\n\tif (check([0x49, 0x49, 0xBC])) {\n\t\treturn {\n\t\t\text: 'jxr',\n\t\t\tmime: 'image/vnd.ms-photo'\n\t\t};\n\t}\n\n\tif (check([0x38, 0x42, 0x50, 0x53])) {\n\t\treturn {\n\t\t\text: 'psd',\n\t\t\tmime: 'image/vnd.adobe.photoshop'\n\t\t};\n\t}\n\n\t// Zip-based file formats\n\t// Need to be before the `zip` check\n\tconst zipHeader = [0x50, 0x4B, 0x3, 0x4];\n\tif (check(zipHeader)) {\n\t\tif (\n\t\t\tcheck([0x6D, 0x69, 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x65, 0x70, 0x75, 0x62, 0x2B, 0x7A, 0x69, 0x70], {offset: 30})\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'epub',\n\t\t\t\tmime: 'application/epub+zip'\n\t\t\t};\n\t\t}\n\n\t\t// Assumes signed `.xpi` from addons.mozilla.org\n\t\tif (check(xpiZipFilename, {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'xpi',\n\t\t\t\tmime: 'application/x-xpinstall'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.text', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'odt',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.text'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.spreadsheet', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'ods',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.spreadsheet'\n\t\t\t};\n\t\t}\n\n\t\tif (checkString('mimetypeapplication/vnd.oasis.opendocument.presentation', {offset: 30})) {\n\t\t\treturn {\n\t\t\t\text: 'odp',\n\t\t\t\tmime: 'application/vnd.oasis.opendocument.presentation'\n\t\t\t};\n\t\t}\n\n\t\t// The docx, xlsx and pptx file types extend the Office Open XML file format:\n\t\t// https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n\t\t// We look for:\n\t\t// - one entry named '[Content_Types].xml' or '_rels/.rels',\n\t\t// - one entry indicating specific type of file.\n\t\t// MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\t\tlet zipHeaderIndex = 0; // The first zip header was already found at index 0\n\t\tlet oxmlFound = false;\n\t\tlet type;\n\n\t\tdo {\n\t\t\tconst offset = zipHeaderIndex + 30;\n\n\t\t\tif (!oxmlFound) {\n\t\t\t\toxmlFound = (check(oxmlContentTypes, {offset}) || check(oxmlRels, {offset}));\n\t\t\t}\n\n\t\t\tif (!type) {\n\t\t\t\tif (checkString('word/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'docx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n\t\t\t\t\t};\n\t\t\t\t} else if (checkString('ppt/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'pptx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n\t\t\t\t\t};\n\t\t\t\t} else if (checkString('xl/', {offset})) {\n\t\t\t\t\ttype = {\n\t\t\t\t\t\text: 'xlsx',\n\t\t\t\t\t\tmime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (oxmlFound && type) {\n\t\t\t\treturn type;\n\t\t\t}\n\n\t\t\tzipHeaderIndex = multiByteIndexOf(buffer, zipHeader, offset);\n\t\t} while (zipHeaderIndex >= 0);\n\n\t\t// No more zip parts available in the buffer, but maybe we are almost certain about the type?\n\t\tif (type) {\n\t\t\treturn type;\n\t\t}\n\t}\n\n\tif (\n\t\tcheck([0x50, 0x4B]) &&\n\t\t(buffer[2] === 0x3 || buffer[2] === 0x5 || buffer[2] === 0x7) &&\n\t\t(buffer[3] === 0x4 || buffer[3] === 0x6 || buffer[3] === 0x8)\n\t) {\n\t\treturn {\n\t\t\text: 'zip',\n\t\t\tmime: 'application/zip'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x30, 0x30, 0x30, 0x30, 0x30, 0x30], {offset: 148, mask: [0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8]}) && // Valid tar checksum\n\t\ttarHeaderChecksumMatches(buffer)\n\t) {\n\t\treturn {\n\t\t\text: 'tar',\n\t\t\tmime: 'application/x-tar'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7]) &&\n\t\t(buffer[6] === 0x0 || buffer[6] === 0x1)\n\t) {\n\t\treturn {\n\t\t\text: 'rar',\n\t\t\tmime: 'application/x-rar-compressed'\n\t\t};\n\t}\n\n\tif (check([0x1F, 0x8B, 0x8])) {\n\t\treturn {\n\t\t\text: 'gz',\n\t\t\tmime: 'application/gzip'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x5A, 0x68])) {\n\t\treturn {\n\t\t\text: 'bz2',\n\t\t\tmime: 'application/x-bzip2'\n\t\t};\n\t}\n\n\tif (check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n\t\treturn {\n\t\t\text: '7z',\n\t\t\tmime: 'application/x-7z-compressed'\n\t\t};\n\t}\n\n\tif (check([0x78, 0x01])) {\n\t\treturn {\n\t\t\text: 'dmg',\n\t\t\tmime: 'application/x-apple-diskimage'\n\t\t};\n\t}\n\n\t// `mov` format variants\n\tif (\n\t\tcheck([0x66, 0x72, 0x65, 0x65], {offset: 4}) || // `free`\n\t\tcheck([0x6D, 0x64, 0x61, 0x74], {offset: 4}) || // `mdat` MJPEG\n\t\tcheck([0x6D, 0x6F, 0x6F, 0x76], {offset: 4}) || // `moov`\n\t\tcheck([0x77, 0x69, 0x64, 0x65], {offset: 4}) // `wide`\n\t) {\n\t\treturn {\n\t\t\text: 'mov',\n\t\t\tmime: 'video/quicktime'\n\t\t};\n\t}\n\n\t// File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\t// It's not required to be first, but it's recommended to be. Almost all ISO base media files start with `ftyp` box.\n\t// `ftyp` box must contain a brand major identifier, which must consist of ISO 8859-1 printable characters.\n\t// Here we check for 8859-1 printable characters (for simplicity, it's a mask which also catches one non-printable character).\n\tif (\n\t\tcheck([0x66, 0x74, 0x79, 0x70], {offset: 4}) && // `ftyp`\n\t\t(buffer[8] & 0x60) !== 0x00 && (buffer[9] & 0x60) !== 0x00 && (buffer[10] & 0x60) !== 0x00 && (buffer[11] & 0x60) !== 0x00 // Brand major\n\t) {\n\t\t// They all can have MIME `video/mp4` except `application/mp4` special-case which is hard to detect.\n\t\t// For some cases, we're specific, everything else falls to `video/mp4` with `mp4` extension.\n\t\tconst brandMajor = uint8ArrayUtf8ByteString(buffer, 8, 12);\n\t\tswitch (brandMajor) {\n\t\t\tcase 'mif1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif'};\n\t\t\tcase 'msf1':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heif-sequence'};\n\t\t\tcase 'heic': case 'heix':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic'};\n\t\t\tcase 'hevc': case 'hevx':\n\t\t\t\treturn {ext: 'heic', mime: 'image/heic-sequence'};\n\t\t\tcase 'qt ':\n\t\t\t\treturn {ext: 'mov', mime: 'video/quicktime'};\n\t\t\tcase 'M4V ': case 'M4VH': case 'M4VP':\n\t\t\t\treturn {ext: 'm4v', mime: 'video/x-m4v'};\n\t\t\tcase 'M4P ':\n\t\t\t\treturn {ext: 'm4p', mime: 'video/mp4'};\n\t\t\tcase 'M4B ':\n\t\t\t\treturn {ext: 'm4b', mime: 'audio/mp4'};\n\t\t\tcase 'M4A ':\n\t\t\t\treturn {ext: 'm4a', mime: 'audio/x-m4a'};\n\t\t\tcase 'F4V ':\n\t\t\t\treturn {ext: 'f4v', mime: 'video/mp4'};\n\t\t\tcase 'F4P ':\n\t\t\t\treturn {ext: 'f4p', mime: 'video/mp4'};\n\t\t\tcase 'F4A ':\n\t\t\t\treturn {ext: 'f4a', mime: 'audio/mp4'};\n\t\t\tcase 'F4B ':\n\t\t\t\treturn {ext: 'f4b', mime: 'audio/mp4'};\n\t\t\tdefault:\n\t\t\t\tif (brandMajor.startsWith('3g')) {\n\t\t\t\t\tif (brandMajor.startsWith('3g2')) {\n\t\t\t\t\t\treturn {ext: '3g2', mime: 'video/3gpp2'};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {ext: '3gp', mime: 'video/3gpp'};\n\t\t\t\t}\n\n\t\t\t\treturn {ext: 'mp4', mime: 'video/mp4'};\n\t\t}\n\t}\n\n\tif (check([0x4D, 0x54, 0x68, 0x64])) {\n\t\treturn {\n\t\t\text: 'mid',\n\t\t\tmime: 'audio/midi'\n\t\t};\n\t}\n\n\t// https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\tif (check([0x1A, 0x45, 0xDF, 0xA3])) {\n\t\tconst sliced = buffer.subarray(4, 4 + 4096);\n\t\tconst idPos = sliced.findIndex((el, i, arr) => arr[i] === 0x42 && arr[i + 1] === 0x82);\n\n\t\tif (idPos !== -1) {\n\t\t\tconst docTypePos = idPos + 3;\n\t\t\tconst findDocType = type => [...type].every((c, i) => sliced[docTypePos + i] === c.charCodeAt(0));\n\n\t\t\tif (findDocType('matroska')) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'mkv',\n\t\t\t\t\tmime: 'video/x-matroska'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (findDocType('webm')) {\n\t\t\t\treturn {\n\t\t\t\t\text: 'webm',\n\t\t\t\t\tmime: 'video/webm'\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n\n\t// RIFF file format which might be AVI, WAV, QCP, etc\n\tif (check([0x52, 0x49, 0x46, 0x46])) {\n\t\tif (check([0x41, 0x56, 0x49], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'avi',\n\t\t\t\tmime: 'video/vnd.avi'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x57, 0x41, 0x56, 0x45], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'wav',\n\t\t\t\tmime: 'audio/vnd.wave'\n\t\t\t};\n\t\t}\n\n\t\t// QLCM, QCP file\n\t\tif (check([0x51, 0x4C, 0x43, 0x4D], {offset: 8})) {\n\t\t\treturn {\n\t\t\t\text: 'qcp',\n\t\t\t\tmime: 'audio/qcelp'\n\t\t\t};\n\t\t}\n\t}\n\n\t// ASF_Header_Object first 80 bytes\n\tif (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n\t\t// Search for header should be in first 1KB of file.\n\n\t\tlet offset = 30;\n\t\tdo {\n\t\t\tconst objectSize = readUInt64LE(buffer, offset + 16);\n\t\t\tif (check([0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65], {offset})) {\n\t\t\t\t// Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n\t\t\t\tif (check([0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {offset: offset + 24})) {\n\t\t\t\t\t// Found audio:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wma',\n\t\t\t\t\t\tmime: 'audio/x-ms-wma'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (check([0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {offset: offset + 24})) {\n\t\t\t\t\t// Found video:\n\t\t\t\t\treturn {\n\t\t\t\t\t\text: 'wmv',\n\t\t\t\t\t\tmime: 'video/x-ms-asf'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\toffset += objectSize;\n\t\t} while (offset + 24 <= buffer.length);\n\n\t\t// Default to ASF generic extension\n\t\treturn {\n\t\t\text: 'asf',\n\t\t\tmime: 'application/vnd.ms-asf'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x0, 0x0, 0x1, 0xBA]) ||\n\t\tcheck([0x0, 0x0, 0x1, 0xB3])\n\t) {\n\t\treturn {\n\t\t\text: 'mpg',\n\t\t\tmime: 'video/mpeg'\n\t\t};\n\t}\n\n\t// Check for MPEG header at different starting offsets\n\tfor (let start = 0; start < 2 && start < (buffer.length - 16); start++) {\n\t\tif (\n\t\t\tcheck([0x49, 0x44, 0x33], {offset: start}) || // ID3 header\n\t\t\tcheck([0xFF, 0xE2], {offset: start, mask: [0xFF, 0xE6]}) // MPEG 1 or 2 Layer 3 header\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp3',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xE4], {offset: start, mask: [0xFF, 0xE6]}) // MPEG 1 or 2 Layer 2 header\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp2',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xF8], {offset: start, mask: [0xFF, 0xFC]}) // MPEG 2 layer 0 using ADTS\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp2',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\tcheck([0xFF, 0xF0], {offset: start, mask: [0xFF, 0xFC]}) // MPEG 4 layer 0 using ADTS\n\t\t) {\n\t\t\treturn {\n\t\t\t\text: 'mp4',\n\t\t\t\tmime: 'audio/mpeg'\n\t\t\t};\n\t\t}\n\t}\n\n\t// Needs to be before `ogg` check\n\tif (check([0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64], {offset: 28})) {\n\t\treturn {\n\t\t\text: 'opus',\n\t\t\tmime: 'audio/opus'\n\t\t};\n\t}\n\n\t// If 'OggS' in first bytes, then OGG container\n\tif (check([0x4F, 0x67, 0x67, 0x53])) {\n\t\t// This is a OGG container\n\n\t\t// If ' theora' in header.\n\t\tif (check([0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogv',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01video' in header.\n\t\tif (check([0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogm',\n\t\t\t\tmime: 'video/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If ' FLAC' in header https://xiph.org/flac/faq.html\n\t\tif (check([0x7F, 0x46, 0x4C, 0x41, 0x43], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'oga',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\t\tif (check([0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'spx',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// If '\\x01vorbis' in header\n\t\tif (check([0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73], {offset: 28})) {\n\t\t\treturn {\n\t\t\t\text: 'ogg',\n\t\t\t\tmime: 'audio/ogg'\n\t\t\t};\n\t\t}\n\n\t\t// Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\t\treturn {\n\t\t\text: 'ogx',\n\t\t\tmime: 'application/ogg'\n\t\t};\n\t}\n\n\tif (check([0x66, 0x4C, 0x61, 0x43])) {\n\t\treturn {\n\t\t\text: 'flac',\n\t\t\tmime: 'audio/x-flac'\n\t\t};\n\t}\n\n\tif (check([0x4D, 0x41, 0x43, 0x20])) { // 'MAC '\n\t\treturn {\n\t\t\text: 'ape',\n\t\t\tmime: 'audio/ape'\n\t\t};\n\t}\n\n\tif (check([0x77, 0x76, 0x70, 0x6B])) { // 'wvpk'\n\t\treturn {\n\t\t\text: 'wv',\n\t\t\tmime: 'audio/wavpack'\n\t\t};\n\t}\n\n\tif (check([0x23, 0x21, 0x41, 0x4D, 0x52, 0x0A])) {\n\t\treturn {\n\t\t\text: 'amr',\n\t\t\tmime: 'audio/amr'\n\t\t};\n\t}\n\n\tif (check([0x25, 0x50, 0x44, 0x46])) {\n\t\treturn {\n\t\t\text: 'pdf',\n\t\t\tmime: 'application/pdf'\n\t\t};\n\t}\n\n\tif (check([0x4D, 0x5A])) {\n\t\treturn {\n\t\t\text: 'exe',\n\t\t\tmime: 'application/x-msdownload'\n\t\t};\n\t}\n\n\tif (\n\t\t(buffer[0] === 0x43 || buffer[0] === 0x46) &&\n\t\tcheck([0x57, 0x53], {offset: 1})\n\t) {\n\t\treturn {\n\t\t\text: 'swf',\n\t\t\tmime: 'application/x-shockwave-flash'\n\t\t};\n\t}\n\n\tif (check([0x7B, 0x5C, 0x72, 0x74, 0x66])) {\n\t\treturn {\n\t\t\text: 'rtf',\n\t\t\tmime: 'application/rtf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x61, 0x73, 0x6D])) {\n\t\treturn {\n\t\t\text: 'wasm',\n\t\t\tmime: 'application/wasm'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x77, 0x4F, 0x46, 0x46]) &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheck([0x4F, 0x54, 0x54, 0x4F], {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff',\n\t\t\tmime: 'font/woff'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x77, 0x4F, 0x46, 0x32]) &&\n\t\t(\n\t\t\tcheck([0x00, 0x01, 0x00, 0x00], {offset: 4}) ||\n\t\t\tcheck([0x4F, 0x54, 0x54, 0x4F], {offset: 4})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'woff2',\n\t\t\tmime: 'font/woff2'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x4C, 0x50], {offset: 34}) &&\n\t\t(\n\t\t\tcheck([0x00, 0x00, 0x01], {offset: 8}) ||\n\t\t\tcheck([0x01, 0x00, 0x02], {offset: 8}) ||\n\t\t\tcheck([0x02, 0x00, 0x02], {offset: 8})\n\t\t)\n\t) {\n\t\treturn {\n\t\t\text: 'eot',\n\t\t\tmime: 'application/vnd.ms-fontobject'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'ttf',\n\t\t\tmime: 'font/ttf'\n\t\t};\n\t}\n\n\tif (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n\t\treturn {\n\t\t\text: 'otf',\n\t\t\tmime: 'font/otf'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x01, 0x00])) {\n\t\treturn {\n\t\t\text: 'ico',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x02, 0x00])) {\n\t\treturn {\n\t\t\text: 'cur',\n\t\t\tmime: 'image/x-icon'\n\t\t};\n\t}\n\n\tif (check([0x46, 0x4C, 0x56, 0x01])) {\n\t\treturn {\n\t\t\text: 'flv',\n\t\t\tmime: 'video/x-flv'\n\t\t};\n\t}\n\n\tif (check([0x25, 0x21])) {\n\t\treturn {\n\t\t\text: 'ps',\n\t\t\tmime: 'application/postscript'\n\t\t};\n\t}\n\n\tif (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n\t\treturn {\n\t\t\text: 'xz',\n\t\t\tmime: 'application/x-xz'\n\t\t};\n\t}\n\n\tif (check([0x53, 0x51, 0x4C, 0x69])) {\n\t\treturn {\n\t\t\text: 'sqlite',\n\t\t\tmime: 'application/x-sqlite3'\n\t\t};\n\t}\n\n\tif (check([0x4E, 0x45, 0x53, 0x1A])) {\n\t\treturn {\n\t\t\text: 'nes',\n\t\t\tmime: 'application/x-nintendo-nes-rom'\n\t\t};\n\t}\n\n\tif (check([0x43, 0x72, 0x32, 0x34])) {\n\t\treturn {\n\t\t\text: 'crx',\n\t\t\tmime: 'application/x-google-chrome-extension'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x4D, 0x53, 0x43, 0x46]) ||\n\t\tcheck([0x49, 0x53, 0x63, 0x28])\n\t) {\n\t\treturn {\n\t\t\text: 'cab',\n\t\t\tmime: 'application/vnd.ms-cab-compressed'\n\t\t};\n\t}\n\n\t// Needs to be before `ar` check\n\tif (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79])) {\n\t\treturn {\n\t\t\text: 'deb',\n\t\t\tmime: 'application/x-deb'\n\t\t};\n\t}\n\n\tif (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E])) {\n\t\treturn {\n\t\t\text: 'ar',\n\t\t\tmime: 'application/x-unix-archive'\n\t\t};\n\t}\n\n\tif (check([0xED, 0xAB, 0xEE, 0xDB])) {\n\t\treturn {\n\t\t\text: 'rpm',\n\t\t\tmime: 'application/x-rpm'\n\t\t};\n\t}\n\n\tif (\n\t\tcheck([0x1F, 0xA0]) ||\n\t\tcheck([0x1F, 0x9D])\n\t) {\n\t\treturn {\n\t\t\text: 'Z',\n\t\t\tmime: 'application/x-compress'\n\t\t};\n\t}\n\n\tif (check([0x4C, 0x5A, 0x49, 0x50])) {\n\t\treturn {\n\t\t\text: 'lz',\n\t\t\tmime: 'application/x-lzip'\n\t\t};\n\t}\n\n\tif (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E])) {\n\t\treturn {\n\t\t\text: 'msi',\n\t\t\tmime: 'application/x-msi'\n\t\t};\n\t}\n\n\tif (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n\t\treturn {\n\t\t\text: 'mxf',\n\t\t\tmime: 'application/mxf'\n\t\t};\n\t}\n\n\tif (check([0x47], {offset: 4}) && (check([0x47], {offset: 192}) || check([0x47], {offset: 196}))) {\n\t\treturn {\n\t\t\text: 'mts',\n\t\t\tmime: 'video/mp2t'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4C, 0x45, 0x4E, 0x44, 0x45, 0x52])) {\n\t\treturn {\n\t\t\text: 'blend',\n\t\t\tmime: 'application/x-blender'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x50, 0x47, 0xFB])) {\n\t\treturn {\n\t\t\text: 'bpg',\n\t\t\tmime: 'image/bpg'\n\t\t};\n\t}\n\n\tif (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n\t\t// JPEG-2000 family\n\n\t\tif (check([0x6A, 0x70, 0x32, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jp2',\n\t\t\t\tmime: 'image/jp2'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6A, 0x70, 0x78, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jpx',\n\t\t\t\tmime: 'image/jpx'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6A, 0x70, 0x6D, 0x20], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'jpm',\n\t\t\t\tmime: 'image/jpm'\n\t\t\t};\n\t\t}\n\n\t\tif (check([0x6D, 0x6A, 0x70, 0x32], {offset: 20})) {\n\t\t\treturn {\n\t\t\t\text: 'mj2',\n\t\t\t\tmime: 'image/mj2'\n\t\t\t};\n\t\t}\n\t}\n\n\tif (check([0x46, 0x4F, 0x52, 0x4D])) {\n\t\treturn {\n\t\t\text: 'aif',\n\t\t\tmime: 'audio/aiff'\n\t\t};\n\t}\n\n\tif (checkString('<?xml ')) {\n\t\treturn {\n\t\t\text: 'xml',\n\t\t\tmime: 'application/xml'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {offset: 60})) {\n\t\treturn {\n\t\t\text: 'mobi',\n\t\t\tmime: 'application/x-mobipocket-ebook'\n\t\t};\n\t}\n\n\tif (check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n\t\treturn {\n\t\t\text: 'ktx',\n\t\t\tmime: 'image/ktx'\n\t\t};\n\t}\n\n\tif (check([0x44, 0x49, 0x43, 0x4D], {offset: 128})) {\n\t\treturn {\n\t\t\text: 'dcm',\n\t\t\tmime: 'application/dicom'\n\t\t};\n\t}\n\n\t// Musepack, SV7\n\tif (check([0x4D, 0x50, 0x2B])) {\n\t\treturn {\n\t\t\text: 'mpc',\n\t\t\tmime: 'audio/x-musepack'\n\t\t};\n\t}\n\n\t// Musepack, SV8\n\tif (check([0x4D, 0x50, 0x43, 0x4B])) {\n\t\treturn {\n\t\t\text: 'mpc',\n\t\t\tmime: 'audio/x-musepack'\n\t\t};\n\t}\n\n\tif (check([0x42, 0x45, 0x47, 0x49, 0x4E, 0x3A])) {\n\t\treturn {\n\t\t\text: 'ics',\n\t\t\tmime: 'text/calendar'\n\t\t};\n\t}\n\n\tif (check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'glb',\n\t\t\tmime: 'model/gltf-binary'\n\t\t};\n\t}\n\n\tif (check([0xD4, 0xC3, 0xB2, 0xA1]) || check([0xA1, 0xB2, 0xC3, 0xD4])) {\n\t\treturn {\n\t\t\text: 'pcap',\n\t\t\tmime: 'application/vnd.tcpdump.pcap'\n\t\t};\n\t}\n\n\t// Sony DSD Stream File (DSF)\n\tif (check([0x44, 0x53, 0x44, 0x20])) {\n\t\treturn {\n\t\t\text: 'dsf',\n\t\t\tmime: 'audio/x-dsf' // Non-standard\n\t\t};\n\t}\n\n\tif (check([0x4C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46])) {\n\t\treturn {\n\t\t\text: 'lnk',\n\t\t\tmime: 'application/x.ms.shortcut' // Invented by us\n\t\t};\n\t}\n\n\tif (check([0x62, 0x6F, 0x6F, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x61, 0x72, 0x6B, 0x00, 0x00, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'alias',\n\t\t\tmime: 'application/x.apple.alias' // Invented by us\n\t\t};\n\t}\n\n\tif (checkString('Creative Voice File')) {\n\t\treturn {\n\t\t\text: 'voc',\n\t\t\tmime: 'audio/x-voc'\n\t\t};\n\t}\n\n\tif (check([0x0B, 0x77])) {\n\t\treturn {\n\t\t\text: 'ac3',\n\t\t\tmime: 'audio/vnd.dolby.dd-raw'\n\t\t};\n\t}\n\n\tif ((check([0x7E, 0x10, 0x04]) || check([0x7E, 0x18, 0x04])) && check([0x30, 0x4D, 0x49, 0x45], {offset: 4})) {\n\t\treturn {\n\t\t\text: 'mie',\n\t\t\tmime: 'application/x-mie'\n\t\t};\n\t}\n\n\tif (check([0x41, 0x52, 0x52, 0x4F, 0x57, 0x31, 0x00, 0x00])) {\n\t\treturn {\n\t\t\text: 'arrow',\n\t\t\tmime: 'application/x-apache-arrow'\n\t\t};\n\t}\n\n\tif (check([0x27, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00], {offset: 2})) {\n\t\treturn {\n\t\t\text: 'shp',\n\t\t\tmime: 'application/x-esri-shape'\n\t\t};\n\t}\n};\n\nmodule.exports = fileType;\n\nObject.defineProperty(fileType, 'minimumBytes', {value: 4100});\n\nfileType.stream = readableStream => new Promise((resolve, reject) => {\n\t// Using `eval` to work around issues when bundling with Webpack\n\tconst stream = eval('require')('stream'); // eslint-disable-line no-eval\n\n\treadableStream.on('error', reject);\n\treadableStream.once('readable', () => {\n\t\tconst pass = new stream.PassThrough();\n\t\tconst chunk = readableStream.read(module.exports.minimumBytes) || readableStream.read();\n\t\ttry {\n\t\t\tpass.fileType = fileType(chunk);\n\t\t} catch (error) {\n\t\t\treject(error);\n\t\t}\n\n\t\treadableStream.unshift(chunk);\n\n\t\tif (stream.pipeline) {\n\t\t\tresolve(stream.pipeline(readableStream, pass, () => {}));\n\t\t} else {\n\t\t\tresolve(readableStream.pipe(pass));\n\t\t}\n\t});\n});\n\nObject.defineProperty(fileType, 'extensions', {\n\tget() {\n\t\treturn new Set(supported.extensions);\n\t}\n});\n\nObject.defineProperty(fileType, 'mimeTypes', {\n\tget() {\n\t\treturn new Set(supported.mimeTypes);\n\t}\n});\n","/**\n *\n * Browser worker scripts\n *\n * @fileoverview Browser worker implementation\n * @author Kevin Kwok <[email protected]>\n * @author Guillermo Webster <[email protected]>\n * @author Jerome Wu <[email protected]>\n */\n\nconst worker = require('../');\nconst getCore = require('./getCore');\nconst gunzip = require('./gunzip');\nconst cache = require('./cache');\n\n/*\n * register message handler\n */\nglobal.addEventListener('message', ({ data }) => {\n worker.dispatchHandlers(data, obj => postMessage(obj));\n});\n\n/*\n * getCore is a sync function to load and return\n * TesseractCore.\n */\nworker.setAdapter({\n getCore,\n gunzip,\n fetch: () => {},\n ...cache,\n});\n","/**\n *\n * Worker script for browser and node\n *\n * @fileoverview Worker script for browser and node\n * @author Kevin Kwok <[email protected]>\n * @author Guillermo Webster <[email protected]>\n * @author Jerome Wu <[email protected]>\n */\nrequire('regenerator-runtime/runtime');\nconst fileType = require('file-type');\nconst isURL = require('is-url');\nconst dump = require('./utils/dump');\nconst isWebWorker = require('../utils/getEnvironment')('type') === 'webworker';\nconst setImage = require('./utils/setImage');\nconst defaultParams = require('./constants/defaultParams');\nconst { log, setLogging } = require('../utils/log');\n\n/*\n * Tesseract Module returned by TesseractCore.\n */\nlet TessModule;\n/*\n * TessearctBaseAPI instance\n */\nlet api = null;\nlet latestJob;\nlet adapter = {};\nlet params = defaultParams;\n\nconst load = ({ workerId, jobId, payload: { options: { corePath, logging } } }, res) => {\n setLogging(logging);\n if (!TessModule) {\n const Core = adapter.getCore(corePath, res);\n\n res.progress({ workerId, status: 'initializing tesseract', progress: 0 });\n\n Core({\n TesseractProgress(percent) {\n latestJob.progress({\n workerId,\n jobId,\n status: 'recognizing text',\n progress: Math.max(0, (percent - 30) / 70),\n });\n },\n }).then((tessModule) => {\n TessModule = tessModule;\n res.progress({ workerId, status: 'initialized tesseract', progress: 1 });\n res.resolve({ loaded: true });\n });\n } else {\n res.resolve({ loaded: true });\n }\n};\n\nconst FS = ({ workerId, payload: { method, args } }, res) => {\n log(`[${workerId}]: FS.${method} with args ${args}`);\n res.resolve(TessModule.FS[method](...args));\n};\n\nconst loadLanguage = async ({\n workerId,\n payload: {\n langs,\n options: {\n langPath,\n dataPath,\n cachePath,\n cacheMethod,\n gzip = true,\n },\n },\n},\n res) => {\n const loadAndGunzipFile = async (_lang) => {\n const lang = typeof _lang === 'string' ? _lang : _lang.code;\n const readCache = ['refresh', 'none'].includes(cacheMethod)\n ? () => Promise.resolve()\n : adapter.readCache;\n let data = null;\n\n try {\n const _data = await readCache(`${cachePath || '.'}/${lang}.traineddata`);\n if (typeof _data !== 'undefined') {\n log(`[${workerId}]: Load ${lang}.traineddata from cache`);\n data = _data;\n } else {\n throw Error('Not found in cache');\n }\n } catch (e) {\n log(`[${workerId}]: Load ${lang}.traineddata from ${langPath}`);\n if (typeof _lang === 'string') {\n let path = null;\n\n if (isURL(langPath) || langPath.startsWith('moz-extension://') || langPath.startsWith('chrome-extension://') || langPath.startsWith('file://')) { /** When langPath is an URL */\n path = langPath;\n }\n\n if (path !== null) {\n const resp = await (isWebWorker ? fetch : adapter.fetch)(`${path}/${lang}.traineddata${gzip ? '.gz' : ''}`);\n data = await resp.arrayBuffer();\n } else {\n data = await adapter.readCache(`${langPath}/${lang}.traineddata${gzip ? '.gz' : ''}`);\n }\n } else {\n data = _lang.data; // eslint-disable-line\n }\n }\n\n data = new Uint8Array(data);\n\n const type = fileType(data);\n if (typeof type !== 'undefined' && type.mime === 'application/gzip') {\n data = adapter.gunzip(data);\n }\n\n if (TessModule) {\n if (dataPath) {\n try {\n TessModule.FS.mkdir(dataPath);\n } catch (err) {\n res.reject(err.toString());\n }\n }\n TessModule.FS.writeFile(`${dataPath || '.'}/${lang}.traineddata`, data);\n }\n\n if (['write', 'refresh', undefined].includes(cacheMethod)) {\n await adapter.writeCache(`${cachePath || '.'}/${lang}.traineddata`, data);\n }\n\n return Promise.resolve(data);\n };\n\n res.progress({ workerId, status: 'loading language traineddata', progress: 0 });\n try {\n await Promise.all((typeof langs === 'string' ? langs.split('+') : langs).map(loadAndGunzipFile));\n res.progress({ workerId, status: 'loaded language traineddata', progress: 1 });\n res.resolve(langs);\n } catch (err) {\n if (isWebWorker && err instanceof DOMException) {\n /*\n * For some reason google chrome throw DOMException in loadLang,\n * while other browser is OK, for now we ignore this exception\n * and hopefully to find the root cause one day.\n */\n } else {\n res.reject(err.toString());\n }\n }\n};\n\nconst setParameters = ({ payload: { params: _params } }, res) => {\n Object.keys(_params)\n .filter(k => !k.startsWith('tessjs_'))\n .forEach((key) => {\n api.SetVariable(key, _params[key]);\n });\n params = { ...params, ..._params };\n\n if (typeof res !== 'undefined') {\n res.resolve(params);\n }\n};\n\nconst initialize = ({\n workerId,\n payload: { langs: _langs, oem },\n}, res) => {\n const langs = (typeof _langs === 'string')\n ? _langs\n : _langs.map(l => ((typeof l === 'string') ? l : l.data)).join('+');\n\n try {\n res.progress({\n workerId, status: 'initializing api', progress: 0,\n });\n if (api !== null) {\n api.End();\n }\n api = new TessModule.TessBaseAPI();\n api.Init(null, langs, oem);\n params = defaultParams;\n setParameters({ payload: { params } });\n res.progress({\n workerId, status: 'initialized api', progress: 1,\n });\n res.resolve();\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst recognize = ({ payload: { image, options: { rectangle: rec } } }, res) => {\n try {\n const ptr = setImage(TessModule, api, image);\n if (typeof rec === 'object') {\n api.SetRectangle(rec.left, rec.top, rec.width, rec.height);\n }\n api.Recognize(null);\n res.resolve(dump(TessModule, api, params));\n TessModule._free(ptr);\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst getPDF = ({ payload: { title, textonly } }, res) => {\n const pdfRenderer = new TessModule.TessPDFRenderer('tesseract-ocr', '/', textonly);\n pdfRenderer.BeginDocument(title);\n pdfRenderer.AddImage(api);\n pdfRenderer.EndDocument();\n TessModule._free(pdfRenderer);\n\n res.resolve(TessModule.FS.readFile('/tesseract-ocr.pdf'));\n};\n\nconst detect = ({ payload: { image } }, res) => {\n try {\n const ptr = setImage(TessModule, api, image);\n const results = new TessModule.OSResults();\n\n if (!api.DetectOS(results)) {\n api.End();\n TessModule._free(ptr);\n res.reject('Failed to detect OS');\n } else {\n const best = results.best_result;\n const oid = best.orientation_id;\n const sid = best.script_id;\n\n TessModule._free(ptr);\n\n res.resolve({\n tesseract_script_id: sid,\n script: results.unicharset.get_script_from_script_id(sid),\n script_confidence: best.sconfidence,\n orientation_degrees: [0, 270, 180, 90][oid],\n orientation_confidence: best.oconfidence,\n });\n }\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst terminate = (_, res) => {\n try {\n if (api !== null) {\n api.End();\n }\n res.resolve({ terminated: true });\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\n/**\n * dispatchHandlers\n *\n * @name dispatchHandlers\n * @function worker data handler\n * @access public\n * @param {object} data\n * @param {string} data.jobId - unique job id\n * @param {string} data.action - action of the job, only recognize and detect for now\n * @param {object} data.payload - data for the job\n * @param {function} send - trigger job to work\n */\nexports.dispatchHandlers = (packet, send) => {\n const res = (status, data) => {\n send({\n ...packet,\n status,\n data,\n });\n };\n res.resolve = res.bind(this, 'resolve');\n res.reject = res.bind(this, 'reject');\n res.progress = res.bind(this, 'progress');\n\n latestJob = res;\n\n try {\n ({\n load,\n FS,\n loadLanguage,\n initialize,\n setParameters,\n recognize,\n getPDF,\n detect,\n terminate,\n })[packet.action](packet, res);\n } catch (err) {\n /** Prepare exception to travel through postMessage */\n res.reject(err.toString());\n }\n};\n\n/**\n * setAdapter\n *\n * @name setAdapter\n * @function\n * @access public\n * @param {object} adapter - implementation of the worker, different in browser and node environment\n */\nexports.setAdapter = (_adapter) => {\n adapter = _adapter;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict'\n\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(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\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","exports.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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nexports.stringToBytes = string => [...string].map(character => character.charCodeAt(0));\n\nconst uint8ArrayUtf8ByteString = (array, start, end) => {\n\treturn String.fromCharCode(...array.slice(start, end));\n};\n\nexports.readUInt64LE = (buffer, offset = 0) => {\n\tlet n = buffer[offset];\n\tlet mul = 1;\n\tlet i = 0;\n\n\twhile (++i < 8) {\n\t\tmul *= 0x100;\n\t\tn += buffer[offset + i] * mul;\n\t}\n\n\treturn n;\n};\n\nexports.tarHeaderChecksumMatches = buffer => { // Does not check if checksum field characters are valid\n\tif (buffer.length < 512) { // `tar` header size, cannot compute checksum without it\n\t\treturn false;\n\t}\n\n\tconst MASK_8TH_BIT = 0x80;\n\n\tlet sum = 256; // Intitalize sum, with 256 as sum of 8 spaces in checksum field\n\tlet signedBitSum = 0; // Initialize signed bit sum\n\n\tfor (let i = 0; i < 148; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\t// Skip checksum field\n\n\tfor (let i = 156; i < 512; i++) {\n\t\tconst byte = buffer[i];\n\t\tsum += byte;\n\t\tsignedBitSum += byte & MASK_8TH_BIT; // Add signed bit to signed bit sum\n\t}\n\n\tconst readSum = parseInt(uint8ArrayUtf8ByteString(buffer, 148, 154), 8); // Read sum in header\n\n\t// Some implementations compute checksum incorrectly using signed bytes\n\treturn (\n\t\t// Checksum in header equals the sum we calculated\n\t\treadSum === sum ||\n\n\t\t// Checksum in header equals sum we calculated plus signed-to-unsigned delta\n\t\treadSum === (sum - (signedBitSum << 1))\n\t);\n};\n\nexports.multiByteIndexOf = (buffer, bytesToSearch, startAt = 0) => {\n\t// `Buffer#indexOf()` can search for multiple bytes\n\tif (Buffer && Buffer.isBuffer(buffer)) {\n\t\treturn buffer.indexOf(Buffer.from(bytesToSearch), startAt);\n\t}\n\n\tconst nextBytesMatch = (buffer, bytes, startIndex) => {\n\t\tfor (let i = 1; i < bytes.length; i++) {\n\t\t\tif (bytes[i] !== buffer[startIndex + i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t};\n\n\t// `Uint8Array#indexOf()` can search for only a single byte\n\tlet index = buffer.indexOf(bytesToSearch[0], startAt);\n\twhile (index >= 0) {\n\t\tif (nextBytesMatch(buffer, bytesToSearch, index)) {\n\t\t\treturn index;\n\t\t}\n\n\t\tindex = buffer.indexOf(bytesToSearch[0], index + 1);\n\t}\n\n\treturn -1;\n};\n\nexports.uint8ArrayUtf8ByteString = uint8ArrayUtf8ByteString;\n","'use strict';\n\nmodule.exports = {\n\textensions: [\n\t\t'jpg',\n\t\t'png',\n\t\t'apng',\n\t\t'gif',\n\t\t'webp',\n\t\t'flif',\n\t\t'cr2',\n\t\t'orf',\n\t\t'arw',\n\t\t'dng',\n\t\t'nef',\n\t\t'rw2',\n\t\t'raf',\n\t\t'tif',\n\t\t'bmp',\n\t\t'jxr',\n\t\t'psd',\n\t\t'zip',\n\t\t'tar',\n\t\t'rar',\n\t\t'gz',\n\t\t'bz2',\n\t\t'7z',\n\t\t'dmg',\n\t\t'mp4',\n\t\t'mid',\n\t\t'mkv',\n\t\t'webm',\n\t\t'mov',\n\t\t'avi',\n\t\t'mpg',\n\t\t'mp2',\n\t\t'mp3',\n\t\t'm4a',\n\t\t'oga',\n\t\t'ogg',\n\t\t'ogv',\n\t\t'opus',\n\t\t'flac',\n\t\t'wav',\n\t\t'spx',\n\t\t'amr',\n\t\t'pdf',\n\t\t'epub',\n\t\t'exe',\n\t\t'swf',\n\t\t'rtf',\n\t\t'wasm',\n\t\t'woff',\n\t\t'woff2',\n\t\t'eot',\n\t\t'ttf',\n\t\t'otf',\n\t\t'ico',\n\t\t'flv',\n\t\t'ps',\n\t\t'xz',\n\t\t'sqlite',\n\t\t'nes',\n\t\t'crx',\n\t\t'xpi',\n\t\t'cab',\n\t\t'deb',\n\t\t'ar',\n\t\t'rpm',\n\t\t'Z',\n\t\t'lz',\n\t\t'msi',\n\t\t'mxf',\n\t\t'mts',\n\t\t'blend',\n\t\t'bpg',\n\t\t'docx',\n\t\t'pptx',\n\t\t'xlsx',\n\t\t'3gp',\n\t\t'3g2',\n\t\t'jp2',\n\t\t'jpm',\n\t\t'jpx',\n\t\t'mj2',\n\t\t'aif',\n\t\t'qcp',\n\t\t'odt',\n\t\t'ods',\n\t\t'odp',\n\t\t'xml',\n\t\t'mobi',\n\t\t'heic',\n\t\t'cur',\n\t\t'ktx',\n\t\t'ape',\n\t\t'wv',\n\t\t'wmv',\n\t\t'wma',\n\t\t'dcm',\n\t\t'ics',\n\t\t'glb',\n\t\t'pcap',\n\t\t'dsf',\n\t\t'lnk',\n\t\t'alias',\n\t\t'voc',\n\t\t'ac3',\n\t\t'm4v',\n\t\t'm4p',\n\t\t'm4b',\n\t\t'f4v',\n\t\t'f4p',\n\t\t'f4b',\n\t\t'f4a',\n\t\t'mie',\n\t\t'asf',\n\t\t'ogm',\n\t\t'ogx',\n\t\t'mpc',\n\t\t'arrow',\n\t\t'shp'\n\t],\n\tmimeTypes: [\n\t\t'image/jpeg',\n\t\t'image/png',\n\t\t'image/gif',\n\t\t'image/webp',\n\t\t'image/flif',\n\t\t'image/x-canon-cr2',\n\t\t'image/tiff',\n\t\t'image/bmp',\n\t\t'image/vnd.ms-photo',\n\t\t'image/vnd.adobe.photoshop',\n\t\t'application/epub+zip',\n\t\t'application/x-xpinstall',\n\t\t'application/vnd.oasis.opendocument.text',\n\t\t'application/vnd.oasis.opendocument.spreadsheet',\n\t\t'application/vnd.oasis.opendocument.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n\t\t'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n\t\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n\t\t'application/zip',\n\t\t'application/x-tar',\n\t\t'application/x-rar-compressed',\n\t\t'application/gzip',\n\t\t'application/x-bzip2',\n\t\t'application/x-7z-compressed',\n\t\t'application/x-apple-diskimage',\n\t\t'application/x-apache-arrow',\n\t\t'video/mp4',\n\t\t'audio/midi',\n\t\t'video/x-matroska',\n\t\t'video/webm',\n\t\t'video/quicktime',\n\t\t'video/vnd.avi',\n\t\t'audio/vnd.wave',\n\t\t'audio/qcelp',\n\t\t'audio/x-ms-wma',\n\t\t'video/x-ms-asf',\n\t\t'application/vnd.ms-asf',\n\t\t'video/mpeg',\n\t\t'video/3gpp',\n\t\t'audio/mpeg',\n\t\t'audio/mp4', // RFC 4337\n\t\t'audio/opus',\n\t\t'video/ogg',\n\t\t'audio/ogg',\n\t\t'application/ogg',\n\t\t'audio/x-flac',\n\t\t'audio/ape',\n\t\t'audio/wavpack',\n\t\t'audio/amr',\n\t\t'application/pdf',\n\t\t'application/x-msdownload',\n\t\t'application/x-shockwave-flash',\n\t\t'application/rtf',\n\t\t'application/wasm',\n\t\t'font/woff',\n\t\t'font/woff2',\n\t\t'application/vnd.ms-fontobject',\n\t\t'font/ttf',\n\t\t'font/otf',\n\t\t'image/x-icon',\n\t\t'video/x-flv',\n\t\t'application/postscript',\n\t\t'application/x-xz',\n\t\t'application/x-sqlite3',\n\t\t'application/x-nintendo-nes-rom',\n\t\t'application/x-google-chrome-extension',\n\t\t'application/vnd.ms-cab-compressed',\n\t\t'application/x-deb',\n\t\t'application/x-unix-archive',\n\t\t'application/x-rpm',\n\t\t'application/x-compress',\n\t\t'application/x-lzip',\n\t\t'application/x-msi',\n\t\t'application/x-mie',\n\t\t'application/mxf',\n\t\t'video/mp2t',\n\t\t'application/x-blender',\n\t\t'image/bpg',\n\t\t'image/jp2',\n\t\t'image/jpx',\n\t\t'image/jpm',\n\t\t'image/mj2',\n\t\t'audio/aiff',\n\t\t'application/xml',\n\t\t'application/x-mobipocket-ebook',\n\t\t'image/heif',\n\t\t'image/heif-sequence',\n\t\t'image/heic',\n\t\t'image/heic-sequence',\n\t\t'image/ktx',\n\t\t'application/dicom',\n\t\t'audio/x-musepack',\n\t\t'text/calendar',\n\t\t'model/gltf-binary',\n\t\t'application/vnd.tcpdump.pcap',\n\t\t'audio/x-dsf', // Non-standard\n\t\t'application/x.ms.shortcut', // Invented by us\n\t\t'application/x.apple.alias', // Invented by us\n\t\t'audio/x-voc',\n\t\t'audio/vnd.dolby.dd-raw',\n\t\t'audio/x-m4a',\n\t\t'image/apng',\n\t\t'image/x-olympus-orf',\n\t\t'image/x-sony-arw',\n\t\t'image/x-adobe-dng',\n\t\t'image/x-nikon-nef',\n\t\t'image/x-panasonic-rw2',\n\t\t'image/x-fujifilm-raf',\n\t\t'video/x-m4v',\n\t\t'video/3gpp2',\n\t\t'application/x-esri-shape'\n\t]\n};\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","/**\n *\n * Dump data to a big JSON tree\n *\n * @fileoverview dump data to JSON tree\n * @author Kevin Kwok <[email protected]>\n * @author Guillermo Webster <[email protected]>\n * @author Jerome Wu <[email protected]>\n */\n\n/**\n * deindent\n *\n * The generated HOCR is excessively indented, so\n * we get rid of that indentation\n *\n * @name deindent\n * @function deindent string\n * @access public\n */\nconst deindent = (html) => {\n const lines = html.split('\\n');\n if (lines[0].substring(0, 2) === ' ') {\n for (let i = 0; i < lines.length; i += 1) {\n if (lines[i].substring(0, 2) === ' ') {\n lines[i] = lines[i].slice(2);\n }\n }\n }\n return lines.join('\\n');\n};\n\n/**\n * dump\n *\n * @name dump\n * @function dump recognition result to a JSON object\n * @access public\n */\nmodule.exports = (TessModule, api, {\n tessjs_create_hocr,\n tessjs_create_tsv,\n tessjs_create_box,\n tessjs_create_unlv,\n tessjs_create_osd,\n}) => {\n const ri = api.GetIterator();\n const {\n RIL_BLOCK,\n RIL_PARA,\n RIL_TEXTLINE,\n RIL_WORD,\n RIL_SYMBOL,\n } = TessModule;\n const blocks = [];\n let block;\n let para;\n let textline;\n let word;\n let symbol;\n\n const enumToString = (value, prefix) => (\n Object.keys(TessModule)\n .filter(e => (e.startsWith(`${prefix}_`) && TessModule[e] === value))\n .map(e => e.slice(prefix.length + 1))[0]\n );\n\n ri.Begin();\n do {\n if (ri.IsAtBeginningOf(RIL_BLOCK)) {\n const poly = ri.BlockPolygon();\n let polygon = null;\n // BlockPolygon() returns null when automatic page segmentation is off\n if (TessModule.getPointer(poly) > 0) {\n const n = poly.get_n();\n const px = poly.get_x();\n const py = poly.get_y();\n polygon = [];\n for (let i = 0; i < n; i += 1) {\n polygon.push([px.getValue(i), py.getValue(i)]);\n }\n /*\n * TODO: find out why _ptaDestroy doesn't work\n */\n // TessModule._ptaDestroy(TessModule.getPointer(poly));\n }\n\n block = {\n paragraphs: [],\n text: ri.GetUTF8Text(RIL_BLOCK),\n confidence: ri.Confidence(RIL_BLOCK),\n baseline: ri.getBaseline(RIL_BLOCK),\n bbox: ri.getBoundingBox(RIL_BLOCK),\n blocktype: enumToString(ri.BlockType(), 'PT'),\n polygon,\n };\n blocks.push(block);\n }\n if (ri.IsAtBeginningOf(RIL_PARA)) {\n para = {\n lines: [],\n text: ri.GetUTF8Text(RIL_PARA),\n confidence: ri.Confidence(RIL_PARA),\n baseline: ri.getBaseline(RIL_PARA),\n bbox: ri.getBoundingBox(RIL_PARA),\n is_ltr: !!ri.ParagraphIsLtr(),\n };\n block.paragraphs.push(para);\n }\n if (ri.IsAtBeginningOf(RIL_TEXTLINE)) {\n textline = {\n words: [],\n text: ri.GetUTF8Text(RIL_TEXTLINE),\n confidence: ri.Confidence(RIL_TEXTLINE),\n baseline: ri.getBaseline(RIL_TEXTLINE),\n bbox: ri.getBoundingBox(RIL_TEXTLINE),\n };\n para.lines.push(textline);\n }\n if (ri.IsAtBeginningOf(RIL_WORD)) {\n const fontInfo = ri.getWordFontAttributes();\n const wordDir = ri.WordDirection();\n word = {\n symbols: [],\n choices: [],\n\n text: ri.GetUTF8Text(RIL_WORD),\n confidence: ri.Confidence(RIL_WORD),\n baseline: ri.getBaseline(RIL_WORD),\n bbox: ri.getBoundingBox(RIL_WORD),\n\n is_numeric: !!ri.WordIsNumeric(),\n in_dictionary: !!ri.WordIsFromDictionary(),\n direction: enumToString(wordDir, 'DIR'),\n language: ri.WordRecognitionLanguage(),\n\n is_bold: fontInfo.is_bold,\n is_italic: fontInfo.is_italic,\n is_underlined: fontInfo.is_underlined,\n is_monospace: fontInfo.is_monospace,\n is_serif: fontInfo.is_serif,\n is_smallcaps: fontInfo.is_smallcaps,\n font_size: fontInfo.pointsize,\n font_id: fontInfo.font_id,\n font_name: fontInfo.font_name,\n };\n const wc = new TessModule.WordChoiceIterator(ri);\n do {\n word.choices.push({\n text: wc.GetUTF8Text(),\n confidence: wc.Confidence(),\n });\n } while (wc.Next());\n TessModule.destroy(wc);\n textline.words.push(word);\n }\n\n // let image = null;\n // var pix = ri.GetBinaryImage(TessModule.RIL_SYMBOL)\n // var image = pix2array(pix);\n // // for some reason it seems that things stop working if you destroy pics\n // TessModule._pixDestroy(TessModule.getPointer(pix));\n if (ri.IsAtBeginningOf(RIL_SYMBOL)) {\n symbol = {\n choices: [],\n image: null,\n text: ri.GetUTF8Text(RIL_SYMBOL),\n confidence: ri.Confidence(RIL_SYMBOL),\n baseline: ri.getBaseline(RIL_SYMBOL),\n bbox: ri.getBoundingBox(RIL_SYMBOL),\n is_superscript: !!ri.SymbolIsSuperscript(),\n is_subscript: !!ri.SymbolIsSubscript(),\n is_dropcap: !!ri.SymbolIsDropcap(),\n };\n word.symbols.push(symbol);\n const ci = new TessModule.ChoiceIterator(ri);\n do {\n symbol.choices.push({\n text: ci.GetUTF8Text(),\n confidence: ci.Confidence(),\n });\n } while (ci.Next());\n // TessModule.destroy(i);\n }\n } while (ri.Next(RIL_SYMBOL));\n TessModule.destroy(ri);\n\n return {\n text: api.GetUTF8Text(),\n hocr: tessjs_create_hocr === '1' ? deindent(api.GetHOCRText()) : null,\n tsv: tessjs_create_tsv === '1' ? api.GetTSVText() : null,\n box: tessjs_create_box === '1' ? api.GetBoxText() : null,\n unlv: tessjs_create_unlv === '1' ? api.GetUNLVText() : null,\n osd: tessjs_create_osd === '1' ? api.GetOsdText() : null,\n confidence: api.MeanTextConf(),\n blocks,\n psm: enumToString(api.GetPageSegMode(), 'PSM'),\n oem: enumToString(api.oem(), 'OEM'),\n version: api.Version(),\n };\n};\n","const isElectron = require('is-electron');\n\nmodule.exports = (key) => {\n const env = {};\n\n if (isElectron()) {\n env.type = 'electron';\n } else if (typeof window === 'object') {\n env.type = 'browser';\n } else if (typeof importScripts === 'function') {\n env.type = 'webworker';\n } else if (typeof process === 'object' && typeof require === 'function') {\n env.type = 'node';\n }\n\n if (typeof key === 'undefined') {\n return env;\n }\n\n return env[key];\n};\n","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n // Renderer process\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n return true;\n }\n\n // Main process\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n return true;\n }\n\n // Detect the user agent when the `nodeIntegration` option is set to true\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isElectron;\n","const bmp = require('bmp-js');\nconst fileType = require('file-type');\n\n/**\n * setImage\n *\n * @name setImage\n * @function set image in tesseract for recognition\n * @access public\n */\nmodule.exports = (TessModule, api, image) => {\n const buf = Buffer.from(Array.from({ ...image, length: Object.keys(image).length }));\n const type = fileType(buf);\n let bytesPerPixel = 0;\n let data = null;\n let pix = null;\n let w = 0;\n let h = 0;\n\n /*\n * Although leptonica should support reading bmp, there is a bug of \"compressed BMP files\".\n * As there is no solution, we need to use bmp-js for now.\n * @see https://groups.google.com/forum/#!topic/tesseract-ocr/4mPD9zTxdxE\n */\n if (type && type.mime === 'image/bmp') {\n const bmpBuf = bmp.decode(buf);\n data = TessModule._malloc(bmpBuf.data.length * Uint8Array.BYTES_PER_ELEMENT);\n TessModule.HEAPU8.set(bmpBuf.data, data);\n w = bmpBuf.width;\n h = bmpBuf.height;\n bytesPerPixel = 4;\n } else {\n const ptr = TessModule._malloc(buf.length * Uint8Array.BYTES_PER_ELEMENT);\n TessModule.HEAPU8.set(buf, ptr);\n pix = TessModule._pixReadMem(ptr, buf.length);\n if (TessModule.getValue(pix + (7 * 4), 'i32') === 0) {\n /*\n * Set a yres default value to prevent warning from tesseract\n * See kMinCredibleResolution in tesseract/src/ccstruct/publictypes.h\n */\n TessModule.setValue(pix + (7 * 4), 300, 'i32');\n }\n [w, h] = Array(2).fill(0)\n .map((v, idx) => (\n TessModule.getValue(pix + (idx * 4), 'i32')\n ));\n }\n\n /*\n * As some image format (ex. bmp) is not supported natiely by tesseract,\n * sometimes it will not return pix directly, but data and bytesPerPixel\n * for another SetImage usage.\n *\n */\n if (data === null) {\n api.SetImage(pix);\n } else {\n api.SetImage(data, w, h, bytesPerPixel, w * bytesPerPixel);\n }\n return data === null ? pix : data;\n};\n","/**\n * @author shaozilee\n *\n * support 1bit 4bit 8bit 24bit decode\n * encode with 24bit\n * \n */\n\nvar encode = require('./lib/encoder'),\n decode = require('./lib/decoder');\n\nmodule.exports = {\n encode: encode,\n decode: decode\n};\n","/**\n * @author shaozilee\n *\n * BMP format encoder,encode 24bit BMP\n * Not support quality compression\n *\n */\n\nfunction BmpEncoder(imgData){\n\tthis.buffer = imgData.data;\n\tthis.width = imgData.width;\n\tthis.height = imgData.height;\n\tthis.extraBytes = this.width%4;\n\tthis.rgbSize = this.height*(3*this.width+this.extraBytes);\n\tthis.headerInfoSize = 40;\n\n\tthis.data = [];\n\t/******************header***********************/\n\tthis.flag = \"BM\";\n\tthis.reserved = 0;\n\tthis.offset = 54;\n\tthis.fileSize = this.rgbSize+this.offset;\n\tthis.planes = 1;\n\tthis.bitPP = 24;\n\tthis.compress = 0;\n\tthis.hr = 0;\n\tthis.vr = 0;\n\tthis.colors = 0;\n\tthis.importantColors = 0;\n}\n\nBmpEncoder.prototype.encode = function() {\n\tvar tempBuffer = new Buffer(this.offset+this.rgbSize);\n\tthis.pos = 0;\n\ttempBuffer.write(this.flag,this.pos,2);this.pos+=2;\n\ttempBuffer.writeUInt32LE(this.fileSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.reserved,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.offset,this.pos);this.pos+=4;\n\n\ttempBuffer.writeUInt32LE(this.headerInfoSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.width,this.pos);this.pos+=4;\n\ttempBuffer.writeInt32LE(-this.height,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt16LE(this.planes,this.pos);this.pos+=2;\n\ttempBuffer.writeUInt16LE(this.bitPP,this.pos);this.pos+=2;\n\ttempBuffer.writeUInt32LE(this.compress,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.rgbSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.hr,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.vr,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.colors,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.importantColors,this.pos);this.pos+=4;\n\n\tvar i=0;\n\tvar rowBytes = 3*this.width+this.extraBytes;\n\n\tfor (var y = 0; y <this.height; y++){\n\t\tfor (var x = 0; x < this.width; x++){\n\t\t\tvar p = this.pos+y*rowBytes+x*3;\n\t\t\ti++;//a\n\t\t\ttempBuffer[p]= this.buffer[i++];//b\n\t\t\ttempBuffer[p+1] = this.buffer[i++];//g\n\t\t\ttempBuffer[p+2] = this.buffer[i++];//r\n\t\t}\n\t\tif(this.extraBytes>0){\n\t\t\tvar fillOffset = this.pos+y*rowBytes+this.width*3;\n\t\t\ttempBuffer.fill(0,fillOffset,fillOffset+this.extraBytes);\n\t\t}\n\t}\n\n\treturn tempBuffer;\n};\n\nmodule.exports = function(imgData, quality) {\n if (typeof quality === 'undefined') quality = 100;\n \tvar encoder = new BmpEncoder(imgData);\n\tvar data = encoder.encode();\n return {\n data: data,\n width: imgData.width,\n height: imgData.height\n };\n};\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nfunction BmpDecoder(buffer,is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag = this.buffer.toString(\"utf-8\", 0, this.pos += 2);\n if (this.flag != \"BM\") throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseRGBA();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.reserved = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.offset = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.headerSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.width = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.height = this.buffer.readInt32LE(this.pos);\n this.pos += 4;\n this.planes = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.bitPP = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.compress = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.rawSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.hr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.vr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.colors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.importantColors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n\n if(this.bitPP === 16 && this.is_with_alpha){\n this.bitPP = 15\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var quad = this.buffer.readUInt8(this.pos++);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if(this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n\n}\n\nBmpDecoder.prototype.parseRGBA = function() {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Buffer(len);\n this[bitn]();\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen%4;\n var y = this.height >= 0 ? this.height - 1 : -this.height\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x*8*4;\n for (var i = 0; i < 8; i++) {\n if(x*8+i<this.width){\n var rgb = this.palette[((b>>(7-i))&0x1)];\n\n this.data[location+i*4] = 0;\n this.data[location+i*4 + 1] = rgb.blue;\n this.data[location+i*4 + 2] = rgb.green;\n this.data[location+i*4 + 3] = rgb.red;\n\n }else{\n break;\n }\n }\n }\n\n if (mode != 0){\n this.pos+=(4 - mode);\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n //RLE-4\n if(this.compress == 2){\n this.data.fill(0xff);\n\n var location = 0;\n var lines = this.bottom_up?this.height-1:0;\n var low_nibble = false;//for all count of pixel\n\n while(location<this.data.length){\n var a = this.buffer.readUInt8(this.pos++);\n var b = this.buffer.readUInt8(this.pos++);\n //absolute mode\n if(a == 0){\n if(b == 0){//line end\n if(this.bottom_up){\n lines--;\n }else{\n lines++;\n }\n location = lines*this.width*4;\n low_nibble = false;\n continue;\n }else if(b == 1){//image end\n break;\n }else if(b ==2){\n //offset x,y\n var x = this.buffer.readUInt8(this.pos++);\n var y = this.buffer.readUInt8(this.pos++);\n if(this.bottom_up){\n lines-=y;\n }else{\n lines+=y;\n }\n\n location +=(y*this.width*4+x*4);\n }else{\n var c = this.buffer.readUInt8(this.pos++);\n for(var i=0;i<b;i++){\n if (low_nibble) {\n setPixelData.call(this, (c & 0x0f));\n } else {\n setPixelData.call(this, (c & 0xf0)>>4);\n }\n\n if ((i & 1) && (i+1 < b)){\n c = this.buffer.readUInt8(this.pos++);\n }\n\n low_nibble = !low_nibble;\n }\n\n if ((((b+1) >> 1) & 1 ) == 1){\n this.pos++\n }\n }\n\n }else{//encoded mode\n for (var i = 0; i < a; i++) {\n if (low_nibble) {\n setPixelData.call(this, (b & 0x0f));\n } else {\n setPixelData.call(this, (b & 0xf0)>>4);\n }\n low_nibble = !low_nibble;\n }\n }\n\n }\n\n\n\n\n function setPixelData(rgbIndex){\n var rgb = this.palette[rgbIndex];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n location+=4;\n }\n }else{\n\n var xlen = Math.ceil(this.width/2);\n var mode = xlen%4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x*2*4;\n\n var before = b>>4;\n var after = b&0x0F;\n\n var rgb = this.palette[before];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n\n\n if(x*2+1>=this.width)break;\n\n rgb = this.palette[after];\n\n this.data[location+4] = 0;\n this.data[location+4 + 1] = rgb.blue;\n this.data[location+4 + 2] = rgb.green;\n this.data[location+4 + 3] = rgb.red;\n\n }\n\n if (mode != 0){\n this.pos+=(4 - mode);\n }\n }\n\n }\n\n};\n\nBmpDecoder.prototype.bit8 = function() {\n //RLE-8\n if(this.compress == 1){\n this.data.fill(0xff);\n\n var location = 0;\n var lines = this.bottom_up?this.height-1:0;\n\n while(location<this.data.length){\n var a = this.buffer.readUInt8(this.pos++);\n var b = this.buffer.readUInt8(this.pos++);\n //absolute mode\n if(a == 0){\n if(b == 0){//line end\n if(this.bottom_up){\n lines--;\n }else{\n lines++;\n }\n location = lines*this.width*4;\n continue;\n }else if(b == 1){//image end\n break;\n }else if(b ==2){\n //offset x,y\n var x = this.buffer.readUInt8(this.pos++);\n var y = this.buffer.readUInt8(this.pos++);\n if(this.bottom_up){\n lines-=y;\n }else{\n lines+=y;\n }\n\n location +=(y*this.width*4+x*4);\n }else{\n for(var i=0;i<b;i++){\n var c = this.buffer.readUInt8(this.pos++);\n setPixelData.call(this, c);\n }\n if(b&1 == 1){\n this.pos++;\n }\n\n }\n\n }else{//encoded mode\n for (var i = 0; i < a; i++) {\n setPixelData.call(this, b);\n }\n }\n\n }\n\n\n\n\n function setPixelData(rgbIndex){\n var rgb = this.palette[rgbIndex];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n location+=4;\n }\n }else {\n var mode = this.width % 4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n\n } else {\n this.data[location] = 0;\n this.data[location + 1] = 0xFF;\n this.data[location + 2] = 0xFF;\n this.data[location + 3] = 0xFF;\n }\n }\n if (mode != 0) {\n this.pos += (4 - mode);\n }\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w =this.width % 3;\n var _11111 = parseInt(\"11111\", 2),_1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos+=2;\n var blue = (B & _1_5) / _1_5 * 255 | 0;\n var green = (B >> 5 & _1_5 ) / _1_5 * 255 | 0;\n var red = (B >> 10 & _1_5) / _1_5 * 255 | 0;\n var alpha = (B>>15)?0xFF:0x00;\n\n var location = line * this.width * 4 + x * 4;\n\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w =(this.width % 2)*2;\n //default xrgb555\n this.maskRed = 0x7C00;\n this.maskGreen = 0x3E0;\n this.maskBlue =0x1F;\n this.mask0 = 0;\n\n if(this.compress == 3){\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n }\n\n\n var ns=[0,0,0];\n for (var i=0;i<16;i++){\n if ((this.maskRed>>i)&0x01) ns[0]++;\n if ((this.maskGreen>>i)&0x01) ns[1]++;\n if ((this.maskBlue>>i)&0x01) ns[2]++;\n }\n ns[1]+=ns[0]; ns[2]+=ns[1];\tns[0]=8-ns[0]; ns[1]-=8; ns[2]-=8;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos+=2;\n\n var blue = (B&this.maskBlue)<<ns[0];\n var green = (B&this.maskGreen)>>ns[1];\n var red = (B&this.maskRed)>>ns[2];\n\n var location = line * this.width * 4 + x * 4;\n\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += (this.width % 4);\n }\n\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //BI_BITFIELDS\n if(this.compress == 3){\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgba\n var alpha = this.buffer.readUInt8(this.pos++);\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n\n }else{\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n //Little Endian argb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var alpha = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n\n }\n\n\n\n\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nmodule.exports = function(bmpData) {\n var decoder = new BmpDecoder(bmpData);\n return decoder;\n};\n","/*\n * default params for tesseract.js\n */\nconst PSM = require('../../constants/PSM');\n\nmodule.exports = {\n tessedit_pageseg_mode: PSM.SINGLE_BLOCK,\n tessedit_char_whitelist: '',\n tessjs_create_hocr: '1',\n tessjs_create_tsv: '1',\n tessjs_create_box: '0',\n tessjs_create_unlv: '0',\n tessjs_create_osd: '0',\n};\n","/*\n * PSM = Page Segmentation Mode\n */\nmodule.exports = {\n OSD_ONLY: '0',\n AUTO_OSD: '1',\n AUTO_ONLY: '2',\n AUTO: '3',\n SINGLE_COLUMN: '4',\n SINGLE_BLOCK_VERT_TEXT: '5',\n SINGLE_BLOCK: '6',\n SINGLE_LINE: '7',\n SINGLE_WORD: '8',\n CIRCLE_WORD: '9',\n SINGLE_CHAR: '10',\n SPARSE_TEXT: '11',\n SPARSE_TEXT_OSD: '12',\n};\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","module.exports = (corePath, res) => {\n if (typeof global.TesseractCore === 'undefined') {\n res.progress({ status: 'loading tesseract core', progress: 0 });\n global.importScripts(corePath);\n /*\n * Depending on whether the browser supports WebAssembly,\n * the version of the TesseractCore will be different.\n */\n if (typeof global.TesseractCoreWASM !== 'undefined' && typeof WebAssembly === 'object') {\n global.TesseractCore = global.TesseractCoreWASM;\n } else if (typeof global.TesseractCoreASM !== 'undefined') {\n global.TesseractCore = global.TesseractCoreASM;\n } else {\n throw Error('Failed to load TesseractCore');\n }\n res.progress({ status: 'loading tesseract core', progress: 1 });\n }\n return global.TesseractCore;\n};\n","module.exports = require('zlibjs').gunzipSync;\n","/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';function q(b){throw b;}var t=void 0,v=!0;var B=\"undefined\"!==typeof Uint8Array&&\"undefined\"!==typeof Uint16Array&&\"undefined\"!==typeof Uint32Array&&\"undefined\"!==typeof DataView;function G(b,a){this.index=\"number\"===typeof a?a:0;this.m=0;this.buffer=b instanceof(B?Uint8Array:Array)?b:new (B?Uint8Array:Array)(32768);2*this.buffer.length<=this.index&&q(Error(\"invalid index\"));this.buffer.length<=this.index&&this.f()}G.prototype.f=function(){var b=this.buffer,a,c=b.length,d=new (B?Uint8Array:Array)(c<<1);if(B)d.set(b);else for(a=0;a<c;++a)d[a]=b[a];return this.buffer=d};\nG.prototype.d=function(b,a,c){var d=this.buffer,e=this.index,f=this.m,g=d[e],k;c&&1<a&&(b=8<a?(I[b&255]<<24|I[b>>>8&255]<<16|I[b>>>16&255]<<8|I[b>>>24&255])>>32-a:I[b]>>8-a);if(8>a+f)g=g<<a|b,f+=a;else for(k=0;k<a;++k)g=g<<1|b>>a-k-1&1,8===++f&&(f=0,d[e++]=I[g],g=0,e===d.length&&(d=this.f()));d[e]=g;this.buffer=d;this.m=f;this.index=e};G.prototype.finish=function(){var b=this.buffer,a=this.index,c;0<this.m&&(b[a]<<=8-this.m,b[a]=I[b[a]],a++);B?c=b.subarray(0,a):(b.length=a,c=b);return c};\nvar aa=new (B?Uint8Array:Array)(256),L;for(L=0;256>L;++L){for(var R=L,ba=R,ca=7,R=R>>>1;R;R>>>=1)ba<<=1,ba|=R&1,--ca;aa[L]=(ba<<ca&255)>>>0}var I=aa;function ha(b,a,c){var d,e=\"number\"===typeof a?a:a=0,f=\"number\"===typeof c?c:b.length;d=-1;for(e=f&7;e--;++a)d=d>>>8^S[(d^b[a])&255];for(e=f>>3;e--;a+=8)d=d>>>8^S[(d^b[a])&255],d=d>>>8^S[(d^b[a+1])&255],d=d>>>8^S[(d^b[a+2])&255],d=d>>>8^S[(d^b[a+3])&255],d=d>>>8^S[(d^b[a+4])&255],d=d>>>8^S[(d^b[a+5])&255],d=d>>>8^S[(d^b[a+6])&255],d=d>>>8^S[(d^b[a+7])&255];return(d^4294967295)>>>0}\nvar ia=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,\n2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,\n2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,\n2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,\n3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,\n936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],S=B?new Uint32Array(ia):ia;function ja(){};function ka(b){this.buffer=new (B?Uint16Array:Array)(2*b);this.length=0}ka.prototype.getParent=function(b){return 2*((b-2)/4|0)};ka.prototype.push=function(b,a){var c,d,e=this.buffer,f;c=this.length;e[this.length++]=a;for(e[this.length++]=b;0<c;)if(d=this.getParent(c),e[c]>e[d])f=e[c],e[c]=e[d],e[d]=f,f=e[c+1],e[c+1]=e[d+1],e[d+1]=f,c=d;else break;return this.length};\nka.prototype.pop=function(){var b,a,c=this.buffer,d,e,f;a=c[0];b=c[1];this.length-=2;c[0]=c[this.length];c[1]=c[this.length+1];for(f=0;;){e=2*f+2;if(e>=this.length)break;e+2<this.length&&c[e+2]>c[e]&&(e+=2);if(c[e]>c[f])d=c[f],c[f]=c[e],c[e]=d,d=c[f+1],c[f+1]=c[e+1],c[e+1]=d;else break;f=e}return{index:b,value:a,length:this.length}};function T(b){var a=b.length,c=0,d=Number.POSITIVE_INFINITY,e,f,g,k,h,m,r,p,l,n;for(p=0;p<a;++p)b[p]>c&&(c=b[p]),b[p]<d&&(d=b[p]);e=1<<c;f=new (B?Uint32Array:Array)(e);g=1;k=0;for(h=2;g<=c;){for(p=0;p<a;++p)if(b[p]===g){m=0;r=k;for(l=0;l<g;++l)m=m<<1|r&1,r>>=1;n=g<<16|p;for(l=m;l<e;l+=h)f[l]=n;++k}++g;k<<=1;h<<=1}return[f,c,d]};function na(b,a){this.k=oa;this.F=0;this.input=B&&b instanceof Array?new Uint8Array(b):b;this.b=0;a&&(a.lazy&&(this.F=a.lazy),\"number\"===typeof a.compressionType&&(this.k=a.compressionType),a.outputBuffer&&(this.a=B&&a.outputBuffer instanceof Array?new Uint8Array(a.outputBuffer):a.outputBuffer),\"number\"===typeof a.outputIndex&&(this.b=a.outputIndex));this.a||(this.a=new (B?Uint8Array:Array)(32768))}var oa=2,pa={NONE:0,L:1,t:oa,X:3},qa=[],U;\nfor(U=0;288>U;U++)switch(v){case 143>=U:qa.push([U+48,8]);break;case 255>=U:qa.push([U-144+400,9]);break;case 279>=U:qa.push([U-256+0,7]);break;case 287>=U:qa.push([U-280+192,8]);break;default:q(\"invalid literal: \"+U)}\nna.prototype.h=function(){var b,a,c,d,e=this.input;switch(this.k){case 0:c=0;for(d=e.length;c<d;){a=B?e.subarray(c,c+65535):e.slice(c,c+65535);c+=a.length;var f=a,g=c===d,k=t,h=t,m=t,r=t,p=t,l=this.a,n=this.b;if(B){for(l=new Uint8Array(this.a.buffer);l.length<=n+f.length+5;)l=new Uint8Array(l.length<<1);l.set(this.a)}k=g?1:0;l[n++]=k|0;h=f.length;m=~h+65536&65535;l[n++]=h&255;l[n++]=h>>>8&255;l[n++]=m&255;l[n++]=m>>>8&255;if(B)l.set(f,n),n+=f.length,l=l.subarray(0,n);else{r=0;for(p=f.length;r<p;++r)l[n++]=\nf[r];l.length=n}this.b=n;this.a=l}break;case 1:var s=new G(B?new Uint8Array(this.a.buffer):this.a,this.b);s.d(1,1,v);s.d(1,2,v);var u=ra(this,e),w,C,x;w=0;for(C=u.length;w<C;w++)if(x=u[w],G.prototype.d.apply(s,qa[x]),256<x)s.d(u[++w],u[++w],v),s.d(u[++w],5),s.d(u[++w],u[++w],v);else if(256===x)break;this.a=s.finish();this.b=this.a.length;break;case oa:var D=new G(B?new Uint8Array(this.a.buffer):this.a,this.b),M,z,N,X,Y,qb=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],da,Fa,ea,Ga,la,ta=Array(19),\nHa,Z,ma,E,Ia;M=oa;D.d(1,1,v);D.d(M,2,v);z=ra(this,e);da=sa(this.U,15);Fa=ua(da);ea=sa(this.T,7);Ga=ua(ea);for(N=286;257<N&&0===da[N-1];N--);for(X=30;1<X&&0===ea[X-1];X--);var Ja=N,Ka=X,K=new (B?Uint32Array:Array)(Ja+Ka),y,O,A,fa,J=new (B?Uint32Array:Array)(316),H,F,P=new (B?Uint8Array:Array)(19);for(y=O=0;y<Ja;y++)K[O++]=da[y];for(y=0;y<Ka;y++)K[O++]=ea[y];if(!B){y=0;for(fa=P.length;y<fa;++y)P[y]=0}y=H=0;for(fa=K.length;y<fa;y+=O){for(O=1;y+O<fa&&K[y+O]===K[y];++O);A=O;if(0===K[y])if(3>A)for(;0<A--;)J[H++]=\n0,P[0]++;else for(;0<A;)F=138>A?A:138,F>A-3&&F<A&&(F=A-3),10>=F?(J[H++]=17,J[H++]=F-3,P[17]++):(J[H++]=18,J[H++]=F-11,P[18]++),A-=F;else if(J[H++]=K[y],P[K[y]]++,A--,3>A)for(;0<A--;)J[H++]=K[y],P[K[y]]++;else for(;0<A;)F=6>A?A:6,F>A-3&&F<A&&(F=A-3),J[H++]=16,J[H++]=F-3,P[16]++,A-=F}b=B?J.subarray(0,H):J.slice(0,H);la=sa(P,7);for(E=0;19>E;E++)ta[E]=la[qb[E]];for(Y=19;4<Y&&0===ta[Y-1];Y--);Ha=ua(la);D.d(N-257,5,v);D.d(X-1,5,v);D.d(Y-4,4,v);for(E=0;E<Y;E++)D.d(ta[E],3,v);E=0;for(Ia=b.length;E<Ia;E++)if(Z=\nb[E],D.d(Ha[Z],la[Z],v),16<=Z){E++;switch(Z){case 16:ma=2;break;case 17:ma=3;break;case 18:ma=7;break;default:q(\"invalid code: \"+Z)}D.d(b[E],ma,v)}var La=[Fa,da],Ma=[Ga,ea],Q,Na,ga,wa,Oa,Pa,Qa,Ra;Oa=La[0];Pa=La[1];Qa=Ma[0];Ra=Ma[1];Q=0;for(Na=z.length;Q<Na;++Q)if(ga=z[Q],D.d(Oa[ga],Pa[ga],v),256<ga)D.d(z[++Q],z[++Q],v),wa=z[++Q],D.d(Qa[wa],Ra[wa],v),D.d(z[++Q],z[++Q],v);else if(256===ga)break;this.a=D.finish();this.b=this.a.length;break;default:q(\"invalid compression type\")}return this.a};\nfunction va(b,a){this.length=b;this.N=a}\nvar xa=function(){function b(a){switch(v){case 3===a:return[257,a-3,0];case 4===a:return[258,a-4,0];case 5===a:return[259,a-5,0];case 6===a:return[260,a-6,0];case 7===a:return[261,a-7,0];case 8===a:return[262,a-8,0];case 9===a:return[263,a-9,0];case 10===a:return[264,a-10,0];case 12>=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,\na-31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:q(\"invalid length: \"+a)}}var a=[],c,d;for(c=3;258>=c;c++)d=b(c),a[c]=d[2]<<24|d[1]<<\n16|d[0];return a}(),ya=B?new Uint32Array(xa):xa;\nfunction ra(b,a){function c(a,c){var b=a.N,d=[],f=0,e;e=ya[a.length];d[f++]=e&65535;d[f++]=e>>16&255;d[f++]=e>>24;var g;switch(v){case 1===b:g=[0,b-1,0];break;case 2===b:g=[1,b-2,0];break;case 3===b:g=[2,b-3,0];break;case 4===b:g=[3,b-4,0];break;case 6>=b:g=[4,b-5,1];break;case 8>=b:g=[5,b-7,1];break;case 12>=b:g=[6,b-9,2];break;case 16>=b:g=[7,b-13,2];break;case 24>=b:g=[8,b-17,3];break;case 32>=b:g=[9,b-25,3];break;case 48>=b:g=[10,b-33,4];break;case 64>=b:g=[11,b-49,4];break;case 96>=b:g=[12,b-\n65,5];break;case 128>=b:g=[13,b-97,5];break;case 192>=b:g=[14,b-129,6];break;case 256>=b:g=[15,b-193,6];break;case 384>=b:g=[16,b-257,7];break;case 512>=b:g=[17,b-385,7];break;case 768>=b:g=[18,b-513,8];break;case 1024>=b:g=[19,b-769,8];break;case 1536>=b:g=[20,b-1025,9];break;case 2048>=b:g=[21,b-1537,9];break;case 3072>=b:g=[22,b-2049,10];break;case 4096>=b:g=[23,b-3073,10];break;case 6144>=b:g=[24,b-4097,11];break;case 8192>=b:g=[25,b-6145,11];break;case 12288>=b:g=[26,b-8193,12];break;case 16384>=\nb:g=[27,b-12289,12];break;case 24576>=b:g=[28,b-16385,13];break;case 32768>=b:g=[29,b-24577,13];break;default:q(\"invalid distance\")}e=g;d[f++]=e[0];d[f++]=e[1];d[f++]=e[2];var h,k;h=0;for(k=d.length;h<k;++h)l[n++]=d[h];u[d[0]]++;w[d[3]]++;s=a.length+c-1;p=null}var d,e,f,g,k,h={},m,r,p,l=B?new Uint16Array(2*a.length):[],n=0,s=0,u=new (B?Uint32Array:Array)(286),w=new (B?Uint32Array:Array)(30),C=b.F,x;if(!B){for(f=0;285>=f;)u[f++]=0;for(f=0;29>=f;)w[f++]=0}u[256]=1;d=0;for(e=a.length;d<e;++d){f=k=0;\nfor(g=3;f<g&&d+f!==e;++f)k=k<<8|a[d+f];h[k]===t&&(h[k]=[]);m=h[k];if(!(0<s--)){for(;0<m.length&&32768<d-m[0];)m.shift();if(d+3>=e){p&&c(p,-1);f=0;for(g=e-d;f<g;++f)x=a[d+f],l[n++]=x,++u[x];break}0<m.length?(r=za(a,d,m),p?p.length<r.length?(x=a[d-1],l[n++]=x,++u[x],c(r,0)):c(p,-1):r.length<C?p=r:c(r,0)):p?c(p,-1):(x=a[d],l[n++]=x,++u[x])}m.push(d)}l[n++]=256;u[256]++;b.U=u;b.T=w;return B?l.subarray(0,n):l}\nfunction za(b,a,c){var d,e,f=0,g,k,h,m,r=b.length;k=0;m=c.length;a:for(;k<m;k++){d=c[m-k-1];g=3;if(3<f){for(h=f;3<h;h--)if(b[d+h-1]!==b[a+h-1])continue a;g=f}for(;258>g&&a+g<r&&b[d+g]===b[a+g];)++g;g>f&&(e=d,f=g);if(258===g)break}return new va(f,a-e)}\nfunction sa(b,a){var c=b.length,d=new ka(572),e=new (B?Uint8Array:Array)(c),f,g,k,h,m;if(!B)for(h=0;h<c;h++)e[h]=0;for(h=0;h<c;++h)0<b[h]&&d.push(h,b[h]);f=Array(d.length/2);g=new (B?Uint32Array:Array)(d.length/2);if(1===f.length)return e[d.pop().index]=1,e;h=0;for(m=d.length/2;h<m;++h)f[h]=d.pop(),g[h]=f[h].value;k=Aa(g,g.length,a);h=0;for(m=f.length;h<m;++h)e[f[h].index]=k[h];return e}\nfunction Aa(b,a,c){function d(b){var c=h[b][m[b]];c===a?(d(b+1),d(b+1)):--g[c];++m[b]}var e=new (B?Uint16Array:Array)(c),f=new (B?Uint8Array:Array)(c),g=new (B?Uint8Array:Array)(a),k=Array(c),h=Array(c),m=Array(c),r=(1<<c)-a,p=1<<c-1,l,n,s,u,w;e[c-1]=a;for(n=0;n<c;++n)r<p?f[n]=0:(f[n]=1,r-=p),r<<=1,e[c-2-n]=(e[c-1-n]/2|0)+a;e[0]=f[0];k[0]=Array(e[0]);h[0]=Array(e[0]);for(n=1;n<c;++n)e[n]>2*e[n-1]+f[n]&&(e[n]=2*e[n-1]+f[n]),k[n]=Array(e[n]),h[n]=Array(e[n]);for(l=0;l<a;++l)g[l]=c;for(s=0;s<e[c-1];++s)k[c-\n1][s]=b[s],h[c-1][s]=s;for(l=0;l<c;++l)m[l]=0;1===f[c-1]&&(--g[0],++m[c-1]);for(n=c-2;0<=n;--n){u=l=0;w=m[n+1];for(s=0;s<e[n];s++)u=k[n+1][w]+k[n+1][w+1],u>b[l]?(k[n][s]=u,h[n][s]=a,w+=2):(k[n][s]=b[l],h[n][s]=l,++l);m[n]=0;1===f[n]&&d(n)}return g}\nfunction ua(b){var a=new (B?Uint16Array:Array)(b.length),c=[],d=[],e=0,f,g,k,h;f=0;for(g=b.length;f<g;f++)c[b[f]]=(c[b[f]]|0)+1;f=1;for(g=16;f<=g;f++)d[f]=e,e+=c[f]|0,e<<=1;f=0;for(g=b.length;f<g;f++){e=d[b[f]];d[b[f]]+=1;k=a[f]=0;for(h=b[f];k<h;k++)a[f]=a[f]<<1|e&1,e>>>=1}return a};function Ba(b,a){this.input=b;this.b=this.c=0;this.g={};a&&(a.flags&&(this.g=a.flags),\"string\"===typeof a.filename&&(this.filename=a.filename),\"string\"===typeof a.comment&&(this.w=a.comment),a.deflateOptions&&(this.l=a.deflateOptions));this.l||(this.l={})}\nBa.prototype.h=function(){var b,a,c,d,e,f,g,k,h=new (B?Uint8Array:Array)(32768),m=0,r=this.input,p=this.c,l=this.filename,n=this.w;h[m++]=31;h[m++]=139;h[m++]=8;b=0;this.g.fname&&(b|=Ca);this.g.fcomment&&(b|=Da);this.g.fhcrc&&(b|=Ea);h[m++]=b;a=(Date.now?Date.now():+new Date)/1E3|0;h[m++]=a&255;h[m++]=a>>>8&255;h[m++]=a>>>16&255;h[m++]=a>>>24&255;h[m++]=0;h[m++]=Sa;if(this.g.fname!==t){g=0;for(k=l.length;g<k;++g)f=l.charCodeAt(g),255<f&&(h[m++]=f>>>8&255),h[m++]=f&255;h[m++]=0}if(this.g.comment){g=\n0;for(k=n.length;g<k;++g)f=n.charCodeAt(g),255<f&&(h[m++]=f>>>8&255),h[m++]=f&255;h[m++]=0}this.g.fhcrc&&(c=ha(h,0,m)&65535,h[m++]=c&255,h[m++]=c>>>8&255);this.l.outputBuffer=h;this.l.outputIndex=m;e=new na(r,this.l);h=e.h();m=e.b;B&&(m+8>h.buffer.byteLength?(this.a=new Uint8Array(m+8),this.a.set(new Uint8Array(h.buffer)),h=this.a):h=new Uint8Array(h.buffer));d=ha(r,t,t);h[m++]=d&255;h[m++]=d>>>8&255;h[m++]=d>>>16&255;h[m++]=d>>>24&255;k=r.length;h[m++]=k&255;h[m++]=k>>>8&255;h[m++]=k>>>16&255;h[m++]=\nk>>>24&255;this.c=p;B&&m<h.length&&(this.a=h=h.subarray(0,m));return h};var Sa=255,Ea=2,Ca=8,Da=16;function V(b,a){this.o=[];this.p=32768;this.e=this.j=this.c=this.s=0;this.input=B?new Uint8Array(b):b;this.u=!1;this.q=Ta;this.K=!1;if(a||!(a={}))a.index&&(this.c=a.index),a.bufferSize&&(this.p=a.bufferSize),a.bufferType&&(this.q=a.bufferType),a.resize&&(this.K=a.resize);switch(this.q){case Ua:this.b=32768;this.a=new (B?Uint8Array:Array)(32768+this.p+258);break;case Ta:this.b=0;this.a=new (B?Uint8Array:Array)(this.p);this.f=this.S;this.z=this.O;this.r=this.Q;break;default:q(Error(\"invalid inflate mode\"))}}\nvar Ua=0,Ta=1;\nV.prototype.i=function(){for(;!this.u;){var b=W(this,3);b&1&&(this.u=v);b>>>=1;switch(b){case 0:var a=this.input,c=this.c,d=this.a,e=this.b,f=a.length,g=t,k=t,h=d.length,m=t;this.e=this.j=0;c+1>=f&&q(Error(\"invalid uncompressed block header: LEN\"));g=a[c++]|a[c++]<<8;c+1>=f&&q(Error(\"invalid uncompressed block header: NLEN\"));k=a[c++]|a[c++]<<8;g===~k&&q(Error(\"invalid uncompressed block header: length verify\"));c+g>a.length&&q(Error(\"input buffer is broken\"));switch(this.q){case Ua:for(;e+g>d.length;){m=\nh-e;g-=m;if(B)d.set(a.subarray(c,c+m),e),e+=m,c+=m;else for(;m--;)d[e++]=a[c++];this.b=e;d=this.f();e=this.b}break;case Ta:for(;e+g>d.length;)d=this.f({B:2});break;default:q(Error(\"invalid inflate mode\"))}if(B)d.set(a.subarray(c,c+g),e),e+=g,c+=g;else for(;g--;)d[e++]=a[c++];this.c=c;this.b=e;this.a=d;break;case 1:this.r(Va,Wa);break;case 2:for(var r=W(this,5)+257,p=W(this,5)+1,l=W(this,4)+4,n=new (B?Uint8Array:Array)(Xa.length),s=t,u=t,w=t,C=t,x=t,D=t,M=t,z=t,N=t,z=0;z<l;++z)n[Xa[z]]=W(this,3);if(!B){z=\nl;for(l=n.length;z<l;++z)n[Xa[z]]=0}s=T(n);C=new (B?Uint8Array:Array)(r+p);z=0;for(N=r+p;z<N;)switch(x=Ya(this,s),x){case 16:for(M=3+W(this,2);M--;)C[z++]=D;break;case 17:for(M=3+W(this,3);M--;)C[z++]=0;D=0;break;case 18:for(M=11+W(this,7);M--;)C[z++]=0;D=0;break;default:D=C[z++]=x}u=B?T(C.subarray(0,r)):T(C.slice(0,r));w=B?T(C.subarray(r)):T(C.slice(r));this.r(u,w);break;default:q(Error(\"unknown BTYPE: \"+b))}}return this.z()};\nvar Za=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Xa=B?new Uint16Array(Za):Za,$a=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],ab=B?new Uint16Array($a):$a,bb=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],cb=B?new Uint8Array(bb):bb,db=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],eb=B?new Uint16Array(db):db,fb=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,\n10,11,11,12,12,13,13],gb=B?new Uint8Array(fb):fb,hb=new (B?Uint8Array:Array)(288),$,ib;$=0;for(ib=hb.length;$<ib;++$)hb[$]=143>=$?8:255>=$?9:279>=$?7:8;var Va=T(hb),jb=new (B?Uint8Array:Array)(30),kb,lb;kb=0;for(lb=jb.length;kb<lb;++kb)jb[kb]=5;var Wa=T(jb);function W(b,a){for(var c=b.j,d=b.e,e=b.input,f=b.c,g=e.length,k;d<a;)f>=g&&q(Error(\"input buffer is broken\")),c|=e[f++]<<d,d+=8;k=c&(1<<a)-1;b.j=c>>>a;b.e=d-a;b.c=f;return k}\nfunction Ya(b,a){for(var c=b.j,d=b.e,e=b.input,f=b.c,g=e.length,k=a[0],h=a[1],m,r;d<h&&!(f>=g);)c|=e[f++]<<d,d+=8;m=k[c&(1<<h)-1];r=m>>>16;r>d&&q(Error(\"invalid code length: \"+r));b.j=c>>r;b.e=d-r;b.c=f;return m&65535}\nV.prototype.r=function(b,a){var c=this.a,d=this.b;this.A=b;for(var e=c.length-258,f,g,k,h;256!==(f=Ya(this,b));)if(256>f)d>=e&&(this.b=d,c=this.f(),d=this.b),c[d++]=f;else{g=f-257;h=ab[g];0<cb[g]&&(h+=W(this,cb[g]));f=Ya(this,a);k=eb[f];0<gb[f]&&(k+=W(this,gb[f]));d>=e&&(this.b=d,c=this.f(),d=this.b);for(;h--;)c[d]=c[d++-k]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d};\nV.prototype.Q=function(b,a){var c=this.a,d=this.b;this.A=b;for(var e=c.length,f,g,k,h;256!==(f=Ya(this,b));)if(256>f)d>=e&&(c=this.f(),e=c.length),c[d++]=f;else{g=f-257;h=ab[g];0<cb[g]&&(h+=W(this,cb[g]));f=Ya(this,a);k=eb[f];0<gb[f]&&(k+=W(this,gb[f]));d+h>e&&(c=this.f(),e=c.length);for(;h--;)c[d]=c[d++-k]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d};\nV.prototype.f=function(){var b=new (B?Uint8Array:Array)(this.b-32768),a=this.b-32768,c,d,e=this.a;if(B)b.set(e.subarray(32768,b.length));else{c=0;for(d=b.length;c<d;++c)b[c]=e[c+32768]}this.o.push(b);this.s+=b.length;if(B)e.set(e.subarray(a,a+32768));else for(c=0;32768>c;++c)e[c]=e[a+c];this.b=32768;return e};\nV.prototype.S=function(b){var a,c=this.input.length/this.c+1|0,d,e,f,g=this.input,k=this.a;b&&(\"number\"===typeof b.B&&(c=b.B),\"number\"===typeof b.M&&(c+=b.M));2>c?(d=(g.length-this.c)/this.A[2],f=258*(d/2)|0,e=f<k.length?k.length+f:k.length<<1):e=k.length*c;B?(a=new Uint8Array(e),a.set(k)):a=k;return this.a=a};\nV.prototype.z=function(){var b=0,a=this.a,c=this.o,d,e=new (B?Uint8Array:Array)(this.s+(this.b-32768)),f,g,k,h;if(0===c.length)return B?this.a.subarray(32768,this.b):this.a.slice(32768,this.b);f=0;for(g=c.length;f<g;++f){d=c[f];k=0;for(h=d.length;k<h;++k)e[b++]=d[k]}f=32768;for(g=this.b;f<g;++f)e[b++]=a[f];this.o=[];return this.buffer=e};\nV.prototype.O=function(){var b,a=this.b;B?this.K?(b=new Uint8Array(a),b.set(this.a.subarray(0,a))):b=this.a.subarray(0,a):(this.a.length>a&&(this.a.length=a),b=this.a);return this.buffer=b};function mb(b){this.input=b;this.c=0;this.G=[];this.R=!1}\nmb.prototype.i=function(){for(var b=this.input.length;this.c<b;){var a=new ja,c=t,d=t,e=t,f=t,g=t,k=t,h=t,m=t,r=t,p=this.input,l=this.c;a.C=p[l++];a.D=p[l++];(31!==a.C||139!==a.D)&&q(Error(\"invalid file signature:\"+a.C+\",\"+a.D));a.v=p[l++];switch(a.v){case 8:break;default:q(Error(\"unknown compression method: \"+a.v))}a.n=p[l++];m=p[l++]|p[l++]<<8|p[l++]<<16|p[l++]<<24;a.$=new Date(1E3*m);a.ba=p[l++];a.aa=p[l++];0<(a.n&4)&&(a.W=p[l++]|p[l++]<<8,l+=a.W);if(0<(a.n&Ca)){h=[];for(k=0;0<(g=p[l++]);)h[k++]=\nString.fromCharCode(g);a.name=h.join(\"\")}if(0<(a.n&Da)){h=[];for(k=0;0<(g=p[l++]);)h[k++]=String.fromCharCode(g);a.w=h.join(\"\")}0<(a.n&Ea)&&(a.P=ha(p,0,l)&65535,a.P!==(p[l++]|p[l++]<<8)&&q(Error(\"invalid header crc16\")));c=p[p.length-4]|p[p.length-3]<<8|p[p.length-2]<<16|p[p.length-1]<<24;p.length-l-4-4<512*c&&(f=c);d=new V(p,{index:l,bufferSize:f});a.data=e=d.i();l=d.c;a.Y=r=(p[l++]|p[l++]<<8|p[l++]<<16|p[l++]<<24)>>>0;ha(e,t,t)!==r&&q(Error(\"invalid CRC-32 checksum: 0x\"+ha(e,t,t).toString(16)+\" / 0x\"+\nr.toString(16)));a.Z=c=(p[l++]|p[l++]<<8|p[l++]<<16|p[l++]<<24)>>>0;(e.length&4294967295)!==c&&q(Error(\"invalid input size: \"+(e.length&4294967295)+\" / \"+c));this.G.push(a);this.c=l}this.R=v;var n=this.G,s,u,w=0,C=0,x;s=0;for(u=n.length;s<u;++s)C+=n[s].data.length;if(B){x=new Uint8Array(C);for(s=0;s<u;++s)x.set(n[s].data,w),w+=n[s].data.length}else{x=[];for(s=0;s<u;++s)x[s]=n[s].data;x=Array.prototype.concat.apply([],x)}return x};function nb(b){if(\"string\"===typeof b){var a=b.split(\"\"),c,d;c=0;for(d=a.length;c<d;c++)a[c]=(a[c].charCodeAt(0)&255)>>>0;b=a}for(var e=1,f=0,g=b.length,k,h=0;0<g;){k=1024<g?1024:g;g-=k;do e+=b[h++],f+=e;while(--k);e%=65521;f%=65521}return(f<<16|e)>>>0};function ob(b,a){var c,d;this.input=b;this.c=0;if(a||!(a={}))a.index&&(this.c=a.index),a.verify&&(this.V=a.verify);c=b[this.c++];d=b[this.c++];switch(c&15){case pb:this.method=pb;break;default:q(Error(\"unsupported compression method\"))}0!==((c<<8)+d)%31&&q(Error(\"invalid fcheck flag:\"+((c<<8)+d)%31));d&32&&q(Error(\"fdict flag is not supported\"));this.J=new V(b,{index:this.c,bufferSize:a.bufferSize,bufferType:a.bufferType,resize:a.resize})}\nob.prototype.i=function(){var b=this.input,a,c;a=this.J.i();this.c=this.J.c;this.V&&(c=(b[this.c++]<<24|b[this.c++]<<16|b[this.c++]<<8|b[this.c++])>>>0,c!==nb(a)&&q(Error(\"invalid adler-32 checksum\")));return a};var pb=8;function rb(b,a){this.input=b;this.a=new (B?Uint8Array:Array)(32768);this.k=sb.t;var c={},d;if((a||!(a={}))&&\"number\"===typeof a.compressionType)this.k=a.compressionType;for(d in a)c[d]=a[d];c.outputBuffer=this.a;this.I=new na(this.input,c)}var sb=pa;\nrb.prototype.h=function(){var b,a,c,d,e,f,g,k=0;g=this.a;b=pb;switch(b){case pb:a=Math.LOG2E*Math.log(32768)-8;break;default:q(Error(\"invalid compression method\"))}c=a<<4|b;g[k++]=c;switch(b){case pb:switch(this.k){case sb.NONE:e=0;break;case sb.L:e=1;break;case sb.t:e=2;break;default:q(Error(\"unsupported compression type\"))}break;default:q(Error(\"invalid compression method\"))}d=e<<6|0;g[k++]=d|31-(256*c+d)%31;f=nb(this.input);this.I.b=k;g=this.I.h();k=g.length;B&&(g=new Uint8Array(g.buffer),g.length<=\nk+4&&(this.a=new Uint8Array(g.length+4),this.a.set(g),g=this.a),g=g.subarray(0,k+4));g[k++]=f>>24&255;g[k++]=f>>16&255;g[k++]=f>>8&255;g[k++]=f&255;return g};exports.deflate=tb;exports.deflateSync=ub;exports.inflate=vb;exports.inflateSync=wb;exports.gzip=xb;exports.gzipSync=yb;exports.gunzip=zb;exports.gunzipSync=Ab;function tb(b,a,c){process.nextTick(function(){var d,e;try{e=ub(b,c)}catch(f){d=f}a(d,e)})}function ub(b,a){var c;c=(new rb(b)).h();a||(a={});return a.H?c:Bb(c)}function vb(b,a,c){process.nextTick(function(){var d,e;try{e=wb(b,c)}catch(f){d=f}a(d,e)})}\nfunction wb(b,a){var c;b.subarray=b.slice;c=(new ob(b)).i();a||(a={});return a.noBuffer?c:Bb(c)}function xb(b,a,c){process.nextTick(function(){var d,e;try{e=yb(b,c)}catch(f){d=f}a(d,e)})}function yb(b,a){var c;b.subarray=b.slice;c=(new Ba(b)).h();a||(a={});return a.H?c:Bb(c)}function zb(b,a,c){process.nextTick(function(){var d,e;try{e=Ab(b,c)}catch(f){d=f}a(d,e)})}function Ab(b,a){var c;b.subarray=b.slice;c=(new mb(b)).i();a||(a={});return a.H?c:Bb(c)}\nfunction Bb(b){var a=new Buffer(b.length),c,d;c=0;for(d=b.length;c<d;++c)a[c]=b[c];return a};}).call(this);\n","const { set, get, del } = require('idb-keyval');\n\nmodule.exports = {\n readCache: get,\n writeCache: set,\n deleteCache: del,\n checkCache: path => (\n get(path).then(v => typeof v !== 'undefined')\n ),\n};\n","class Store {\r\n constructor(dbName = 'keyval-store', storeName = 'keyval') {\r\n this.storeName = storeName;\r\n this._dbp = new Promise((resolve, reject) => {\r\n const openreq = indexedDB.open(dbName, 1);\r\n openreq.onerror = () => reject(openreq.error);\r\n openreq.onsuccess = () => resolve(openreq.result);\r\n // First time setup: create an empty object store\r\n openreq.onupgradeneeded = () => {\r\n openreq.result.createObjectStore(storeName);\r\n };\r\n });\r\n }\r\n _withIDBStore(type, callback) {\r\n return this._dbp.then(db => new Promise((resolve, reject) => {\r\n const transaction = db.transaction(this.storeName, type);\r\n transaction.oncomplete = () => resolve();\r\n transaction.onabort = transaction.onerror = () => reject(transaction.error);\r\n callback(transaction.objectStore(this.storeName));\r\n }));\r\n }\r\n}\r\nlet store;\r\nfunction getDefaultStore() {\r\n if (!store)\r\n store = new Store();\r\n return store;\r\n}\r\nfunction get(key, store = getDefaultStore()) {\r\n let req;\r\n return store._withIDBStore('readonly', store => {\r\n req = store.get(key);\r\n }).then(() => req.result);\r\n}\r\nfunction set(key, value, store = getDefaultStore()) {\r\n return store._withIDBStore('readwrite', store => {\r\n store.put(value, key);\r\n });\r\n}\r\nfunction del(key, store = getDefaultStore()) {\r\n return store._withIDBStore('readwrite', store => {\r\n store.delete(key);\r\n });\r\n}\r\nfunction clear(store = getDefaultStore()) {\r\n return store._withIDBStore('readwrite', store => {\r\n store.clear();\r\n });\r\n}\r\nfunction keys(store = getDefaultStore()) {\r\n const keys = [];\r\n return store._withIDBStore('readonly', store => {\r\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\r\n // And openKeyCursor isn't supported by Safari.\r\n (store.openKeyCursor || store.openCursor).call(store).onsuccess = function () {\r\n if (!this.result)\r\n return;\r\n keys.push(this.result.key);\r\n this.result.continue();\r\n };\r\n }).then(() => keys);\r\n}\n\nexport { Store, get, set, del, clear, keys };\n"],"sourceRoot":""}