{"version":3,"sources":["../node_modules/ieee754/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/react-scripts/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/react-scripts/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/buffer/index.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/events/events.js","../node_modules/base64-js/index.js"],"names":["exports","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","i","d","s","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","toString","module","Array","isArray","arr","call","require","Buffer","copyProps","src","dst","key","SafeBuffer","arg","encodingOrOffset","length","from","alloc","allocUnsafe","allocUnsafeSlow","prototype","Object","create","TypeError","size","fill","encoding","buf","undefined","SlowBuffer","_slicedToArray","arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","push","err","unsupportedIterableToArray","nonIterableRest","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","this","Error","ArrayBuffer","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","isEncoding","actual","slice","fromString","obj","isBuffer","len","checked","copy","val","type","data","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","bidirectionalIndexOf","dir","arrayIndexOf","indexOf","lastIndexOf","indexSize","arrLength","valLength","String","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","charCodeAt","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","apply","decodeCodePointsArray","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","defineProperty","configurable","_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","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","INVALID_BASE64_RE","leadSurrogate","toByteArray","trim","replace","stringtrim","base64clean","StringDecoder","nb","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","p","r","self","utf8CheckExtraBytes","total","utf8CheckIncomplete","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","args","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","init","once","emitter","name","Promise","resolve","reject","eventListener","errorListener","removeListener","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","emit","unshift","warned","w","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","enumerable","get","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","handler","listeners","addListener","on","prependListener","prependOnceListener","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","keys","rawListeners","eventNames","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","parts","len2","encodeChunk","lookup","num","output"],"mappings":"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","file":"static/js/2.867edc6e.chunk.js","sourcesContent":["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","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\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 ''\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\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"],"sourceRoot":""}