-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathwebapp.bundle.js.map
1 lines (1 loc) · 435 KB
/
webapp.bundle.js.map
1
{"version":3,"file":"webapp.bundle.js","sources":["../node_modules/rollup-plugin-node-globals/src/global.js","../node_modules/buffer-es6/base64.js","../node_modules/buffer-es6/ieee754.js","../node_modules/buffer-es6/isArray.js","../node_modules/buffer-es6/index.js","../node_modules/rollup-plugin-node-builtins/src/es6/events.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/buffer-xor/index.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/safe-buffer/index.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/modes/index.js","../node_modules/browserify-aes/aes.js","../node_modules/process-es6/browser.js","../node_modules/rollup-plugin-node-builtins/src/es6/inherits.js","../node_modules/rollup-plugin-node-builtins/src/es6/util.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/buffer-list.js","../node_modules/rollup-plugin-node-builtins/src/es6/string-decoder.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/readable.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/writable.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/duplex.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/transform.js","../node_modules/rollup-plugin-node-builtins/src/es6/readable-stream/passthrough.js","../node_modules/rollup-plugin-node-builtins/src/es6/stream.js","../node_modules/inherits/inherits_browser.js","../node_modules/cipher-base/index.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/hash-base/index.js","../node_modules/md5.js/index.js","../node_modules/evp_bytestokey/index.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-aes/browser.js","../node_modules/ms/index.js","../node_modules/debug/debug.js","../node_modules/debug/browser.js","../src/miband.js","../src/test.js","../src/webapp.js"],"sourcesContent":["export default (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n","\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n }\n\n revLookup['-'.charCodeAt(0)] = 62\n revLookup['_'.charCodeAt(0)] = 63\n}\n\nexport function toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr\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 // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders)\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len\n\n var L = 0\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]\n arr[L++] = (tmp >> 16) & 0xFF\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[L++] = tmp & 0xFF\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[L++] = (tmp >> 8) & 0xFF\n arr[L++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + 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 = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nexport function fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var output = ''\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n output += lookup[tmp >> 2]\n output += lookup[(tmp << 4) & 0x3F]\n output += '=='\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1])\n output += lookup[tmp >> 10]\n output += lookup[(tmp >> 4) & 0x3F]\n output += lookup[(tmp << 2) & 0x3F]\n output += '='\n }\n\n parts.push(output)\n\n return parts.join('')\n}\n","\nexport function read (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\nexport function write (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\nexport default Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <[email protected]> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\nimport * as base64 from './base64'\nimport * as ieee754 from './ieee754'\nimport isArray from './isArray'\n\nexport var 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 : true\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength()\nexport {_kMaxLength as kMaxLength};\nfunction typedArraySupport () {\n return true;\n // rollup issues\n // try {\n // var arr = new Uint8Array(1)\n // arr.__proto__ = {\n // __proto__: Uint8Array.prototype,\n // foo: function () { return 42 }\n // }\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\nexport function 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 (internalIsBuffer(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\nexport function SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(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 (!internalIsBuffer(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 (internalIsBuffer(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 (!internalIsBuffer(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 = 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 (!internalIsBuffer(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 (internalIsBuffer(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 (!internalIsBuffer(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 = internalIsBuffer(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\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\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nexport function isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar domain;\n\n// This constructor is used to store event handlers. Instantiating this is\n// faster than explicitly calling `Object.create(null)` to get a \"clean\" empty\n// object (tested with v8 v4.9).\nfunction EventHandlers() {}\nEventHandlers.prototype = Object.create(null);\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nexport default EventEmitter;\nexport {EventEmitter};\n\n// nodejs oddity\n// require('events') === require('events').EventEmitter\nEventEmitter.EventEmitter = EventEmitter\n\nEventEmitter.usingDomains = false;\n\nEventEmitter.prototype.domain = undefined;\nEventEmitter.prototype._events = undefined;\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.\nEventEmitter.defaultMaxListeners = 10;\n\nEventEmitter.init = function() {\n this.domain = null;\n if (EventEmitter.usingDomains) {\n // if there is an active domain, then attach to it.\n if (domain.active && !(this instanceof domain.Domain)) {\n this.domain = domain.active;\n }\n }\n\n if (!this._events || this._events === Object.getPrototypeOf(this)._events) {\n this._events = new EventHandlers();\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 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\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\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events, domain;\n var needDomainExit = false;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n domain = this.domain;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n er = arguments[1];\n if (domain) {\n if (!er)\n er = new Error('Uncaught, unspecified \"error\" event');\n er.domainEmitter = this;\n er.domain = domain;\n er.domainThrown = false;\n domain.emit('error', er);\n } else if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n if (needDomainExit)\n domain.exit();\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = new EventHandlers();\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) {\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) {\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] = prepend ? [listener, existing] :\n [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + type + ' listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n emitWarning(w);\n }\n }\n }\n\n return target;\n}\nfunction emitWarning(e) {\n typeof console.warn === 'function' ? console.warn(e) : console.log(e);\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 _onceWrap(target, type, listener) {\n var fired = false;\n function g() {\n target.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(target, arguments);\n }\n }\n g.listener = listener;\n return g;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || (list.listener && list.listener === listener)) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\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; i-- > 0;) {\n if (list[i] === listener ||\n (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 (list.length === 1) {\n list[0] = undefined;\n if (--this._eventsCount === 0) {\n this._events = new EventHandlers();\n return this;\n } else {\n delete events[type];\n }\n } else {\n spliceOne(list, position);\n }\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = new EventHandlers();\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = new EventHandlers();\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 for (var i = 0, key; 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 = new EventHandlers();\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) {\n // LIFO order\n do {\n this.removeListener(type, listeners[listeners.length - 1]);\n } while (listeners[0]);\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\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) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, i) {\n var copy = new Array(i);\n while (i--)\n copy[i] = arr[i];\n return copy;\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","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\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\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","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\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}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\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}\nexport function nextTick(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// 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};\nexport var title = 'browser';\nexport var platform = 'browser';\nexport var browser = true;\nexport var env = {};\nexport var argv = [];\nexport var version = ''; // empty string to avoid regexp issues\nexport var versions = {};\nexport var release = {};\nexport var config = {};\n\nfunction noop() {}\n\nexport var on = noop;\nexport var addListener = noop;\nexport var once = noop;\nexport var off = noop;\nexport var removeListener = noop;\nexport var removeAllListeners = noop;\nexport var emit = noop;\n\nexport function binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nexport function cwd () { return '/' }\nexport function chdir (dir) {\n throw new Error('process.chdir is not supported');\n};\nexport function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global.performance || {}\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() }\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nexport function hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3\n var seconds = Math.floor(clocktime)\n var nanoseconds = Math.floor((clocktime%1)*1e9)\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0]\n nanoseconds = nanoseconds - previousTimestamp[1]\n if (nanoseconds<0) {\n seconds--\n nanoseconds += 1e9\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nexport function uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nexport default {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: env,\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n","\nvar inherits;\nif (typeof Object.create === 'function'){\n inherits = function inherits(ctor, superCtor) {\n // implementation from standard node.js 'util' module\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n inherits = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\nexport default inherits;\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.\nimport process from 'process';\nvar formatRegExp = /%[sdj%]/g;\nexport function format(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexport function deprecate(fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function() {\n return deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexport function debuglog(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = 0;\n debugs[set] = function() {\n var msg = format.apply(null, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nexport function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n _extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexport function isArray(ar) {\n return Array.isArray(ar);\n}\n\nexport function isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexport function isNull(arg) {\n return arg === null;\n}\n\nexport function isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexport function isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexport function isString(arg) {\n return typeof arg === 'string';\n}\n\nexport function isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexport function isUndefined(arg) {\n return arg === void 0;\n}\n\nexport function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexport function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexport function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexport function isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexport function isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexport function isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexport function isBuffer(maybeBuf) {\n return Buffer.isBuffer(maybeBuf);\n}\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexport function log() {\n console.log('%s - %s', timestamp(), format.apply(null, arguments));\n}\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nimport inherits from './inherits';\nexport {inherits}\n\nexport function _extend(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport default {\n inherits: inherits,\n _extend: _extend,\n log: log,\n isBuffer: isBuffer,\n isPrimitive: isPrimitive,\n isFunction: isFunction,\n isError: isError,\n isDate: isDate,\n isObject: isObject,\n isRegExp: isRegExp,\n isUndefined: isUndefined,\n isSymbol: isSymbol,\n isString: isString,\n isNumber: isNumber,\n isNullOrUndefined: isNullOrUndefined,\n isNull: isNull,\n isBoolean: isBoolean,\n isArray: isArray,\n inspect: inspect,\n deprecate: deprecate,\n format: format,\n debuglog: debuglog\n}\n","import {Buffer} from 'buffer';\n\nexport default BufferList;\n\nfunction BufferList() {\n this.head = null;\n this.tail = null;\n this.length = 0;\n}\n\nBufferList.prototype.push = function (v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n};\n\nBufferList.prototype.unshift = function (v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n};\n\nBufferList.prototype.shift = function () {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n};\n\nBufferList.prototype.clear = function () {\n this.head = this.tail = null;\n this.length = 0;\n};\n\nBufferList.prototype.join = function (s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n};\n\nBufferList.prototype.concat = function (n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n p.data.copy(ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\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\nimport {Buffer} from 'buffer';\nvar isBufferEncoding = Buffer.isEncoding\n || function(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': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\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. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nexport function StringDecoder(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","'use strict';\n\n\nReadable.ReadableState = ReadableState;\nimport EventEmitter from 'events';\nimport {inherits, debuglog} from 'util';\nimport BufferList from './buffer-list';\nimport {StringDecoder} from 'string_decoder';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\n\nvar debug = debuglog('stream');\ninherits(Readable, EventEmitter);\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') {\n return emitter.prependListener(event, fn);\n } else {\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event])\n emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event]))\n emitter._events[event].unshift(fn);\n else\n emitter._events[event] = [fn, emitter._events[event]];\n }\n}\nfunction listenerCount (emitter, type) {\n return emitter.listeners(type).length;\n}\nfunction ReadableState(options, stream) {\n\n options = options || {};\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // when piping, we only care about 'readable' events that happen\n // after read()ing all the bytes and not getting any pushback.\n this.ranOut = false;\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nexport default Readable;\nexport function Readable(options) {\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options && typeof options.read === 'function') this._read = options.read;\n\n EventEmitter.call(this);\n}\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n\n if (!state.objectMode && typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n }\n\n return readableAddChunk(this, state, chunk, encoding, false);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n var state = this._readableState;\n return readableAddChunk(this, state, chunk, '', true);\n};\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\nfunction readableAddChunk(stream, state, chunk, encoding, addToFront) {\n var er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (state.ended && !addToFront) {\n var e = new Error('stream.push() after EOF');\n stream.emit('error', e);\n } else if (state.endEmitted && addToFront) {\n var _e = new Error('stream.unshift() after end event');\n stream.emit('error', _e);\n } else {\n var skipAdd;\n if (state.decoder && !addToFront && !encoding) {\n chunk = state.decoder.write(chunk);\n skipAdd = !state.objectMode && chunk.length === 0;\n }\n\n if (!addToFront) state.reading = false;\n\n // Don't add to the buffer if we've decoded to an empty string chunk and\n // we're not in object mode\n if (!skipAdd) {\n // if we want the data now, just emit it.\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n }\n\n maybeReadMore(stream, state);\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n\n return needMoreData(state);\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction chunkInvalid(state, chunk) {\n var er = null;\n if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false);\n\n var endFn = doEnd ? onend : cleanup;\n if (state.endEmitted) nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable) {\n debug('onunpipe');\n if (readable === src) {\n cleanup();\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', cleanup);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (listenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && src.listeners('data').length) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var _i = 0; _i < len; _i++) {\n dests[_i].emit('unpipe', this);\n }return this;\n }\n\n // try to find the right one.\n var i = indexOf(state.pipes, dest);\n if (i === -1) return this;\n\n state.pipes.splice(i, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = EventEmitter.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this, state);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var state = this._readableState;\n var paused = false;\n\n var self = this;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) self.push(chunk);\n }\n\n self.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = self.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n var events = ['error', 'close', 'destroy', 'pause', 'resume'];\n forEach(events, function (ev) {\n stream.on(ev, self.emit.bind(self, ev));\n });\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n self._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return self;\n};\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction forEach(xs, f) {\n for (var i = 0, l = xs.length; i < l; i++) {\n f(xs[i], i);\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}\n","// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nimport {inherits, deprecate} from 'util';\nimport {Buffer} from 'buffer';\nWritable.WritableState = WritableState;\nimport {EventEmitter} from 'events';\nimport {Duplex} from './duplex';\nimport {nextTick} from 'process';\ninherits(Writable, EventEmitter);\n\nfunction nop() {}\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\nfunction WritableState(options, stream) {\n Object.defineProperty(this, 'buffer', {\n get: deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')\n });\n options = options || {};\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;\n\n // cast to ints.\n this.highWaterMark = ~ ~this.highWaterMark;\n\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function writableStateGetBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\nexport default Writable;\nexport function Writable(options) {\n\n // Writable ctor is applied to Duplexes, though they're not\n // instanceof Writable, they're instanceof Readable.\n if (!(this instanceof Writable) && !(this instanceof Duplex)) return new Writable(options);\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n }\n\n EventEmitter.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n nextTick(cb, er);\n}\n\n// If we get something that is not a buffer, string, null, or undefined,\n// and we're not in objectMode, then that's an error.\n// Otherwise stream chunks are all considered to be of length=1, and the\n// watermarks determine how many objects to keep in the buffer, rather than\n// how many bytes or characters.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n // Always throw error if a null is written\n // if we are not in object mode then throw\n // if it is not a buffer, string, or undefined.\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, chunk, encoding, cb) {\n chunk = decodeChunk(state, chunk, encoding);\n\n if (Buffer.isBuffer(chunk)) encoding = 'buffer';\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) nextTick(cb, er);else cb(er);\n\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n nextTick(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n while (entry) {\n buffer[count] = entry;\n entry = entry.next;\n count += 1;\n }\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequestCount = 0;\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished) {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n if (state.pendingcb === 0) {\n prefinish(stream, state);\n state.finished = true;\n stream.emit('finish');\n } else {\n prefinish(stream, state);\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function (err) {\n var entry = _this.entry;\n _this.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = _this;\n } else {\n state.corkedRequestsFree = _this;\n }\n };\n}\n","\nimport {inherits} from 'util';\nimport {nextTick} from 'process';\nimport {Readable} from './readable';\nimport {Writable} from './writable';\n\n\ninherits(Duplex, Readable);\n\nvar keys = Object.keys(Writable.prototype);\nfor (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n}\nexport default Duplex;\nexport function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n","// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nimport {Duplex} from './duplex';\n\n\nimport {inherits} from 'util';\ninherits(Transform, Duplex);\n\nfunction TransformState(stream) {\n this.afterTransform = function (er, data) {\n return afterTransform(stream, er, data);\n };\n\n this.needTransform = false;\n this.transforming = false;\n this.writecb = null;\n this.writechunk = null;\n this.writeencoding = null;\n}\n\nfunction afterTransform(stream, er, data) {\n var ts = stream._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data !== null && data !== undefined) stream.push(data);\n\n cb(er);\n\n var rs = stream._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n stream._read(rs.highWaterMark);\n }\n}\nexport default Transform;\nexport function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = new TransformState(this);\n\n // when the writable side finishes, then flush out anything remaining.\n var stream = this;\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n this.once('prefinish', function () {\n if (typeof this._flush === 'function') this._flush(function (er) {\n done(stream, er);\n });else done(stream);\n });\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('Not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nfunction done(stream, er) {\n if (er) return stream.emit('error', er);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n var ws = stream._writableState;\n var ts = stream._transformState;\n\n if (ws.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (ts.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}\n","\nimport {Transform} from './transform';\n\nimport {inherits} from 'util';\ninherits(PassThrough, Transform);\nexport default PassThrough;\nexport function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n","import EE from 'events';\nimport {inherits} from 'util';\n\nimport {Duplex} from './readable-stream/duplex.js';\nimport {Readable} from './readable-stream/readable.js';\nimport {Writable} from './readable-stream/writable.js';\nimport {Transform} from './readable-stream/transform.js';\nimport {PassThrough} from './readable-stream/passthrough.js';\ninherits(Stream, EE);\nStream.Readable = Readable;\nStream.Writable = Writable;\nStream.Duplex = Duplex;\nStream.Transform = Transform;\nStream.PassThrough = PassThrough;\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nexport default Stream;\nexport {Readable,Writable,Duplex,Transform,PassThrough,Stream}\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = new Buffer(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} options\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options){\n options = options || {};\n if ('string' == typeof val) return parse(val);\n return options.long\n ? long(val)\n : short(val);\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = '' + str;\n if (str.length > 10000) return;\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n if (!match) return;\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction short(ms) {\n if (ms >= d) return Math.round(ms / d) + 'd';\n if (ms >= h) return Math.round(ms / h) + 'h';\n if (ms >= m) return Math.round(ms / m) + 'm';\n if (ms >= s) return Math.round(ms / s) + 's';\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction long(ms) {\n return plural(ms, d, 'day')\n || plural(ms, h, 'hour')\n || plural(ms, m, 'minute')\n || plural(ms, s, 'second')\n || ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) return;\n if (ms < n * 1.5) return Math.floor(ms / n) + ' ' + name;\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lowercased letter, i.e. \"n\".\n */\n\nexports.formatters = {};\n\n/**\n * Previously assigned color.\n */\n\nvar prevColor = 0;\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n *\n * @return {Number}\n * @api private\n */\n\nfunction selectColor() {\n return exports.colors[prevColor++ % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction debug(namespace) {\n\n // define the `disabled` version\n function disabled() {\n }\n disabled.enabled = false;\n\n // define the `enabled` version\n function enabled() {\n\n var self = enabled;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // add the `color` if not set\n if (null == self.useColors) self.useColors = exports.useColors();\n if (null == self.color && self.useColors) self.color = selectColor();\n\n var args = Array.prototype.slice.call(arguments);\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %o\n args = ['%o'].concat(args);\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n if ('function' === typeof exports.formatArgs) {\n args = exports.formatArgs.apply(self, args);\n }\n var logFn = enabled.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n enabled.enabled = true;\n\n var fn = exports.enabled(namespace) ? enabled : disabled;\n\n fn.namespace = namespace;\n\n return fn;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n var split = (namespaces || '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // is webkit? http://stackoverflow.com/a/16459606/376773\n return ('WebkitAppearance' in document.documentElement.style) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (window.console && (console.firebug || (console.exception && console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n return JSON.stringify(v);\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs() {\n var args = arguments;\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return args;\n\n var c = 'color: ' + this.color;\n args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n return args;\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage(){\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","'use strict';\n\nconst EventEmitter = require('events');\nconst crypto = require('browserify-aes');\nconst debug = require('debug')('MiBand');\n\nconst UUID_BASE = (x) => `0000${x}-0000-3512-2118-0009af100700`\n\nconst UUID_SERVICE_GENERIC_ACCESS = 0x1800\nconst UUID_SERVICE_GENERIC_ATTRIBUTE = 0x1801\nconst UUID_SERVICE_DEVICE_INFORMATION = 0x180a\nconst UUID_SERVICE_FIRMWARE = UUID_BASE('1530')\nconst UUID_SERVICE_ALERT_NOTIFICATION = 0x1811\nconst UUID_SERVICE_IMMEDIATE_ALERT = 0x1802\nconst UUID_SERVICE_HEART_RATE = 0x180d\nconst UUID_SERVICE_MIBAND_1 = 0xfee0\nconst UUID_SERVICE_MIBAND_2 = 0xfee1\n\n// This is a helper function that constructs an ArrayBuffer based on arguments\nconst AB = function() {\n let args = [...arguments];\n\n // Convert all arrays to buffers\n args = args.map(function(i) {\n if (i instanceof Array) {\n return Buffer.from(i);\n }\n return i;\n })\n\n // Merge into a single buffer\n let buf = Buffer.concat(args);\n\n // Convert into ArrayBuffer\n let ab = new ArrayBuffer(buf.length);\n let view = new Uint8Array(ab);\n for (let i = 0; i < buf.length; ++i) {\n view[i] = buf[i];\n }\n return ab;\n}\n\nfunction parseDate(buff) {\n let year = buff.readUInt16LE(0),\n mon = buff[2]-1,\n day = buff[3],\n hrs = buff[4],\n min = buff[5],\n sec = buff[6],\n msec = buff[8] * 1000 / 256;\n return new Date(year, mon, day, hrs, min, sec)\n}\n\nclass MiBand extends EventEmitter {\n\n static get advertisementService() { return 0xFEE0; }\n\n static get optionalServices() { return [\n UUID_SERVICE_GENERIC_ACCESS,\n UUID_SERVICE_GENERIC_ATTRIBUTE,\n UUID_SERVICE_DEVICE_INFORMATION,\n UUID_SERVICE_FIRMWARE,\n UUID_SERVICE_ALERT_NOTIFICATION,\n UUID_SERVICE_IMMEDIATE_ALERT,\n UUID_SERVICE_HEART_RATE,\n UUID_SERVICE_MIBAND_1,\n UUID_SERVICE_MIBAND_2,\n ] }\n\n constructor(peripheral) {\n super();\n\n this.device = peripheral;\n this.char = {}\n\n // TODO: this is constant for now, but should random and managed per-device\n this.key = new Buffer('30313233343536373839404142434445', 'hex');\n this.textDec = new TextDecoder();\n }\n\n async startNotificationsFor(c) {\n let char = this.char[c]\n await char.startNotifications()\n char.addEventListener('characteristicvaluechanged', this._handleNotify.bind(this));\n }\n\n async init() {\n let miband2 = await this.device.getPrimaryService(UUID_SERVICE_MIBAND_2)\n this.char.auth = await miband2.getCharacteristic(UUID_BASE('0009'))\n\n let miband1 = await this.device.getPrimaryService(UUID_SERVICE_MIBAND_1)\n this.char.time = await miband1.getCharacteristic(0x2a2b)\n this.char.raw_ctrl = await miband1.getCharacteristic(UUID_BASE('0001'))\n this.char.raw_data = await miband1.getCharacteristic(UUID_BASE('0002'))\n this.char.config = await miband1.getCharacteristic(UUID_BASE('0003'))\n this.char.activ = await miband1.getCharacteristic(UUID_BASE('0005'))\n this.char.batt = await miband1.getCharacteristic(UUID_BASE('0006'))\n this.char.steps = await miband1.getCharacteristic(UUID_BASE('0007'))\n this.char.user = await miband1.getCharacteristic(UUID_BASE('0008'))\n this.char.event = await miband1.getCharacteristic(UUID_BASE('0010'))\n\n let hrm = await this.device.getPrimaryService(UUID_SERVICE_HEART_RATE)\n this.char.hrm_ctrl = await hrm.getCharacteristic(0x2a39)\n this.char.hrm_data = await hrm.getCharacteristic(0x2a37)\n\n let imm_alert = await this.device.getPrimaryService(UUID_SERVICE_IMMEDIATE_ALERT)\n this.char.alert = await imm_alert.getCharacteristic(0x2a06)\n\n let devinfo = await this.device.getPrimaryService(UUID_SERVICE_DEVICE_INFORMATION)\n this.char.info_hwrev = await devinfo.getCharacteristic(0x2a27)\n this.char.info_swrev = await devinfo.getCharacteristic(0x2a28)\n try { // Serial Number is in blocklist of WebBluetooth spec\n this.char.info_serial = await devinfo.getCharacteristic(0x2a25)\n } catch(error) {\n // do nothing\n }\n\n let fw = await this.device.getPrimaryService(UUID_SERVICE_FIRMWARE)\n this.char.fw_ctrl = await fw.getCharacteristic(UUID_BASE('1531'))\n this.char.fw_data = await fw.getCharacteristic(UUID_BASE('1532'))\n\n await this.startNotificationsFor('auth')\n\n await this.authenticate()\n\n // Notifications should be enabled after auth\n for (let char of ['hrm_data', 'event', 'raw_data']) {\n await this.startNotificationsFor(char)\n }\n }\n\n /*\n * Authentication\n */\n\n async authenticate() {\n await this.authReqRandomKey()\n\n return new Promise((resolve, reject) => {\n setTimeout(() => reject('Timeout'), 10000);\n this.once('authenticated', resolve);\n });\n }\n\n authSendNewKey(key) { return this.char.auth.writeValue(AB([0x01, 0x08], key)) }\n authReqRandomKey() { return this.char.auth.writeValue(AB([0x02, 0x08])) }\n authSendEncKey(encrypted) { return this.char.auth.writeValue(AB([0x03, 0x08], encrypted)) }\n\n /*\n * Button\n */\n\n waitButton(timeout = 10000) {\n return new Promise((resolve, reject) => {\n setTimeout(() => reject('Timeout'), timeout);\n this.once('button', resolve);\n });\n }\n\n /*\n * Notifications\n */\n\n async showNotification(type = 'message') {\n debug('Notification:', type);\n switch(type) {\n case 'message': this.char.alert.writeValue(AB([0x01])); break;\n case 'phone': this.char.alert.writeValue(AB([0x02])); break;\n case 'vibrate': this.char.alert.writeValue(AB([0x03])); break;\n case 'off': this.char.alert.writeValue(AB([0x00])); break;\n default: throw new Error('Unrecognized notification type');\n }\n }\n\n /*\n * Heart Rate Monitor\n */\n\n async hrmRead() {\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x01, 0x00]))\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x02, 0x00]))\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x02, 0x01]))\n return new Promise((resolve, reject) => {\n setTimeout(() => reject('Timeout'), 15000);\n this.once('heart_rate', resolve);\n });\n }\n\n async hrmStart() {\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x02, 0x00]))\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x01, 0x00]))\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x01, 0x01]))\n\n // Start pinging HRM\n this.hrmTimer = this.hrmTimer || setInterval(() => {\n debug('Pinging HRM')\n this.char.hrm_ctrl.writeValue(AB([0x16]))\n },12000);\n }\n\n async hrmStop() {\n clearInterval(this.hrmTimer);\n this.hrmTimer = undefined;\n await this.char.hrm_ctrl.writeValue(AB([0x15, 0x01, 0x00]))\n }\n\n /*\n * Pedometer\n */\n\n async getPedometerStats() {\n let data = await this.char.steps.readValue()\n data = Buffer.from(data.buffer)\n let result = {}\n //unknown = data.readUInt8(0)\n result.steps = data.readUInt16LE(1)\n //unknown = data.readUInt16LE(3) // 2 more bytes for steps? ;)\n if (data.length >= 8) result.distance = data.readUInt32LE(5)\n if (data.length >= 12) result.calories = data.readUInt32LE(9)\n return result;\n }\n\n /*\n * General functions\n */\n\n async getBatteryInfo() {\n let data = await this.char.batt.readValue()\n data = Buffer.from(data.buffer)\n if (data.length <= 2) return 'unknown';\n\n let result = {}\n result.level = data[1]\n result.charging = !!data[2]\n result.off_date = parseDate(data.slice(3, 10))\n result.charge_date = parseDate(data.slice(11, 18))\n //result.charge_num = data[10]\n result.charge_level = data[19]\n return result;\n }\n\n async getTime() {\n let data = await this.char.time.readValue()\n data = Buffer.from(data.buffer)\n return parseDate(data)\n }\n\n async getSerial() {\n if (!this.char.info_serial) return undefined;\n let data = await this.char.info_serial.readValue()\n return this.textDec.decode(data)\n }\n\n async getHwRevision() {\n let data = await this.char.info_hwrev.readValue()\n data = this.textDec.decode(data)\n if (data.startsWith('V') || data.startsWith('v'))\n data = data.substring(1)\n return data\n }\n\n async getSwRevision() {\n let data = await this.char.info_swrev.readValue()\n data = this.textDec.decode(data)\n if (data.startsWith('V') || data.startsWith('v'))\n data = data.substring(1)\n return data\n }\n\n async setUserInfo(user) {\n let data = new Buffer(16)\n data.writeUInt8 (0x4f, 0) // Set user info command\n\n data.writeUInt16LE(user.born.getFullYear(), 3)\n data.writeUInt8 (user.born.getMonth()+1, 5)\n data.writeUInt8 (user.born.getDate(), 6)\n switch (user.sex) {\n case 'male': data.writeUInt8 (0, 7); break;\n case 'female': data.writeUInt8 (1, 7); break;\n default: data.writeUInt8 (2, 7); break;\n }\n data.writeUInt16LE(user.height, 8) // cm\n data.writeUInt16LE(user.weight, 10) // kg\n data.writeUInt32LE(user.id, 12) // id\n\n await this.char.user.writeValue(AB(data))\n }\n\n //async reboot() {\n // await this.char.fw_ctrl.writeValue(AB([0x05]))\n //}\n\n /*\n * RAW data\n */\n\n async rawStart() {\n await this.char.raw_ctrl.writeValue(AB([0x01, 0x03, 0x19]))\n await this.hrmStart();\n await this.char.raw_ctrl.writeValue(AB([0x02]))\n }\n\n async rawStop() {\n await this.char.raw_ctrl.writeValue(AB([0x03]))\n await this.hrmStop();\n }\n\n /*\n * Internals\n */\n\n _handleNotify(event) {\n const value = Buffer.from(event.target.value.buffer);\n\n if (event.target.uuid === this.char.auth.uuid) {\n const cmd = value.slice(0,3).toString('hex');\n if (cmd === '100101') { // Set New Key OK\n this.authReqRandomKey()\n } else if (cmd === '100201') { // Req Random Number OK\n let rdn = value.slice(3)\n let cipher = crypto.createCipheriv('aes-128-ecb', this.key, '').setAutoPadding(false)\n let encrypted = Buffer.concat([cipher.update(rdn), cipher.final()])\n this.authSendEncKey(encrypted)\n } else if (cmd === '100301') {\n debug('Authenticated')\n this.emit('authenticated')\n\n } else if (cmd === '100104') { // Set New Key FAIL\n this.emit('error', 'Key Sending failed')\n } else if (cmd === '100204') { // Req Random Number FAIL\n this.emit('error', 'Key Sending failed')\n } else if (cmd === '100304') {\n debug('Encryption Key Auth Fail, sending new key...')\n this.authSendNewKey(this.key)\n } else {\n debug('Unhandled auth rsp:', value);\n }\n\n } else if (event.target.uuid === this.char.hrm_data.uuid) {\n let rate = value.readUInt16BE(0)\n this.emit('heart_rate', rate)\n\n } else if (event.target.uuid === this.char.event.uuid) {\n const cmd = value.toString('hex');\n if (cmd === '04') {\n this.emit('button')\n } else {\n debug('Unhandled event:', value);\n }\n } else if (event.target.uuid === this.char.raw_data.uuid) {\n // TODO: parse adxl362 data\n // https://github.com/Freeyourgadget/Gadgetbridge/issues/63#issuecomment-302815121\n debug('RAW data:', value)\n } else {\n debug(event.target.uuid, '=>', value)\n }\n }\n}\n\nmodule.exports = MiBand;\n","'use strict';\n\nfunction delay(ms) {\n return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nasync function test_all(miband, log) {\n\n let info = {\n time: await miband.getTime(),\n battery: await miband.getBatteryInfo(),\n hw_ver: await miband.getHwRevision(),\n sw_ver: await miband.getSwRevision(),\n serial: await miband.getSerial(),\n }\n\n log(`HW ver: ${info.hw_ver} SW ver: ${info.sw_ver}`);\n info.serial && log(`Serial: ${info.serial}`);\n log(`Battery: ${info.battery.level}%`);\n log(`Time: ${info.time.toLocaleString()}`);\n\n let ped = await miband.getPedometerStats()\n log('Pedometer:', JSON.stringify(ped))\n\n log('Notifications demo...')\n await miband.showNotification('message');\n await delay(3000);\n await miband.showNotification('phone');\n await delay(5000);\n await miband.showNotification('off');\n\n log('Tap MiBand button, quick!')\n miband.on('button', () => log('Tap detected'))\n try {\n await miband.waitButton(10000)\n } catch (e) {\n log('OK, nevermind ;)')\n }\n\n log('Heart Rate Monitor (single-shot)')\n log('Result:', await miband.hrmRead())\n\n log('Heart Rate Monitor (continuous for 30 sec)...')\n miband.on('heart_rate', (rate) => {\n log('Heart Rate:', rate)\n })\n await miband.hrmStart();\n await delay(30000);\n await miband.hrmStop();\n\n //log('RAW data (no decoding)...')\n //miband.rawStart();\n //await delay(30000);\n //miband.rawStop();\n\n log('Finished.')\n}\n\nmodule.exports = test_all;\n","'use strict';\n\nimport MiBand from './miband';\nimport test_all from './test';\n\nimport './styles/index.less';\n\nconst bluetooth = navigator.bluetooth;\n\nconst output = document.querySelector('#output');\n\nfunction log() {\n document.querySelector('main').style.display = 'block';\n\n output.innerHTML += [...arguments].join(' ') + '\\n';\n}\n\nasync function scan() {\n if (!bluetooth) {\n log('WebBluetooth is not supported by your browser!');\n return;\n }\n\n try {\n log('Requesting Bluetooth Device...');\n const device = await bluetooth.requestDevice({\n filters: [\n { services: [ MiBand.advertisementService ] }\n ],\n optionalServices: MiBand.optionalServices\n });\n\n device.addEventListener('gattserverdisconnected', () => {\n log('Device disconnected');\n });\n\n await device.gatt.disconnect();\n\n log('Connecting to the device...');\n const server = await device.gatt.connect();\n log('Connected');\n\n let miband = new MiBand(server);\n\n await miband.init();\n\n await test_all(miband, log);\n\n } catch(error) {\n log('Argh!', error);\n }\n}\n\ndocument.querySelector('#scanBtn').addEventListener('click', scan)\n\n"],"names":["global","read","write","base64.fromByteArray","ieee754.read","ieee754.write","base64.toByteArray","xor","buffer","Buffer","require$$0","encryptByte","getBlock","incr32","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","isArray","inherits","listenerCount","Buffer.isBuffer","EE","Transform","StringDecoder","ghash","GHASH","StreamCipher","HashBase","MD5","MODES","AuthCipher","ebtk","Splitter","ciphers","deciphers","ms","debug","EventEmitter","crypto","log","MiBand","miband","test_all"],"mappings":"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AAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;;cAE1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;;cAE1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;;cAEzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAC;cACxC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cAC1C,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAC;cACzC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU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"}